I can across the following construct in ghc source

class (Monad m) => MonadState s m | m -> s where
    get :: m s
    put :: s -> m ()

I am not aware of the syntactic construct  | m -> s just before the where? Can someone please explain it?


Thanks & Regards,
Amitava Shee