
26 Feb
2009
26 Feb
'09
5:36 a.m.
Libraries-List, browsing through the sources of Data.List I discovered "select", which is only used for the implementation of partition and not exported. Can someone explain, why the irrefutable pattern "~" is used? Both components are used in both branches. select :: (a -> Bool) -> a -> ([a], [a]) -> ([a], [a]) select p x ~(ts,fs) | p x = (x:ts,fs) | otherwise = (ts, x:fs) Why is it not just in where-clause? Doesn't "INLINE partition" work then? Cheers Christian