EnumModule

libretto.lambda.EnumModule
See theEnumModule companion trait
object EnumModule

Attributes

Companion
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
EnumModule.type

Members list

Type members

Types

type LeftAssociative[->[_, _], **[_, _], Enum[_], ||[_, _], ::[_, _]] = EnumModule[->, **, Enum, [c1, c2] =>> c2 || c1, ::]

Value members

Concrete methods

def fromBinarySums[->[_, _], **[_, _], ++[_, _], Enum[_], ||[_, _], ::[_, _]](inj: [Label, A, Cases] => Member[||, ::, Label, A, Cases] => ->[A, Enum[Cases]], peel: [Label, A, Cases] => DummyImplicit ?=> ->[Enum[||[::[Label, A], Cases]], ++[A, Enum[Cases]]], unpeel: [Label, A, Cases] => DummyImplicit ?=> ->[++[A, Enum[Cases]], Enum[||[::[Label, A], Cases]]], extract: [Label, A] => DummyImplicit ?=> ->[Enum[::[Label, A]], A])(using cat: SemigroupalCategory[->, **], cocat: CocartesianSemigroupalCategory[->, ++], distr: Distribution[->, **, ++], i: BiInjective[||], j: BiInjective[::]): EnumModule[->, **, Enum, ||, ::]