Contexts

libretto.lambda.Lambdas.Contexts
trait Contexts

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Context

Members list

Value members

Abstract methods

def fresh(): Context
def getConstant[A](v: Var[V, A])(using Context): Option[[x] => (x$1: Unit) => x -⚬ (A |*| x)]
def getDiscard[A](v: Var[V, A])(using Context): Option[[B] => (x$1: Unit) => (A |*| B) -⚬ B]
def getSplit[A](v: Var[V, A])(using Context): Option[A -⚬ (A |*| A)]
def isDefiningFor[A](v: Var[V, A])(using ctx: Context): Boolean
def nested(parent: Context): Context
def newVar[A](label: V)(using Context): Var[V, A]
def registerConstant[A](v: Var[V, A])(introduce: [x] => (x$1: Unit) => x -⚬ (A |*| x))(using ctx: Context): Unit
def registerNonLinearOps[A](v: Var[V, A])(split: Option[A -⚬ (A |*| A)], discard: Option[[B] => (x$1: Unit) => (A |*| B) -⚬ B])(using Context): Unit

Concrete methods

def registerDiscard[A](v: Var[V, A])(discard: [B] => (x$1: Unit) => (A |*| B) -⚬ B)(using Context): Unit
def registerSplit[A](v: Var[V, A])(split: A -⚬ (A |*| A))(using Context): Unit