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