Single

libretto.lambda.DistributionNAry.DistLR.Single
case class Single[**[_, _], ||[_, _], ::[_, _], A, Lbl <: String, B](label: Lbl) extends DistLR[**, ||, ::, A, Lbl :: B]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait DistLR[**, ||, ::, A, Lbl :: B]
class Object
trait Matchable
class Any
Show all

Members list

Type members

Types

override type Out = Lbl :: (A ** B)

Value members

Concrete methods

override def distributeOver[N, I](m: Member[||, ::, N, I, Lbl :: B])(using BiInjective[||], BiInjective[::]): Member[||, ::, N, A ** I, Out]

Attributes

Definition Classes
override def dropNames[[_, _], Nil]: Exists[[X] =>> Exists[[Y] =>> (DropNames[||, ::, , Nil, Lbl :: B, X], Unnamed[**, , Nil, A, X] { type Out = Y; }, DropNames[||, ::, , Nil, Out, Y])]]

Attributes

Definition Classes
override def separately[A1, A2](using A =:= (A1 ** A2)): Exists[[A2Cases] =>> Exists[[A12Cases] =>> (DistLR[**, ||, ::, A2, Lbl :: B] { type Out = A2Cases; }, DistLR[**, ||, ::, A1, A2Cases] { type Out = A12Cases; }, Named[||, ::, [x, y] =>> Exists[[b] =>> (x =:= (A1 ** (A2 ** b)), (A1 ** A2 ** b) =:= y)], A12Cases, Lbl :: (A ** B)])]]

Attributes

Definition Classes

Inherited methods

def extend[Lbl <: String, Z](lbl: Lbl): DistLR[**, ||, ::, A, Lbl :: B || (Lbl :: Z)] { type Out = Out || (Lbl :: (A ** Z)); }

Attributes

Inherited from:
DistLR
def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product