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
Show all
Self type
Expr.type

Members list

Type members

Classlikes

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

Attributes

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

Attributes

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

Attributes

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

Attributes

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

Attributes

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

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 mapTupled[A, B](a: Tupled[Expr, A], f: A -⚬ B)(resultVar: V)(using Context): Expr[B]

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