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

Andrew Coppin andrewcoppin at btinternet.com
Sun Nov 2 08:46:43 EST 2008


Mauricio wrote:
> 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.


More information about the Haskell-Cafe mailing list