Lambdas

libretto.lambda.Lambdas
See theLambdas companion object
trait Lambdas[-⚬[_, _], |*|[_, _], V]

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class LambdasImpl[-⚬, |*|, V]

Members list

Type members

Classlikes

trait AbstractFuns

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object AbstractFun.type
trait Contexts

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Context.type
trait Exprs

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Expr.type
enum LinCheck[A]

Attributes

Companion
object
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
object LinCheck

Attributes

Companion
enum
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
LinCheck.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Types

type AbsRes[A, B] = Delambdified[Expr, |*|, -⚬, V, A, B]
type AbstractFun[A, B]
type Context
type Delambdified[A, B] = Delambdified[Expr, |*|, AbstractFun, V, A, B]
type Expr[A]
final type Tupled[F[_], A] = Tupled[|*|, F, A]
type VFun[A, B] = (V, Context ?=> Expr[A] => Expr[B])

Value members

Abstract methods

def switch[<+>[_, _], A, B](cases: Sink[VFun, <+>, A, B], sum: [X, Y] => (x$1: X -⚬ B, x$2: Y -⚬ B) => <+>[X, Y] -⚬ B, distribute: [X, Y, Z] => (x$1: Unit) => X |*| <+>[Y, Z] -⚬ <+>[X |*| Y, X |*| Z])(using Context): AbsRes[A, B]

Concrete methods

def delambdifyNested[A, B](varName: V, f: Context ?=> Expr[A] => Expr[B])(using parent: Context): Delambdified[A, B]
def delambdifyTopLevel[A, B](varName: V, f: Context ?=> Expr[A] => Expr[B]): Delambdified[A, B]

Deprecated methods

def absNested[A, B](varName: V, f: Context ?=> Expr[A] => Expr[B])(using parent: Context): Delambdified[A, B]

Attributes

Deprecated
true
def absTopLevel[A, B](varName: V, f: Context ?=> Expr[A] => Expr[B]): Delambdified[A, B]

Attributes

Deprecated
true

Abstract fields

val Expr: Exprs

Extensions

Extensions

extension [A](a: Expr[A])
def map[B](f: A -⚬ B)(resultVar: V)(using Context): Expr[B]
def resultVar: Var[V, A]
def zip[B](b: Expr[B])(resultVar: V)(using Context): Expr[A |*| B]
extension [A, B](f: AbstractFun[A, B])
def fold: A -⚬ B