On Tue, Dec 14, 2010 at 2:15 PM, Ozgur Akgun
<ozgurakgun@gmail.com> wrote:
This reminds me of an old thread started by, well me :)
It is not an especially enlightening thread, but contains some nice references.
HTH,
On 14 December 2010 20:09, Russ Abbott
<russ.abbott@gmail.com> wrote:
Is there a way to get this to work?
data A = Aconstructor Int
data B = Bconstructor Int
f :: Int -> AorB
f x
| even x = Aconstructor x
| otherwise = Bconstructor x
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