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 <russ.abbott@gmail.com> 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