Closures

libretto.lambda.Closures
See theClosures companion object
class Closures[-⚬[_, _], |*|[_, _], =⚬[_, _], Var[_], VarSet, E, LE, LAMBDAS <: Lambdas[-⚬, |*|, Var, VarSet, E, LE]](val lambdas: LAMBDAS)(using inj: BiInjective[|*|], variables: Variable[Var, VarSet])

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Concise view

Type members

Classlikes

object ClosureRes

Attributes

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

Attributes

LE

type that represents linearity violation

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Capturing[X, A, A1, B]
class NonCapturing[A, A1, B]
class NonLinear[A, B]
class NotFound[A, B]

Value members

Concrete methods

def app[A, B](f: Expr[A =⚬ B], a: Expr[A])(resultVar: Var[B])(using ev: ClosedSemigroupalCategory[-⚬, |*|, =⚬]): Expr[B]
def closure[A, B](f: Expr[A] => Expr[B], boundVar: Var[A])(using ev: ClosedSymmetricSemigroupalCategory[-⚬, |*|, =⚬]): ClosureRes[A, B]

Concrete fields

val lambdas: LAMBDAS