
17 Jul
2009
17 Jul
'09
3:43 p.m.
Petr,
Short answer: you can't. Easiest way to workaround is to define a newtype wrapper around your original datatype:
newtype X' b a = X' {unX' :: X a b}
instance Functor (X' b) where fmap g (X' (X a b)) = X' (X b (g a))
Err.... fmap g (X' (X a b)) = X' (X (g a) b) Cheers, Stefan