[racket] DRRacket Check Syntax Loops Endlessly (Sample Provided)

From: Ray Racine (ray.racine at gmail.com)
Date: Thu Nov 1 12:25:18 EDT 2012

Thanks,

I did catch that, was just pointing out the non-termination.  The original
source file was much larger and it took awhile to pare it down to the root
cause.  Definitely a non-showstopper issue however.


On Thu, Nov 1, 2012 at 12:16 PM, Sam Tobin-Hochstadt <samth at ccs.neu.edu>wrote:

> On Thu, Nov 1, 2012 at 12:07 PM, Ray Racine <ray.racine at gmail.com> wrote:
> > Fresh build from Racket git MASTER, the following causes DRRacket's Check
> > Syntax to loop without termination.
>
> Clearly, this isn't the behavior you want, but I don't think a
> contract is possible to generate for this code.
>
> If you change the type of the S2-x field to `(S0 T)`, then it works.
> That might even have been what you wanted.
>
> >
> > #lang typed/racket/base
> >
> > (provide f)
> >
> > (struct: (T) S1 ([x : (Listof String)]))
> >
> > (struct: (T) S2 ([x : S0]
> >                  [g : (T -> Boolean)]))
> >
> > (define-type (S0 T) (U (S1 T) (S2 T)))
> >
> > (: f (String -> (S0 String)))
> > (define (f x)
> >   (S1 '()))
> >
> > ____________________
> >   Racket Users list:
> >   http://lists.racket-lang.org/users
> >
>
>
>
> --
> sam th
> samth at ccs.neu.edu
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20121101/5789adf4/attachment.html>

Posted on the users mailing list.