In his summary on `Multi-parameter type classes in GHC' SPJ writes:
6. The type of each class operation must mention all of the class type
variables. For example:
class C a b where
op1 :: a -> (a,b)
op2 :: b -> b
is not OK, because the type of op2 doesn't me
stances than would be
necessary using Gofer's type system. This is rather disappointing for me; I
can see how "variable monads" and container types fit well into the present
system, but, since [1] is to my knowledge the most extensive example of
using MPTC with monads, I assumed tha
> There's no description of the multi-parameter type classes extension in the
> 3.01 user manual; are the extensions implemented as described in the link
> below? (I vaguely recollect Simon posting a message on this subject more
> recently, but I couldn't find it.)
>
> http://www.cs.chalmers.se