DistF

libretto.lambda.DistributionNAry.DistF
See theDistF companion trait
object DistF

Attributes

Companion
trait
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
DistF.type

Members list

Type members

Classlikes

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed trait Operationalized[F[_], Cases]

Like DistF, witnesses that distributing F into Cases yields Out. Unlike DistF, Operationalized is defined by induction over the structure of F (as opposed to by induction over Cases). As such, it can be more readily used to generate the distributing function F[OneOf[Cases]] -> OneOf[Out].

Like DistF, witnesses that distributing F into Cases yields Out. Unlike DistF, Operationalized is defined by induction over the structure of F (as opposed to by induction over Cases). As such, it can be more readily used to generate the distributing function F[OneOf[Cases]] -> OneOf[Out].

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class DistFst[A, F2, Cases, F2Cases, Res]
class DistSnd[F1, B, Cases, F1Cases, Res]
class Id[Cases]
Self type
Operationalized[F, Cases]
case class Single[F[_], Lbl <: String, A](label: SingletonType[Lbl]) extends DistF[F, Lbl :: A]

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait DistF[F, Lbl :: A]
class Object
trait Matchable
class Any
Show all
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

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

Inherited and Abstract types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Attributes

Inherited from:
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Attributes

Inherited from:
Mirror

Value members

Concrete methods

def intoCases[F[_], Cases](cases: Witness[||, ::, Cases]): DistF[F, Cases]