[Haskell-cafe] Alternatives to type classes.
jason.dusek at gmail.com
Tue Dec 29 20:22:15 EST 2009
Consider the real numbers. They "are" a group. We have an
identity element `0', inverses and closure under the associative
Group+ = (+, 0, -1 * _)
They are another group, too -- the group with `*':
Group* = (*, 1, 1 / _)
This seems like a real problem with the whole notion of
typeclasses -- we can't really say a set/type "is" its
extension with some new operations.
One road to go on this is to make every extension of the set
with new ops a different type; but that seems really horribly
inconvenient. I wonder what approaches have been tried here?
More information about the Haskell-Cafe