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

camarao at dcc.ufmg.br camarao at dcc.ufmg.br
Sat Aug 7 11:06:59 EDT 2004

>> How about inserting one more parameter, "action", in your class
>> definition:
>> class (Ord st) => MinimaxState st action where
>>    successors:: st -> [(action,st)]
>>    terminal:: st -> Bool
>> instance MinimaxState Int Int where
>>    terminal i = i == 0
>>    successors i = [(1,i+1), (-1,i-1)]

> I'd rather not do that, but even if I did, the type-variable action
> would not be reachable in the terminal function.  I could specify a
> functional dependency st -> action (though I've never used it, it would
> be a fun to learn).

Right... you need the functional dependency because of "terminal", and in
general a type annotation for using it.


More information about the Haskell-Cafe mailing list