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