Arjan,
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
HTH,
Stefan
_______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe