superclass implications

Ashley Yakeley ashley at
Tue Feb 21 21:12:33 EST 2006

Claus Reinke wrote:
>>    >   class Monad m => MonadPlus m    if  <..oops..>
> if Monad m, then declare MonadPlus m as follows..

This gloss doesn't make sense. The act of declaration is a constant 
static property of the module, and cannot be conditional on the property 
of a variable. The module _always_ declares the class.

A sensible gloss should begin "Declare MonadPlus to be a class on m such 
that (Monad m) and..." with the understanding that "m" is quantified by 
"Declare MonadPlus to be a class on m".

Ashley Yakeley

More information about the Haskell-prime mailing list