[Haskell-beginners] Type unions
Russ Abbott
russ.abbott at gmail.com
Tue Dec 14 21:09:05 CET 2010
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 *
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20101214/03c2b600/attachment.htm>
More information about the Beginners
mailing list