haskell-monoid-subclasses