VArr

libretto.lambda.LambdasImpl.VArr$
See theVArr companion trait
object VArr extends VArrs

Attributes

Companion:
trait
Graph
Supertypes
trait Sum
trait Mirror
trait VArrs
class Object
trait Matchable
class Any
Self type
VArr.type

Members list

Concise view

Type members

Classlikes

object ElimRes

Attributes

Companion:
trait
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
ElimRes.type
sealed trait ElimRes[V, B]

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Closure[X, V, V1, B]
class Error[V, B]
class Exact[V, V1, B]
class NotFound[V, B]
object ElimStep

Attributes

Companion:
trait
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed trait ElimStep[V, B]

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Found[V, B]
class Closure[X, V, V1, B]
class Exact[V, V1, B]
class HalfUsed[V, B, U]
class NotFound[V, B]
class Overused[U, V, B]
case class Id[A](variable: Var[A]) extends VarDefining[A, A]

Attributes

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

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait VarDefining[A, C]
trait VArr[A, C]
class Object
trait Matchable
class Any
case class Par[A1, A2, B1, B2](f1: VArr[A1, B1], f2: VArr[A2, B2]) extends VArr[A1 |*| A2, B1 |*| B2]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait VArr[A1 |*| A2, B1 |*| B2]
class Object
trait Matchable
class Any
case class Prj1[A, B1, B2](f: VArr[A, B1 |*| B2], b1: Var[B1], b2: Var[B2]) extends VarDefining[A, B1]

Attributes

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

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait VarDefining[A, B2]
trait VArr[A, B2]
class Object
trait Matchable
class Any
sealed trait VarDefining[A, B] extends VArr[A, B]

Attributes

Graph
Supertypes
trait VArr[A, B]
class Object
trait Matchable
class Any
Known subtypes
class Id[A]
class Map[A, B, C]
class Prj1[A, B1, B2]
class Prj2[A, B1, B2]
class Zip[A1, A2, B1, B2]
case class Zip[A1, A2, B1, B2](f1: VArr[A1, B1], f2: VArr[A2, B2], resultVar: Var[B1 |*| B2]) extends VarDefining[A1 |*| A2, B1 |*| B2]

Like Par, but defines a new variable to store the result

Like Par, but defines a new variable to store the result

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait VarDefining[A1 |*| A2, B1 |*| B2]
trait VArr[A1 |*| A2, 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 id[A](a: Var[A]): VArr[A, A]

Attributes

Definition Classes
override def initialVars[A, B](f: VArr[A, B]): Vars[A]

Attributes

Definition Classes
override def map[A, B, C](f: VArr[A, B], g: B -⚬ C, resultVar: Var[C]): VArr[A, C]

Attributes

Definition Classes
override def par[A1, A2, B1, B2](f1: VArr[A1, B1], f2: VArr[A2, B2]): VArr[A1 |*| A2, B1 |*| B2]

Attributes

Definition Classes
override def terminalVars[A, B](f: VArr[A, B]): Vars[B]

Attributes

Definition Classes
override def toExpr[A, B](f: VArr[A, B]): Expr[B]

Attributes

Definition Classes
override def unzip[A, B1, B2](f: VArr[A, B1 |*| B2])(resultVar1: Var[B1], resultVar2: Var[B2]): (VArr[A, B1], VArr[A, B2])

Attributes

Definition Classes
override def zip[A1, A2, B1, B2](f1: VArr[A1, B1], f2: VArr[A2, B2], resultVar: Var[B1 |*| B2]): VArr[A1 |*| A2, B1 |*| B2]

Attributes

Definition Classes