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

Reply via email to