
8 Feb
2011
8 Feb
'11
7:33 a.m.
On 8 February 2011 23:25, John Lato
class Container c where type Elem c :: *
class (Container cIn, Container cOut) => CMap cIn cOut where cmap :: (Elem cIn -> Elem cOut) -> cIn -> cOut
instance (a ~ Elem (c a), b ~ Elem (c b), Functor c, Container (c a), Container (c b)) => CMap (c a) (c b) where cmap = fmap
I'm not sure if that will work for types like Set, as you're not explicitly bringing the constraint in. -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com