>data E a b
> = L1 { r :: a }
> | L2 { r :: a }
> | L3 { r :: a }
> | L4 { r :: a }
> | R b
> deriving Show
How is this different from:
data E a b = L1 a | L2 a | R b
f g (R a) = R (g a)
f _ other = other
Isn't this more or less what was in the original...
The problem is the type:
f :: (a->b) -> Either String a -> Either String b
this line: f _ other = other
says: Either String a == Either String b -- which it doesn't
Keean.
_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe