[Haskell-cafe] A Question of Restriction

Felipe Lessa felipe.lessa at gmail.com
Mon Jul 27 00:14:07 EDT 2009

On Sun, Jul 26, 2009 at 09:01:22PM -0700, Brian Troutwine wrote:
> Hello all.
> I would like to define a data type that is the super-set of several
> types and then each of the proper subset types. For example:

data Foo = O !Odd | E !Even

>    data Odd = One | Three
>    data Even = Two | Four
> This, of course, does not work. It seems that such a thing should
> possible to express entirely in the type system, but I cannot think of
> how. Would someone be so kind as to explain how this sort of thing can
> be accomplished?

Do you have any reason not to do the above?


More information about the Haskell-Cafe mailing list