[racket-dev] Typed versions of untyped collections

From: Sam Tobin-Hochstadt (samth at ccs.neu.edu)
Date: Mon Dec 17 15:51:38 EST 2012

On Mon, Dec 17, 2012 at 3:27 PM, Robby Findler
<robby at eecs.northwestern.edu> wrote:
> I've long thought something along these lines is a good idea, but perhaps
> what I think is a good idea isn't what Matthias and Sam think is the bad
> idea.
>
> I think that it makes sense for 'require' in typed-racket to look in a
> different place than 'require' in untyped racket looks so that one can write
> the same require spec (in both the docs and the code) and have two versions
> of the same library, one that is typed and one that isn't typed. Then, then
> library writer, if they choose, can decide who pays what for going (or not)
> across the boundary between typed and untyped. (Or maybe submodules would be
> better.)

I think this is exactly what Eli was suggesting, and what I think is a bad idea.

> I think this is already happening in TR anyways, when I write
>
>   (require racket/list)
>
> I don't get the same file being loaded when that is in a TR program as when
> it is in a R program.

You get *exactly* the same file as in R.  I think that (a) this is a
valuable invariant and (b) the mechanisms for violating this invariant
are all very worrying.

Sam

Posted on the dev mailing list.