DistRL

libretto.lambda.DistributionNAry.DistRL
See theDistRL companion object
sealed trait DistRL[**[_, _], ||[_, _], ::[_, _], B, Cases]

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Single[**, ||, ::, B, Lbl, A]
class Snoc[**, ||, ::, B, Init, Lbl, Z, BInit]
Self type
DistRL[**, ||, ::, B, Cases]

Members list

Type members

Types

type Out

Value members

Abstract methods

def distributeOver[N, I](m: Member[||, ::, N, I, Cases])(using BiInjective[||], BiInjective[::]): Member[||, ::, N, I ** B, Out]
def dropNames[[_, _], Nil]: Exists[[X] =>> Exists[[Y] =>> (DropNames[||, ::, , Nil, Cases, X], Unnamed[**, , Nil, B, X] { type Out = Y; }, DropNames[||, ::, , Nil, Out, Y])]]

Concrete methods

def extend[Lbl <: String, Z](lbl: SingletonType[Lbl]): DistRL[**, ||, ::, B, Cases || (Lbl :: Z)] { type Out = Out || (Lbl :: (Z ** B)); }
def snoc[Z](lbl: String): DistRL[**, ||, ::, B, Cases || (lbl.type :: Z)] { type Out = Out || (lbl.type :: (Z ** B)); }