Snoc

libretto.lambda.DistributionNAry.DistF.Snoc
case class Snoc[F[_], Init, Lbl <: String, A, FInit](init: DistF[F, Init] { type Out = FInit; }, label: SingletonType[Lbl]) extends DistF[F, Init || (Lbl :: A)]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait DistF[F, Init || (Lbl :: A)]
class Object
trait Matchable
class Any
Show all

Members list

Type members

Types

override type Out = FInit || (Lbl :: F[A])

Value members

Concrete methods

override def fold[H[_[_], _, _]](caseSingle: [LblX <: String, X] => ((LblX :: X) =:= (Init || (Lbl :: A))) ?=> Single[F, LblX, X] => H[F, LblX :: X, LblX :: F[X]], caseSnoc: [I, LblX <: String, X, FI] => ((I || (LblX :: X)) =:= (Init || (Lbl :: A))) ?=> Snoc[F, I, LblX, X, FI] => H[F, I || (LblX :: X), FI || (LblX :: F[X])]): H[F, Init || (Lbl :: A), Out]

Attributes

Definition Classes
override def operationalize(f: Focus[**, F]): Operationalized[F, Init || (Lbl :: A)] { type Out = FInit || (Lbl :: F[A]); }

Attributes

Definition Classes

Inherited methods

def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product