[Haskell-cafe] Instances of constrained datatypes
Arjun Guha
guhaarju at grinnell.edu
Wed Apr 6 02:10:10 EDT 2005
This is a contrived example, but contains the essence of what I'd like
to do. Suppose I have this datatype:
> data (Eq v) => EqList v = EqList [v]
I'd like to make it an instance of Functor. However, fmap takes an
arbitrary function of type a -> b. I need an Eq constraint on a and
b. Is there any way to do this without creating my own `EqFunctor'
class with explicitly-kinded quantification:
> class (Eq a) => EqFunctor (f :: * -> *) a where
> eqfmap:: (Eq b) => (a -> b) -> f a -> f b
Thanks.
-Arjun
More information about the Haskell-Cafe
mailing list