[Haskell-cafe] Re: Implementing "unionAll"

Evan Laforge qdunkan at gmail.com
Thu Feb 18 03:07:09 EST 2010

BTW, I notice that your merges, like mine, are left-biased.  This is a
useful property (my callers require it), and doesn't seem to cost
anything to implement, so maybe you could commit to it in the

By left-biased I mean that when elements compare equal, pick the
leftmost one, e.g. "mergeOn fst [(0, 'a')] [(0, 'b')] == [(0, 'a'),
(0, 'b')]".

And BTW again, here's something I've occasionally found useful:

-- | Handy to merge or sort a descending list.
reverse_compare :: (Ord a) => a -> a -> Ordering
reverse_compare a b = case compare a b of
    LT -> GT
    EQ -> EQ
    GT -> LT

More information about the Haskell-Cafe mailing list