
31 Aug
2015
31 Aug
'15
2:47 p.m.
On Mon, Aug 31, 2015 at 1:54 PM, Fermin Reig
We could generalise:
mconcat:: [a] -> a mconcat = foldr mappend memtpy
to:
mconcat:: Foldable t => t a -> a mconcat = foldr mappend memtpy -- even -- mconcat = fold
I don't understand the appeal of generalizing the type of a function when the generalization already exists; but in this case it's not a viable option anyways because mconcat is a class method of Monoid, and the definition of the Foldable class already refers to Monoid. Creating a circular dependency of Monoid on Foldable would be a headache best avoided. Regards, Reid Barton