
This reminds me of an old thread started by, well me :)
http://www.haskell.org/pipermail/haskell-cafe/2010-March/074805.html (sorry
for the typos)
It is not an especially enlightening thread, but contains some nice
references.
HTH,
On 14 December 2010 20:09, Russ Abbott
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 *
-- Ozgur Akgun