[Haskell-cafe] Type hierarchy
Felipe Almeida Lessa
felipe.lessa at gmail.com
Wed Jan 16 16:57:02 CET 2013
For your particular constraints, it can be as easy as:
class IsA a where
toA :: a -> A
foo' :: IsA a => a -> C
foo' = foo . toA
However, you may asking the wrong question since it smells like you're
trying to embed OO into Haskell =).
On Wed, Jan 16, 2013 at 1:03 PM, Thiago Negri <evohunz at gmail.com> wrote:
> How do I achieve type hierarchy in Haskell?
> Suppose we have the following code:
> foo :: A -> C
> bar :: B -> C
> I want something that allow me to say that B is a subtype of A, meaning:
> 1. I can use a value of type A where a value of type A is needed.
> 2. I can use a value of type B where a value of type B is needed.
> 3. I can use a value of type B where a value of type A is needed.
> 4. I can't use a value of type A where a value of type B is needed.
> What are my options?
> I've thought in type classes and data types with an attribute representing
> the extension. Any other way to do this?
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe