You shouldn't be able to send the TR into an inifinite loop. Typechecking is supposed to terminate. Please try to reduce it to the minimum testcase and file a bug.
On Thu, Apr 11, 2013 at 3:32 PM, Danny Yoo <d...@hashcollision.org> wrote: > Perhaps something like this? > > > ;;;;;;;;;;;;; > #lang typed/racket/base > > (provide mynull mycar mycdr) > > (struct: MyNull ()) > (define mynull (MyNull)) > > (define-type MyListof (All (A) (Rec X (U MyNull (Pair A X))))) > > (: mycar : (All (A) ((MyListof A) -> A))) > (define (mycar lst) > (if (MyNull? lst) > (error 'mycar "given list is empty") > (car lst))) > > (: mycdr : (All (A) ((MyListof A) -> (MyListof A)))) > (define (mycdr lst) > (if (MyNull? lst) > (error 'mycdr "given list is empty") > (cdr lst))) > ;;;;;;;;;;;;; > > where mynull is the singleton instance of the opaque structure type MyNull. > _________________________ > Racket Developers list: > http://lists.racket-lang.org/dev _________________________ Racket Developers list: http://lists.racket-lang.org/dev