The easiest solution is simply to define

   unionAll = nub . mergeAll
       where
       -- specialized definition of  nub
       nub = map head . groupBy (==)



Talking about the easiest solution, I guess this is a quite easy way of defining unionAll as well: http://gist.github.com/306782
I, of course, do not claim that it is more efficient or better. But I don't think it'd be rubbish :)


--
Ozgur Akgun