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