All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.atnos.eff.syntax.disjunction.scala Maven / Gradle / Ivy

package org.atnos.eff.syntax

import scalaz._
import org.atnos.eff._

object disjunction extends disjunction

trait disjunction {

  implicit class DisjunctionEffectOps[R <: Effects, A](e: Eff[R, A]) {

    def runDisjunction[E](implicit member: Member[(E \/ ?), R]): Eff[member.Out, E \/ A] =
      DisjunctionInterpretation.runDisjunction(e)(member.aux)

    def runEither[E, U <: Effects](implicit member: Member[(E \/ ?), R]): Eff[member.Out, E Either A] =
      DisjunctionInterpretation.runEither(e)(member.aux)

    def catchLeft[E](handle: E => Eff[R, A])(implicit member: Member[(E \/ ?), R]): Eff[R, A] =
      DisjunctionInterpretation.catchLeft(e)(handle)(member)
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy