I can across the following construct in ghc source<br><br>class (Monad m) =&gt; MonadState s m | m -&gt; s where<br>    get :: m s<br>    put :: s -&gt; m ()<br><br>I am not aware of the syntactic construct  | m -&gt; s just before the where? Can someone please explain it?<br>
<br><br>Thanks &amp; Regards,<br>Amitava Shee<br>