title: Left flatMap on EitherT
body: <p>Let's say I have functions which return <code>Future[Either[_, _]</code> and I want to apply some of these functions in case of failures, that means apply them only to left side. The simplified example is:</p>
  
  <pre><code>def operation1: Future[Either[String, Int]] = Future.successful(Right(5))
  def operation2: Future[Either[String, Int]] = Future.successful(Left("error"))
  def operation2FallBackWork = Future.successful{
    println("Doing some revert stuff")
    Left("Error happened, but reverting was successful")
  }
  
  val res = for {
    res1 &lt;- EitherT.fromEither(operation1)
    res2 &lt;- EitherT.fromEither(operation2)//.leftFlatMap(operation2FallBackWork) -????
  } yield res1 + res2
  
  Await.result(res.toEither, 5 seconds)
  </code></pre>
  
  <p>How to achieve that?</p>