Aaron Denney wrote:

I know of no good way to express that a given data type obeys the
same interface two (or more) ways.

The best approach here is to use data structures instead of classes:

data Monoid a = MkMonoid
{
  monoidNull :: a,
  monoidFunc :: a -> a -> a
}

--
Ashley Yakeley

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to