title: Unnecessary assignment in do sequence
body: <p>Let's look at:</p>
  
  <pre><code>instance (Error e) =&gt; MonadTrans (ErrorT e) where
    lift m = ErrorT $ do
      a &lt;- m
      return (Right a)
  </code></pre>
  
  <p>I cannot understand why is necessary <code>a &lt;- m</code>. Why we don't write just:</p>
  
  <pre><code>instance (Error e) =&gt; MonadTrans (ErrorT e) where
    lift m = ErrorT $ do
      return (Right m)
  </code></pre>