MonadErrorSyntax_2
).fold[B](ifEmpty: => B)(f: A => B): B
OptionT(...).getOrElseF(default: => F[A])(implicit F: Monad[F]): F[A] ) emap ( _ \/> new Exception("error!!") )
↓
\/>
final def \/>[E](e: => E): E \/ A = o.toRight(self)(e) def OptionInstances#toRight[A, E](oa: Option[A])(e: => E): E \/ A = oa match { case Some(a) => \/-(a) case None => -\/(e) } //ほんで /** A left disjunction * * Often used to represent the failure case of a result */ final case class -\/[+A](a: A) extends (A \/ Nothing) /** A right disjunction * * Often used to represent the success case of a result */ final case class \/-[+B](b: B) extends (Nothing \/ B)