Say I've got a type "Month" declared as an instance of the "Enum" class, and a type "MonthPair" declared as a pair of months:
data Month = January
| February
| March
| April
| May
| June
| July
| August
| September
| October
| November
| December
deriving (Eq, Enum, Ord, Show)
type MonthPair = (Month, Month)
deriving (Enum)
The "deriving" on "MonthPair" gives me the error "parse error on input 'deriving'".
Why is this error generated? Is there a syntax error, or is there a conceptual problem with enumerating a Cartesian product, such as Month x Month? The cardinality of the Cartesian product is finite (including the bottom values, cardinality = 1 + (12 + 1)*(12 + 1) = 170), and so the product is amenable at least to some arbitrary enumeration (such as Cantor's diagonal method).
Thanks.
The New Busy think 9 to 5 is a cute idea. Combine multiple calendars with Hotmail. Get busy.