I'm seeing an "invalid memory reference. Some debugging context lost" error when using a parameter that has a guard function AND the guard function is user-defined AND the guard function has a contract on it. What is the right place to file this aside from the list?
Demonstration:
#lang racket/base
(require racket/contract)
(define p1 (make-parameter ""))
(displayln "before set p1")
(p1 "ok")
(displayln "before read p1")
(p1)
(define/contract p2 (parameter/c string?) (make-parameter ""))
(displayln "before set p2")
(p2 "ok")
(displayln "before read p2")
(p2)
(define/contract p3 (parameter/c string? integer?) (make-parameter "7" string->number ))
(displayln "before set p3")
(p3 "8")
(displayln "before read p3")
(p3)
(define (uncontracted-string->number v)
(string->number v))
(define/contract (contracted-string->number v)
(-> string? number?)
(string->number v))
(define/contract p4 (parameter/c string? integer?) (make-parameter "7" uncontracted-string->number))
(displayln "before set p4")
(p4 "8")
(displayln "before read p4")
(p4)
(define/contract p5 (parameter/c string? integer?) (make-parameter "7" contracted-string->number))
(displayln "before set p5")
(p5 "8")
(displayln "before read p5")
(p5) ; invalid memory reference. Some debugging context lost