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 ⊥
____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to