[racket] What am I doing wrong in this typed racket program?

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Tue Sep 18 17:57:13 EDT 2012

Are you saying it is reasonable that a typed racket program should
produce contract constructor errors like that?

Robby

On Tue, Sep 18, 2012 at 4:53 PM, Sam Tobin-Hochstadt <samth at ccs.neu.edu> wrote:
> The problem here is that `Any` is a special contract which isn't a
> "chaperone contract", and `set/c` requires chaperone contracts.
>
> It's not obvious to me if this can be detected statically, but you can
> work around this by changing `Any` to some other type.
>
> Sam
>
> On Tue, Sep 18, 2012 at 5:44 PM, Tony Garnock-Jones <tonyg at ccs.neu.edu> wrote:
>> Hi all,
>>
>> What could I be doing wrong here?
>>
>>     #lang typed/racket
>>     (provide (struct-out foo))
>>     (struct: foo ([bar : (Setof Any)]))
>>
>> Racket 5.3.0.24 complains about it ("racket problem.rkt"):
>>
>>     set/c: contract violation
>>       expected: chaperone-contract?
>>       given: #<make-contract>
>>       context...:
>>        /Users/tonyg/src/racket-typed-matrix/problem.rkt: [running body]
>>
>> The complaint vanishes if I comment out the provide, remove the bar
>> field, or change the bar field's type to Any/Integer/etc.
>>
>>   Tony
>> ____________________
>>   Racket Users list:
>>   http://lists.racket-lang.org/users
>
>
>
> --
> sam th
> samth at ccs.neu.edu
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users

Posted on the users mailing list.