title: Understanding `System.ZMQ4.Monadic`'s `forall` in Signature
body: <p>Looking at <code>runZMQ</code> from <a href="https://hackage.haskell.org/package/zeromq4-haskell-0.5/docs/System-ZMQ4-Monadic.html" rel="nofollow">System.ZMQ4.Monadic</a>:</p>
  
  <p>What is the meaning of this type signature?</p>
  
  <pre><code>λ: :t runZMQ 
  runZMQ
    :: transformers-0.4.2.0:Control.Monad.IO.Class.MonadIO m =&gt;
       (forall z. ZMQ z a) -&gt; m a
  </code></pre>
  
  <p>In particular, I don't understand the <code>forall</code>.</p>