Leaf

libretto.lambda.Bin.Leaf
case class Leaf[<*>[_, _], T[_], F[_], A](value: F[A]) extends Bin[<*>, T, F, T[A]]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Bin[<*>, T, F, T[A]]
class Object
trait Matchable
class Any
Show all

Members list

Type members

Inherited classlikes

enum Partitioned[G[_], H[_], ~⚬[_, _]]

Attributes

Inherited from:
Bin
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Known subtypes
class Both[G, H, X, Y, ~⚬]

Value members

Inherited methods

def <*>[B](that: Bin[<*>, T, F, B]): Bin[<*>, T, F, T[A] <*> B]

Attributes

Inherited from:
Bin
def deduplicateLeafs[->[_, _]](dup: [x] => F[x] => ->[T[x], T[x] <*> T[x]])(using leafTest: ClampEq[F], shuffled: ShuffledModule[->, <*>]): Exists[[X] =>> (Bin[<*>, T, F, X], shuffled.Shuffled[X, T[A]])]

Attributes

Inherited from:
Bin
def foldMap[G[_]](map: [x] => F[x] => G[T[x]])(using G: Zippable[<*>, G]): G[T[A]]

Attributes

Inherited from:
Bin
def foldMap0[B](map: [x] => F[x] => B, reduce: (B, B) => B): B

Attributes

Inherited from:
Bin
def foldMapWith[G[_]](map: [x] => F[x] => G[T[x]], zip: [x, y] => (G[x], G[y]) => G[x <*> y]): G[T[A]]

Attributes

Inherited from:
Bin
def foldRight[B](b: B)(f: [x] => (F[x], B) => B): B

Attributes

Inherited from:
Bin
def getValue[V](using leafIsNotBranch: [x, y, z] => (T[x] =:= (y <*> z)) => Nothing, T: Injective[T], ev: T[A] =:= T[V]): F[V]

Attributes

Inherited from:
Bin
def mapLeafs[G[_]](f: [x] => F[x] => G[x]): Bin[<*>, T, G, T[A]]

Attributes

Inherited from:
Bin
def mask: Masked[[_] =>> Bin[<*>, T, F, _$5], T[A]]

Attributes

Inherited from:
Bin
def partition[G[_], H[_]](f: [x] => F[x] => Either[G[x], H[x]])(using shuffle: Shuffle[<*>]): Partitioned[G, H, shuffle.~⚬]

Attributes

Inherited from:
Bin
def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product
def relabelLeafs[U[_], Tr[_, _], B](tr: Tr[T[A], B], leafToLeaf: [X, UX] => Tr[T[X], UX] => UX =:= U[X])(using rel: PairwiseRel[<*>, <*>, Tr]): Bin[<*>, U, F, B]

Attributes

Inherited from:
Bin
def relabelLeafs[U[_], Tr[_, _]](leafTr: [X] => Unit => Tr[T[X], U[X]], parTr: [A1, A2, B1, B2] => (Tr[A1, B1], Tr[A2, B2]) => Tr[A1 <*> A2, B1 <*> B2]): Exists[[B] =>> (Tr[T[A], B], Bin[<*>, U, F, B])]

Attributes

Inherited from:
Bin
infix def union[B, ->[_, _]](that: Bin[<*>, T, F, B])(discardFst: [X, Y] => F[X] => ->[T[X] <*> Y, Y])(using leafTest: ClampEq[F], shuffled: ShuffledModule[->, <*>]): Exists[[P] =>> (Bin[<*>, T, F, P], shuffled.Shuffled[P, T[A]], shuffled.Shuffled[P, B])]

Returns a tree with the least common superset of leaves and projections to get back to each of the two inputs.

Returns a tree with the least common superset of leaves and projections to get back to each of the two inputs.

Attributes

Inherited from:
Bin