[clean-list] Re: relationship between uniqueness types and single-threaded lambda calculus?

Edsko de Vries devriese at cs.tcd.ie
Tue Sep 25 10:26:58 MEST 2007


Hi,

Just a little node:

> The summary/comparison I was looking for would go something like this:
> the most easily identifiable difference between the systems is how
> they prevent a mutable value from "hiding" in a let*-bound closure.
> 
>   - Wadler's "smuggling" restriction prohibits let*-bound values from
>     being of functional type, being polymorphic, or having
>     subcomponents which are mutable values.  Clean appears to be using
>     this criteria.
> 
>   - STPLC weakens this restriction to merely prohibiting let*-bound
>     values from being of functional type (they may still be
>     polymorphic over first-order types) at the cost of a somewhat
>     more complex type system.
> 
>   - Edsko de Vries's type system appears to lift *all* of the
>     restrictions, so long as you "thread through" any mutable (ie
>     unique) values into a component of the return value.

I'm not sure the last point is valid. My system (so far, at least) does
not deal with this problem at all. If you like: I don't support a 'let*'
construct. A let* construct could be added, but similar 'smuggling'
rules that Wadler or Clean uses must be in place.

Edsko


More information about the clean-list mailing list