[racket] typed racket: inconsistent interaction between typed and untyped code?

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Fri Mar 4 22:01:41 EST 2011

On Fri, Mar 4, 2011 at 7:00 PM, Danny Yoo <dyoo at cs.wpi.edu> wrote:
>> Sadly, off the top of my head, I don't have a quick workaround for
>> you.  Maybe Sam will have a better suggestion.
> I'm still confused, because I'm in untyped code, which I had assumed
> would maintain types at runtime through the use of contracts.  My
> question is: why doesn't the use of toplevel-vals from untyped code
> observe the value:
>    #<Typed Value: #(struct:toplevel #(foobar))>
> at runtime and be satisfied that this really is a toplevel structure?
> That is, I don't mind so much that the value is wrapped, just so long
> as the structure selector deals with the wrapping.

The structure selector can't deal with the wrapping, since it expectes
a `toplevel?', which this is not.  It's possible that there's a better
theory to be worked out of `Any', but we haven't done that yet.
sam th
samth at ccs.neu.edu

Posted on the users mailing list.