LambdasImpl
libretto.lambda.LambdasImpl
opaque class LambdasImpl[->[_, _], **[_, _], V, C, SHUFFLED <: Shuffled[->, **]](val shuffled: SHUFFLED, universalSplit: Option[[X] => Unit => X -> (X ** X)], universalDiscard: Option[[X, Y] => Unit => (X ** Y) -> Y])(using inj: BiInjective[**]) extends Lambdas[->, **, V, C]
Attributes
- Graph
-
- Supertypes
Members list
Type members
Classlikes
object CapturingFun
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
CapturingFun.type
AST of an expression, created by user code, before translation to point-free representation, containing intermediate Vars. Non-linear: includes projections and multiple occurrences of the same variable.
object Unvar
Types
Inherited types
type Delambdified[A, B] = CapturingFun[this.shuffled.Shuffled, **, [_] =>> Tupled[Expr, _$10], A, B]
Attributes
- Inherited from:
- Lambdas
Attributes
- Inherited from:
- Lambdas
Attributes
- Inherited from:
- Lambdas
Value members
Concrete methods
override def eliminateLocalVariables[A, B](boundVar: Var[A], expr: Expr[B])(using ctx: Context): Validated[LinearityViolation, Delambdified[A, B]]
Attributes
- Definition Classes
Inherited methods
def delambdifyFoldNested[A, B](nestedCtxInfo: C, varName: V, f: Context ?=> Expr[A] => Expr[B])(using parent: Context, cat: SymmetricSemigroupalCategory[->, **]): Validated[LinearityViolation, Delambdifold[A, B]]
Attributes
- Inherited from:
- Lambdas
def delambdifyFoldTopLevel[A, B](freshCtxInfo: C, varName: V, f: Context ?=> Expr[A] => Expr[B])(using SymmetricSemigroupalCategory[->, **]): Validated[LinearityViolation, Delambdifold[A, B]]
Attributes
- Inherited from:
- Lambdas
def delambdifyNested[A, B](nestedCtxInfo: C, varName: V, f: Context ?=> Expr[A] => Expr[B])(using parent: Context): Validated[LinearityViolation, Delambdified[A, B]]
Attributes
- Inherited from:
- Lambdas
def delambdifyTopLevel[A, B](freshCtxInfo: C, varName: V, f: Context ?=> Expr[A] => Expr[B]): Validated[LinearityViolation, Delambdified[A, B]]
Attributes
- Inherited from:
- Lambdas
Concrete fields
Givens
Inherited givens
Attributes
- Inherited from:
- Lambdas
Extensions
Inherited extensions
In this article