[racket] typed/racket and contract boundaries
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>