Context

libretto.lambda.LambdasImpl.Context
object Context extends Contexts

Attributes

Graph
Supertypes
trait Contexts
class Object
trait Matchable
class Any
Self type
Context.type

Members list

Value members

Concrete methods

override def fresh(info: C): Context

Attributes

Definition Classes
override def getConstant[A](v: Var[A])(using ctx: Context): Option[([x] => DummyImplicit ?=> x -> (A ** x), [x] => DummyImplicit ?=> x -> (x ** A))]

Attributes

Definition Classes
override def getDiscard[A](v: Var[A])(using ctx: Context): Option[([B] => DummyImplicit ?=> (A ** B) -> B, [B] => DummyImplicit ?=> (B ** A) -> B)]

Attributes

Definition Classes
override def getSplit[A](v: Var[A])(using ctx: Context): Option[A -> (A ** A)]

Attributes

Definition Classes
override def info(using ctx: Context): C

Attributes

Definition Classes
override def isDefiningFor[A](v: Var[A])(using ctx: Context): Boolean

Attributes

Definition Classes
override def nested(info: C, parent: Context): Context

Attributes

Definition Classes
override def newVar[A](label: V)(using ctx: Context): Var[A]

Attributes

Definition Classes
override def registerConstant[A](v: Var[A])(introFst: [x] => DummyImplicit ?=> x -> (A ** x), introSnd: [x] => DummyImplicit ?=> x -> (x ** A))(using ctx: Context): Unit

Attributes

Definition Classes
override def registerNonLinearOps[A](a: Expr[A])(split: Option[A -> (A ** A)], discard: Option[([B] => DummyImplicit ?=> (A ** B) -> B, [B] => DummyImplicit ?=> (B ** A) -> B)])(using ctx: Context): Unit

Attributes

Definition Classes

Inherited methods

def exprDiscarderSh(using Context): [X] => Lambdas.this.Expr[X] => Option[([Y] => DummyImplicit ?=> Lambdas.this.shuffled.Shuffled[X Lambdas.this.** Y, Y], [Y] => DummyImplicit ?=> Lambdas.this.shuffled.Shuffled[Y Lambdas.this.** X, Y])]

Attributes

Inherited from:
Contexts
def exprDiscarders(using Context): [X] => Lambdas.this.Expr[X] => Option[([Y] => DummyImplicit ?=> (X Lambdas.this.** Y) Lambdas.this.-> Y, [Y] => DummyImplicit ?=> (Y Lambdas.this.** X) Lambdas.this.-> Y)]

Attributes

Inherited from:
Contexts
def getDiscardSh[A](v: Var[V, A])(using Context): Option[([B] => DummyImplicit ?=> Lambdas.this.shuffled.Shuffled[A Lambdas.this.** B, B], [B] => DummyImplicit ?=> Lambdas.this.shuffled.Shuffled[B Lambdas.this.** A, B])]

Attributes

Inherited from:
Contexts
def registerDiscard[A](a: Expr[A])(discardFst: [B] => DummyImplicit ?=> (A ** B) -> B, discardSnd: [B] => DummyImplicit ?=> (B ** A) -> B)(using Context): Unit

Attributes

Inherited from:
Contexts
def registerSplit[A](a: Expr[A])(split: A -> (A ** A))(using Context): Unit

Attributes

Inherited from:
Contexts