Thanks for the ~ syntax, but my question is really why you need it? What benefit do you get from "refutable patterns"? Alternatively, would anything break if a future Haskell just treated all patterns as irrefutable? -Alex- _________________________________________________________________ S. Alexander Jacobson mailto:me@alexjacobson.com tel:917-770-6565 http://alexjacobson.com On Tue, 30 Mar 2004, Martin [ISO-8859-1] Sj�gren wrote:
tis 2004-03-30 klockan 17.30 skrev S. Alexander Jacobson:
I would assume that this function:
foo list@(h:t) = list
is equivalent to
foo list = list where (h:t)=list
But passing [] to the first generates an error even though h and t are never used! Passing [] to the second works just fine.
You can write this as
foo' list@(~(h:t)) = list
foo' [] will evaluate to []. The H98 report calls it an "irrefutable pattern", IIRC.
Regards, Martin