[racket] typed racket: how to define a binding as both a runtime var and a type?

From: Alexander D. Knauth (alexander at knauth.org)
Date: Sun Feb 22 19:54:23 EST 2015


Could this have anything to do with it?

http://docs.racket-lang.org/reference/eval-model.html#%28part._separate-compilation%29



On Feb 22, 2015, at 3:12 PM, Sam Tobin-Hochstadt <samth at cs.indiana.edu> wrote:

> This looks like a bug to me.
> 
> Sam
> 
> On Sun, Feb 22, 2015, 2:49 PM Alexander D. Knauth <alexander at knauth.org> wrote:
> Using #:omit-define-syntaxes doesn’t work because then when other modules import it it forgets about the type:
> 
> def.rkt:
> #lang typed/racket
> (provide x)
> (define-type x 'x #:omit-define-syntaxes)
> (define x : x 'x)
> 
> ref.rkt:
> #lang typed/racket
> (require "def.rkt")
> x ; works fine, outputs 'x
> (define y : x x) ; Type Checker: parse error in type; type name `x' is unbound in: x
> 
> Why doesn’t this work, and is there another way to do this?
> 
> 
> 
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20150222/0c643499/attachment.html>

Posted on the users mailing list.