hydra.dsl.lib.eithers

Members list

Value members

Concrete methods

def apply[X, Y, Z](ef: TypedTerm[Either[X, Y => Z]])(ex: TypedTerm[Either[X, Y]]): TypedTerm[Either[X, Z]]
def bimap[X, Z, Y, W](f: TypedTerm[X => Z])(g: TypedTerm[Y => W])(e: TypedTerm[Either[X, Y]]): TypedTerm[Either[Z, W]]
def bind[X, Y, Z](e: TypedTerm[Either[X, Y]])(f: TypedTerm[Y => Either[X, Z]]): TypedTerm[Either[X, Z]]
def compose[X, W, Y, Z](f: TypedTerm[X => Either[W, Y]])(g: TypedTerm[Y => Either[W, Z]])(x: TypedTerm[X]): TypedTerm[Either[W, Z]]
def either[X, Z, Y](f: TypedTerm[X => Z])(g: TypedTerm[Y => Z])(e: TypedTerm[Either[X, Y]]): TypedTerm[Z]
def foldList[X, Y, Z](f: TypedTerm[X => Y => Either[Z, X]])(acc0: TypedTerm[X])(xs: TypedTerm[Seq[Y]]): TypedTerm[Either[Z, X]]
def isLeft[X, Y](e: TypedTerm[Either[X, Y]]): TypedTerm[Boolean]
def isRight[X, Y](e: TypedTerm[Either[X, Y]]): TypedTerm[Boolean]
def left[X, Y](x: TypedTerm[X]): TypedTerm[Either[X, Y]]
def lefts[X, Y](xs: TypedTerm[Seq[Either[X, Y]]]): TypedTerm[Seq[X]]
def map[X, Y, Z](f: TypedTerm[X => Y])(e: TypedTerm[Either[Z, X]]): TypedTerm[Either[Z, Y]]
def mapList[X, Z, Y](f: TypedTerm[X => Either[Z, Y]])(xs: TypedTerm[Seq[X]]): TypedTerm[Either[Z, Seq[Y]]]
def mapOptional[X, Z, Y](f: TypedTerm[X => Either[Z, Y]])(m: TypedTerm[Option[X]]): TypedTerm[Either[Z, Option[Y]]]
def mapSet[X, Z, Y](f: TypedTerm[X => Either[Z, Y]])(s: TypedTerm[Set[X]]): TypedTerm[Either[Z, Set[Y]]]
def partition[X, Y](xs: TypedTerm[Seq[Either[X, Y]]]): TypedTerm[(Seq[X], Seq[Y])]
def right[Y, X](x: TypedTerm[Y]): TypedTerm[Either[X, Y]]
def rights[X, Y](xs: TypedTerm[Seq[Either[X, Y]]]): TypedTerm[Seq[Y]]