[racket-dev] Typed Racket and eq?

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Mon Aug 2 10:53:01 EDT 2010

On Mon, Aug 2, 2010 at 10:36 AM, Matthias Felleisen
<matthias at ccs.neu.edu> wrote:
> Sam, this is an interesting question and you should look into it because the answer isn't obvious:
>  (module A typed/racket (provide map))
> passes map from 'somewhere' through A to two contexts: typed and untyped modules. Given that all provides slap on contracts in TR -- that's what the manual says or should say -- it is surprising that this map should ever be the same as the map that came from 'somewhere'.

The identifier you get for `map' outside this module is the same
identifier you would have from `racket'.  `provide' adds contracts for
identifiers *defined in this module* (including those defined by
`require/typed').  Other modules protect their own code.

> It certainly wouldn't be the case in a contract world.

Can you make this more precise?

sam th
samth at ccs.neu.edu

Posted on the dev mailing list.