Simon notes that lifted functions prevent certain optimisations, and then Joe wonders if lifting tuples prevents optimisations. Arvind has already answered this question. Unlifted tuples satisfy the type isomorphism (a,(b,c)) = (a,b,c) which is heavily used for optimising Id, but is invalid if tuples are lifted as in Haskell. Furthermore, only unlifted tuples satisfy the type isomorphism a -> b -> c = (a,b) -> c Just for sentimental reasons, I would like this last to hold in a language named for Haskell Curry. -- P