two easy questions

Hal Daume III hdaume@ISI.EDU
Thu, 20 Feb 2003 08:00:04 -0800 (PST)


> Question 1: Is there an easier, more elegant way to write this code?

For the most part, no.

> Question 2: Is there a way to express the following relationship?
>  I want to have a set of symbols with ordering and another set that is
> part of that ordering but with a different parent. For exammple,
> 
> data Player = Detective | Fugitive deriving (Enum)
> data Detective = Red | Green | Blue deriving (Enum)
> data Fugitive = MrX deriving (Enum)

How about something like:

> data Player = Detective Detective | Fugitive Fugitive deriving (Enum)
> data Detective = Red | Green | Blue deriving (Enum)
> data Fugitive  = MrX deriving (Enum)

(I'm not sure if the deriving Enum on Player will be exactly what you want
-- I think so though.  I don't derive this class very often.)

Then you can test detectiveness by:

> isDetective (Detective _) = True
> isDetective _             = False

HTH

 - Hal