succ Blue cannot return MrX unless Blue and MrX have the same type. What I meant was that you would say:
'succ (Detective Red)' ==> Detective Green 'succ (Detective Green)' ==> Detective Blue 'succ (Detective Blue)' ==> Fugitive MrX -- Hal Daume III "Computer science is no more about computers | [EMAIL PROTECTED] than astronomy is about telescopes." -Dijkstra | www.isi.edu/~hdaume On Thu, 20 Feb 2003, Mike T. Machenry wrote: > I tried this. It doesn't work. succ Blue is an exception. Anybody else know > how this should be done? > > Thanks, > -mike > > On Thu, Feb 20, 2003 at 08:00:04AM -0800, Hal Daume III wrote: > > > 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 > > > > _______________________________________________ > > Haskell mailing list > > [EMAIL PROTECTED] > > http://www.haskell.org/mailman/listinfo/haskell > _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
