[racket] TR disappearing types?
The following program types without trouble:
#lang typed/racket
(struct: (a) Foo ())
(: make-foo (All (a) (a -> (Foo a))))
(define (make-foo x)
(Foo))
(ann (make-foo 1) : (Foo String))
It doesn't seem like it should, though. If this is the right behavior,
is there a way to get a `Foo' parameterized on type `a' without actually
storing the value? I'm trying to use TR to check programs that can't
actually be run (i.e. written in a lambda calculus extended with
uncountable sets).
Neil ⊥