One goal of Haskell was to act as a basis for future language designs.
This is a question about a language design alternative that is
(probably) too radical for Haskell: but the Haskell community has lots
of relevant experience, and I'd like to know what you think.

I have been toying with a design where ~ does not exist, where one can
declare unlifted tuple types, and where only patterns involving
unlifted tuples can appear in `let' and `where'.  This supports more
language equivalences, e.g.,

        let p = t in u   =   case t of p -> u

but it prohibits potentially useful expressions such as

        let [x,y] = ... in ... .

How badly would you miss ~ ?  How badly would you be hit by the
restriction on `let' and `where'?  What are your favorite examples
using ~ or violating this restriction?  Please e-mail responses to me.
I'll post a summary if anyone requests one.

Cheers,  -- P

-----------------------------------------------------------------------
Professor Philip Wadler                        [EMAIL PROTECTED]
Department of Computing Science                    tel: +44 41 330 4966
University of Glasgow                              fax: +44 41 330 4913
Glasgow G12 8QQ, SCOTLAND


Reply via email to