title: Lifting from Either to IO
body: <p>I would like to convert from Either monad into IO without any clues from Either. Is there more elegant way to do it?</p>
  
  <p>I have written this function, but I would like to use something from a library or Prelude:</p>
  
  <pre><code>liftEither :: forall t (m :: * -&gt; *) a. Monad m =&gt; (t -&gt; m a) -&gt; Either String t -&gt; m a
  liftEither f (Right a)  = f a
  liftEither _ (Left msg) = fail msg
  </code></pre>