Thanks! Actually, I read about them some time ago (last year?) but prompty forgot again, it looks like.

On Tue, Jul 23, 2013 at 9:56 PM, Karol Samborski <edv.karol@gmail.com> wrote:
2013/7/23 Emmanuel Surleau <emmanuel.surleau@gmail.com>
Hello,

I have seen from time to time the pipe symbol in type signatures, like so:

  class Monad m => MonadReader r m | m -> r where

How should I interpret that ? Or more to the point, how does the compiler
interpret it?

Hi Emmanuel!

The pipe symbol is for a functional dependency:
 
Thanks Karol! I actually read about the concept some months ago, but apparently forgot about it again.

Cheers,

Emm