[Haskell-cafe] Re: Syntax question: class (Monad m) => MonadReader r m | m -> r where

Mauricio briqueabraque at yahoo.com
Sun Nov 2 10:13:15 EST 2008

>> Hi,
>> I've reading Control.Monad.Reader source code and
>> arrived here:
>> class (Monad m) => MonadReader r m | m -> r where
>> I can't understand that syntax. Since this is not a
>> 'data' line, what is the '|' supposed mean?
> It's called a "functional dependency". This is not part of the 
> Haskell-98 language standard; check the GHC manual.

The documentation says "There should be more documentation, but there 
isn't (yet). Yell if you need it." :)

But I think I was able to understand everything from
the examples.


More information about the Haskell-Cafe mailing list