[Haskell-beginners] Type unions

Tobias Brandt tob.brandt at googlemail.com
Tue Dec 14 21:35:21 CET 2010


On 14 December 2010 21:26, Russ Abbott <russ.abbott at gmail.com> wrote:
> Isn't "Either" the same thing as AorB in
>
> data AorB = Aconstructor Int | Bconstructor Int
>
> I want two separate types A and B along with a third type which is their
> Union. Is that not possible?

That's exactly what either is:

data A = ...
data B = ...

f :: Int -> Either A B

> In my actual case, I have more than two types.  So I would like a way to
> take the union of an arbitrarily number of types.
>
> data Union = A1 | A2 | ...
>
> where each of A1, A2, ... has its own data declaration.

You can create a new data type:

data MyUnion = First A1 | Second A2 | Third A3

and use it like this:

f :: Int -> MyUnion



More information about the Beginners mailing list