Christian Maeder Christian.Maeder at
Thu Feb 26 05:36:05 EST 2009


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

More information about the Libraries mailing list