Expr

libretto.lambda.LambdasImpl.Expr$
See theExpr companion trait
object Expr extends Exprs

Attributes

Companion:
trait
Graph
Supertypes
trait Sum
trait Mirror
trait Exprs
class Object
trait Matchable
class Any
Self type
Expr.type

Members list

Concise view

Type members

Classlikes

case class Id[A](variable: Var[A]) extends Expr[A]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Expr[A]
class Object
trait Matchable
class Any
case class Map[B, C](f: Expr[B], g: B -⚬ C, resultVar: Var[C]) extends Expr[C]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Expr[C]
class Object
trait Matchable
class Any
case class Prj1[B1, B2](f: Expr[B1 |*| B2], b1: Var[B1], b2: Var[B2]) extends Expr[B1]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Expr[B1]
class Object
trait Matchable
class Any
case class Prj2[B1, B2](f: Expr[B1 |*| B2], b1: Var[B1], b2: Var[B2]) extends Expr[B2]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Expr[B2]
class Object
trait Matchable
class Any
case class Zip[B1, B2](f1: Expr[B1], f2: Expr[B2], resultVar: Var[B1 |*| B2]) extends Expr[B1 |*| B2]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Expr[B1 |*| B2]
class Object
trait Matchable
class Any

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Attributes

Inherited from:
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Attributes

Inherited from:
Mirror

Value members

Concrete methods

override def const[A](introduce: [x] => (x$1: Unit) => x -⚬ A |*| x)(varName: V)(using Context): Expr[A]

Attributes

Definition Classes
def cutAt[B, G[_]](b: Tupled[Expr, B])(p: [X] => (x$1: Expr[X]) => Option[G[X]]): Exists[[x] =>> (Tupled[[t] =>> Either[Var[t], G[t]], x], Tupled[Expr, B])]
override def initialVars[B](f: Expr[B]): Set[V]

Attributes

Definition Classes
override def map[B, C](f: Expr[B], g: B -⚬ C)(resultVar: V)(using Context): Expr[C]

Attributes

Definition Classes
override def resultVar[B](f: Expr[B]): Var[B]

Attributes

Definition Classes
def splitAt[B](b: Tupled[Expr, B])(p: [X] => (x$1: Var[X]) => Boolean): Exists[[x] =>> (Tupled[[t] =>> Either[Var[t], Expr[t]], x], Tupled[Expr, B])]
override def unzip[B1, B2](f: Expr[B1 |*| B2])(resultVar1: V, resultVar2: V)(using Context): (Expr[B1], Expr[B2])

Attributes

Definition Classes
override def variable[A](a: Var[A]): Expr[A]

Attributes

Definition Classes
override def zip[B1, B2](f1: Expr[B1], f2: Expr[B2])(resultVar: V)(using Context): Expr[B1 |*| B2]

Attributes

Definition Classes

Inherited methods

def initialVars[A](as: Tupled[Expr, A]): Set[V]

Attributes

Inherited from:
Exprs