[racket-dev] a small Racket success story

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Tue Aug 17 22:58:35 EDT 2010

On Aug 17, 2010, at 9:21 PM, Shriram Krishnamurthi wrote:

> As some of you know, we're building a semantics for Python in Racket.
> At my instigation, my students are doing everything in Typed Racket.
> However, when we got to generators, we ran up against a problem: we
> couldn't type the generator code (a bad interaction between mutation
> and occurrence typing).  My students tried a few different things,
> none of which worked, and got stalled for a few days.
> But hey, this is Racket!  So in an hour I'd rewritten the generator
> abstraction in untyped Racket, exported it, imported it with a typed
> interface, and we were back in action.

Why did you even have to rewrite it? 

> See, it's not the interface
> that couldn't be expressed: it was the implementation that couldn't be
> checked.  Most type languages conflate the two issues.

'Everyone' (for some value of 'every') understands that this is how 
it works for the Y combinator. 

> Moral: If you want a language to model complex systems (and what's
> more complex than Python?), you need flexibility.  And Racket is
> nothing if not catholic.

(Well, it's catholic quite true, but not yet Catholic.)

-- Matthias

Posted on the dev mailing list.