[Haskell-cafe] Type classes... popular for newbies, isn't it?

Stefan Holdermans sholderm at students.cs.uu.nl
Sat Aug 7 02:29:58 EDT 2004


AG> I'm curious as to why my class declaration
AG> compiles in GHC, as there doesn't seem to
AG> be any way to use it.

  > class (Ord st) => MinimaxState st where
  >   successors :: forall a . st -> [(a, st)]
  >   terminal   :: st -> True

Any implementation of the successors method needs to produce values of
an arbitrarely type a. Hence, it can only produce the empty list or a
list of pairs that all have bottom as their first component.

  > instance MinimaxState Bool where
  >   successors = const []
  >   terminal   = not

  > instance MinimaxState Int where
  >   successors n = [(undefined, pred n), (undefined, succ n)]
  >   terminal 0   = True
  >   terminal n   = False



More information about the Haskell-Cafe mailing list