[racket] Typed Racket Confusing Error Message / Type Check Error

From: Ray Racine (ray.racine at gmail.com)
Date: Wed Aug 1 14:04:19 EDT 2012

Thanks ... was show stopper.

On Wed, Aug 1, 2012 at 1:45 PM, Sam Tobin-Hochstadt <samth at ccs.neu.edu>wrote:

> This looks like something that should work -- I'm not sure why TR
> thinks that `Nothing` is the right type to infer for the second
> parameter to the `Collection` type.  However, changing the last line
> to:
>
>   (((inst Collection-append D C) coll) elem))
>
> makes it typecheck.
>
> On Wed, Aug 1, 2012 at 12:17 PM, Ray Racine <ray.racine at gmail.com> wrote:
> > The following gives an error of "Expected Nothing, but got D in elem."
> > Type checking error?
> >
> > #lang typed/racket/base
> >
> > (struct: (D C) Collection ([append   : (D -> Void)]
> >                            [build    : (-> C)]))
> >
> > (: List-Builder (All (D) -> (Collection D (Listof D))))
> > (define (List-Builder)
> >
> >   (: lst (Listof D))
> >   (define lst '())
> >
> >   (Collection (λ: ((datum : D))
> >                 (set! lst (cons datum lst)))
> >               (λ () lst)))
> >
> > (: build-Collection (All (D C) (Collection D C)-> C))
> > (define (build-Collection collection)
> >   ((Collection-build collection)))
> >
> > (: append-Collection (All (D C) (Collection D C) D -> Void))
> > (define (append-Collection coll elem)
> >   ((Collection-append coll) elem))
> >
> >
> > ____________________
> >   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/20120801/ce80d8b7/attachment.html>

Posted on the users mailing list.