[racket] typed/racket and contract boundaries

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Mon Jan 27 16:57:44 EST 2014

Thanks!

Robby


On Mon, Jan 27, 2014 at 3:43 PM, Sam Tobin-Hochstadt
<samth at cs.indiana.edu>wrote:

> On Mon, Jan 27, 2014 at 4:35 PM, Asumu Takikawa <asumu at ccs.neu.edu> wrote:
> > On 2014-01-27 08:40:38 -0800, Eric Dobson wrote:
> >> This is likely a bug, but I cannot reproduce using the following
> >> program. Do you have a small test case?
> >
> > I talked to Spencer and we found this example that produces the same
> > output:
> >
> >   (module a typed/racket
> >     (: g ((U (Parameterof (-> Void)) (-> Void)) -> Void))
> >     (define (g p) p (void))
> >     (provide g))
> >   (require 'a)
> >   (g (make-parameter void))
> >
> > It seems to be specific to having a `Parameterof` containing a
> > function type unioned with a function type.
>
> Here's the bug without TR:
>
> #lang racket
> (module b racket
>   (define (g p) p (void))
>   (provide/contract [g
>                      (-> (or/c (parameter/c (-> void?))
>                                (-> void?))
>                          void?)]))
> (require 'b)
> (g (make-parameter void))
>
> Gives the error:
>
> sw/plt/racket/collects/racket/contract/private/blame.rkt:245:0:
> default-blame-format: contract violation
>   expected: a blame object with a non-#f positive field
>   given: #<blame>
>
> Sam
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20140127/c5ff7a86/attachment-0001.html>

Posted on the users mailing list.