
27 Jul
2009
27 Jul
'09
12:14 a.m.
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? -- Felipe.