'Convertible' class?
Hannah Schroeter
uk1o@rz.uni-karlsruhe.de
Thu, 8 Feb 2001 00:40:26 +0100
Hello!
On Wed, Feb 07, 2001 at 05:43:40PM -0500, Dylan Thurston wrote:
> [...]
> > class Subtype a b where {- a is subtype of b, if following operations exist -}
> > inject :: a -> b
> > project :: b -> Maybe a
> Shouldn't this be a subclass? 'project' is not always easy or
> possible to define.
Good question.
The term subclass is, however, not according to Haskell's type system.
Therefore:
class Subtype a b where
inject :: a -> b
class Subtype a b => ProjectableSubtype a b where
project :: b -> Maybe a
(or can someone imaging a constellation where project makes sense
but inject does not? In that case, the two classes should be
completely independent instead)
Kind regards,
Hannah.