
Sorry I had a typo. Here's working code:
data A = A Int
data B = B Int
f :: Int -> Either A B
f x
| even x = Left $ A x
| otherwise = Right $ B x
-deech
On Tue, Dec 14, 2010 at 2:29 PM, aditya siram
Does this help?
data A = A Int
f :: Int -> Either A B f x | even x = Left $ A x | | otherwise = Right $ B x |
-deech
On Tue, Dec 14, 2010 at 2:09 PM, Russ Abbott
wrote: Is there a way to get this to work?
data A = Aconstructor Int data B = Bconstructor Int data AorB = A | B f :: Int -> AorB f x | even x = Aconstructor x | otherwise = Bconstructor x
I get this diagnostic.
Couldn't match expected type `AorB' against inferred type `A'
Since AorB is A or B, why is this not permitted? If instead I write
data AorB = Aconstructor Int | Bconstructor Int
everything works out ok. But what if I want separate types for A and B? Thanks, -- Russ _______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners