Snoc
libretto.lambda.DistributionNAry.DistLR.Snoc
case class Snoc[**[_, _], ||[_, _], ::[_, _], A, Init, Lbl <: String, Z, AInit](init: DistLR[**, ||, ::, A, Init] { type Out = AInit; }, lbl: SingletonType[Lbl]) extends DistLR[**, ||, ::, A, Init || (Lbl :: Z)]
Attributes
- Graph
-
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Members list
Type members
Types
Value members
Concrete methods
override def distributeOver[N, I](m: Member[||, ::, N, I, Init || (Lbl :: Z)])(using BiInjective[||], BiInjective[::]): Member[||, ::, N, A ** I, Out]
Attributes
- Definition Classes
Attributes
- Definition Classes
override def separately[A1, A2](using A =:= (A1 ** A2)): Exists[[A2Cases] =>> Exists[[A12Cases] =>> (DistLR[**, ||, ::, A2, Init || (Lbl :: Z)] { type Out = A2Cases; }, DistLR[**, ||, ::, A1, A2Cases] { type Out = A12Cases; }, Named[||, ::, [x, y] =>> Exists[[b] =>> (x =:= (A1 ** (A2 ** b)), (A1 ** A2 ** b) =:= y)], A12Cases, AInit || (Lbl :: (A ** Z))])]]
Attributes
- Definition Classes
Inherited methods
def extend[Lbl <: String, Z](lbl: SingletonType[Lbl]): DistLR[**, ||, ::, A, Init || (Lbl :: Z) || (Lbl :: Z)] { type Out = Out || (Lbl :: (A ** Z)); }
Attributes
- Inherited from:
- DistLR
Attributes
- Inherited from:
- Product
Attributes
- Inherited from:
- Product
In this article