libretto.lambda

package libretto.lambda

Members list

Packages

Type members

Classlikes

sealed trait AForest[->[_, _], <*>[_, _], A, B]

A forest-like structured composition of arrows.

A forest-like structured composition of arrows.

For example,

   A               C
   |     <*>       |
   v               v
   B           D  <*>  (E <*> F)
                        |
                        v
                        G

is an AForest[->, <*>, A <*> C, B <*> (D <*> (G <*> F))]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Empty[->, <*>, A]
trait NonEmpty[->, <*>, A, B]
class Node[->, <*>, A, X, B]
class Par[->, <*>, A1, A2, B1, B2]
object AForest

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
AForest.type
trait ArrowMap[-->[_, _], ->>[_, _], F[_, _]]

Attributes

Supertypes
class Object
trait Matchable
class Any
sealed trait Bin[<*>[_, _], T[_], F[_], A]

Binary tree with leafs holding values of types F[X], F[Y], ... The complete structure of the tree is expressed by the type A, using the tags for branches and leafs.

Binary tree with leafs holding values of types F[X], F[Y], ... The complete structure of the tree is expressed by the type A, using the tags for branches and leafs.

Type parameters

<*>

tag for branches, as it appears in A

A

captures the complete structure of the tree

F

value type of leafs. Each leaf holds a value of type F[X], for some type X (but appears in A as T[X]).

T

tag for leafs, as it appears in A

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Branch[<*>, T, F, A, B]
class Leaf[<*>, T, F, A]
object Bin

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Bin.type
sealed trait Capture[**[_, _], F[_], A, B]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class NoCapture[**, F, A]
trait Proper[**, F, A, B]
class CaptureFst[**, F, A, B1, B2]
class CaptureSnd[**, F, A, B1, B2]
class InFst[**, F, A, B, Y]
class InSnd[**, F, X, A, B]
class Par[**, F, A1, A2, B1, B2]
Show all
object Capture

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Capture.type
sealed trait CapturingFun[-->[_, _], |*|[_, _], F[_], A, B]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Closure[-->, |*|, F, X, A, B]
class NoCapture[-->, |*|, F, A, B]
object CapturingFun

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
trait Category[->[_, _]] extends Semigroupoid[->]

Attributes

Supertypes
trait Semigroupoid[->]
class Object
trait Matchable
class Any
Known subtypes
trait SemigroupalCategory[->, |*|]
trait ClosedSemigroupalCategory[->, |*|, -->]
trait ClosedSymmetricMonoidalCategory[-⚬, |*|, One, =⚬]
trait InversiveSemigroupalCategory[->, |*|, -]
trait InversiveMonoidalCategory[->, |*|, One, -]
trait MonoidalCategory[->, |*|, One]
trait SymmetricMonoidalCategory[->, |*|, One]
Show all
trait ClosedSemigroupalCategory[->[_, _], |*|[_, _], -->[_, _]] extends SemigroupalCategory[->, |*|]

Attributes

Supertypes
trait SemigroupalCategory[->, |*|]
trait Category[->]
trait Semigroupoid[->]
class Object
trait Matchable
class Any
Show all
Known subtypes
trait ClosedSymmetricMonoidalCategory[-⚬, |*|, One, =⚬]
trait InversiveSemigroupalCategory[->, |*|, -]
trait InversiveMonoidalCategory[->, |*|, One, -]
trait ClosedSymmetricMonoidalCategory[-⚬[_, _], |*|[_, _], One, =⚬[_, _]] extends ClosedSymmetricSemigroupalCategory[-⚬, |*|, =⚬], SymmetricMonoidalCategory[-⚬, |*|, One]

Attributes

Supertypes
trait SymmetricMonoidalCategory[-⚬, |*|, One]
trait MonoidalCategory[-⚬, |*|, One]
trait ClosedSymmetricSemigroupalCategory[-⚬, |*|, =⚬]
trait SymmetricSemigroupalCategory[-⚬, |*|]
trait ClosedSemigroupalCategory[-⚬, |*|, =⚬]
trait SemigroupalCategory[-⚬, |*|]
trait Category[-⚬]
trait Semigroupoid[-⚬]
class Object
trait Matchable
class Any
Show all
trait ClosedSymmetricSemigroupalCategory[->[_, _], |*|[_, _], -->[_, _]] extends ClosedSemigroupalCategory[->, |*|, -->], SymmetricSemigroupalCategory[->, |*|]

Attributes

Supertypes
trait ClosedSemigroupalCategory[->, |*|, -->]
trait SemigroupalCategory[->, |*|]
trait Category[->]
trait Semigroupoid[->]
class Object
trait Matchable
class Any
Show all
Known subtypes
trait ClosedSymmetricMonoidalCategory[-⚬, |*|, One, =⚬]
trait InversiveSemigroupalCategory[->, |*|, -]
trait InversiveMonoidalCategory[->, |*|, One, -]
trait CocartesianNAryCategory[->[_, _], Sum[_], ||[_, _], ::[_, _]]

Category with n-ary coproducts.

Category with n-ary coproducts.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
trait CocartesianSemigroupalCategory[->[_, _], <+>[_, _]] extends SemigroupalCategory[->, <+>]

A semigroupal category (i.e. monoidal without a unit object) with coproduct as the tensor (product).

A semigroupal category (i.e. monoidal without a unit object) with coproduct as the tensor (product).

Attributes

Supertypes
trait SemigroupalCategory[->, <+>]
trait Category[->]
trait Semigroupoid[->]
class Object
trait Matchable
class Any
Show all
class ContextImpl[-⚬[_, _], |*|[_, _], V, C, Expr[_]](val info: C, resultVar: [A] => Expr[A] => Var[V, A], parent: Option[ContextImpl[-⚬, |*|, V, C, Expr]])

Attributes

Supertypes
class Object
trait Matchable
class Any
class CoproductPartitioning[->[_, _], **[_, _], ++[_, _]](lName: String, rName: String)(using cat: SemigroupalCategory[->, **], cocat: CocartesianSemigroupalCategory[->, ++], distribution: Distribution[->, **, ++], inj: BiInjective[++])

Attributes

Supertypes
class Object
trait Matchable
class Any
trait Distribution[->[_, _], **[_, _], ++[_, _]]

Attributes

Supertypes
class Object
trait Matchable
class Any
trait DistributionNAry[->[_, _], **[_, _], Enum[_], ||[_, _], ::[_, _]]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
sealed trait DropNames[||[_, _], ::[_, _], [_, _], Nil, A, B]

Witnesses that field names are removed from

Witnesses that field names are removed from

A = name1 :: A1 || ... || nameN :: An

(and field separator changed from || to ), we obtain

B = Nil ∙ B1 ∙ ... ∙ Bn

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Single[||, ::, , Nil, NameA, A]
class Snoc[||, ::, , Nil, Init, NameT, T, Init0]
object DropNames

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
DropNames.type
trait EnumModule[->[_, _], **[_, _], Enum[_], ||[_, _], ::[_, _]]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
object EnumModule

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
EnumModule.type
trait Extractor[->[_, _], <*>[_, _], T, P]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Via[->, <*>, T, P]
object Extractor

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
Extractor.type
sealed trait Focus[|*|[_, _], F[_]]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Id[|*|]
trait Proper[|*|, F]
class Fst[|*|, F, B]
class Snd[|*|, F, A]
object Focus

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Focus.type
trait InversiveMonoidalCategory[->[_, _], |*|[_, _], One, -[_]] extends InversiveSemigroupalCategory[->, |*|, -], SymmetricMonoidalCategory[->, |*|, One]

Attributes

Supertypes
trait SymmetricMonoidalCategory[->, |*|, One]
trait MonoidalCategory[->, |*|, One]
trait InversiveSemigroupalCategory[->, |*|, -]
trait ClosedSymmetricSemigroupalCategory[->, |*|, [x, y] =>> -[x] |*| y]
trait ClosedSemigroupalCategory[->, |*|, [x, y] =>> -[x] |*| y]
trait SemigroupalCategory[->, |*|]
trait Category[->]
trait Semigroupoid[->]
class Object
trait Matchable
class Any
Show all
trait InversiveSemigroupalCategory[->[_, _], |*|[_, _], -[_]] extends ClosedSymmetricSemigroupalCategory[->, |*|, [x, y] =>> -[x] |*| y]

Attributes

Supertypes
trait ClosedSymmetricSemigroupalCategory[->, |*|, [x, y] =>> -[x] |*| y]
trait ClosedSemigroupalCategory[->, |*|, [x, y] =>> -[x] |*| y]
trait SemigroupalCategory[->, |*|]
trait Category[->]
trait Semigroupoid[->]
class Object
trait Matchable
class Any
Show all
Known subtypes
trait InversiveMonoidalCategory[->, |*|, One, -]
sealed trait ItemList[||[_, _], ::[_, _], Items]

Witnesses that Items is a list of name :: type pairs, i.e. that Items is of the form (Name1 :: T1) || ... || (NameN :: TN).

Witnesses that Items is a list of name :: type pairs, i.e. that Items is of the form (Name1 :: T1) || ... || (NameN :: TN).

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Single[||, ::, Lbl, A]
class Snoc[||, ::, Init, Lbl, A]
object ItemList

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
ItemList.type
sealed trait Knit[**[_, _], F[_]]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class InFst[**, F, B]
class InFstImpl[**, F, B, A]
class InSnd[**, A, G]
class InSndImpl[**, A, G, B]
class KeepFst[**, A]
class KeepSnd[**, B]
Show all
object Knit

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
Knit.type
object Knitted

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Knitted.type
trait Lambdas[->[_, _], **[_, _], V, C]

Type parameters

C

information associated with lambda contexts (scopes)

V

information associated with variables

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class LambdasImpl[->, **, V, C, SHUFFLED]
object Lambdas

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
Lambdas.type
opaque class LambdasImpl[->[_, _], **[_, _], V, C, SHUFFLED <: Shuffled[->, **]](val shuffled: SHUFFLED, universalSplit: Option[[X] => Unit => X -> (X ** X)], universalDiscard: Option[[X, Y] => Unit => (X ** Y) -> Y])(using inj: BiInjective[**]) extends Lambdas[->, **, V, C]

Attributes

Supertypes
trait Lambdas[->, **, V, C]
class Object
trait Matchable
class Any
trait MappedMorphism[->>[_, _], F[_, _], A, B]

Image of some morphism A -> B in the target category ->>.

Image of some morphism A -> B in the target category ->>.

Type parameters

->>

target category

A

source of the original morphism in the source category

B

target of the original morphism in the source category

F

mapping of objects. F[A, X] is evidence that object A of the source category is mapped to object X of the target category.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
sealed trait Member[||[_, _], ::[_, _], Label, A, Cases]

Witnesses that Label :: A is one of Cases, where Cases is of the form (lbl1 :: A1) || (lbl2 :: A2) || ... (where || associates to the left).

Witnesses that Label :: A is one of Cases, where Cases is of the form (lbl1 :: A1) || (lbl2 :: A2) || ... (where || associates to the left).

Similar to TupleElem, but for named members. Unlike TupleElem, Member does not need a special "Nil" type to mark the end of the members list: there is no ambiguity in Enum["foo" :: (Bar || Baz)] — it is unambiguously a single-member Enum.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class InInit[||, ::, Label, A, Init, BLbl, B]
class InLast[||, ::, Init, Label, A]
class Single[||, ::, Label, A]
object Member

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Member.type
trait MonoidalCategory[->[_, _], |*|[_, _], One] extends SemigroupalCategory[->, |*|]

Attributes

Supertypes
trait SemigroupalCategory[->, |*|]
trait Category[->]
trait Semigroupoid[->]
class Object
trait Matchable
class Any
Show all
Known subtypes
trait SymmetricMonoidalCategory[->, |*|, One]
trait ClosedSymmetricMonoidalCategory[-⚬, |*|, One, =⚬]
trait InversiveMonoidalCategory[->, |*|, One, -]
trait MonoidalObjectMap[F[_, _], |*|[_, _], One, <*>[_, _], Unit] extends SemigroupalObjectMap[|*|, <*>, F]

Attributes

Supertypes
trait SemigroupalObjectMap[|*|, <*>, F]
trait Functional[F]
trait PairwiseRel[|*|, <*>, F]
class Object
trait Matchable
class Any
Show all
trait NarrowCategory[->[_, _], Obj[_]] extends Semigroupoid[->]

A category on a subset of Scala types.

A category on a subset of Scala types.

Type parameters

->

morphism of the category

Obj

witnesses that a Scala type is an object of the category.

Attributes

Supertypes
trait Semigroupoid[->]
class Object
trait Matchable
class Any
trait PairwiseRel[|*|[_, _], <*>[_, _], F[_, _]]

Type parameters

<*>

monoidal product in the target "category"

F

relation on objects. f: F[A, X] means that object A of the source "category" is related to object X in the target "category".

|*|

monoidal product in the source "category"

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait SemigroupalObjectMap[|*|, <*>, F]
trait MonoidalObjectMap[F, |*|, One, <*>, Unit]
trait ParN[[_, _], Nil, ->[_, _], A, B]

An n-ary tuple of arrows Ai -> Bi, where A = Nil ∙ A1 ∙ ... ∙ An, B = Nil ∙ B1 ∙ ... ∙ Bn, where associates to the left.

An n-ary tuple of arrows Ai -> Bi, where A = Nil ∙ A1 ∙ ... ∙ An, B = Nil ∙ B1 ∙ ... ∙ Bn, where associates to the left.

An arrowized version of TupleN.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Single[, Nil, ->, A, B]
class Snoc[, Nil, ->, A1, A2, B1, B2]
object ParN

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
ParN.type
trait Partitioning[->[_, _], <*>[_, _], T]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Self type
Partitioning[->, <*>, T]
object Partitioning

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
class PatternMatching[->[_, _], **[_, _]](using x$1: SymmetricSemigroupalCategory[->, **], x$2: BiInjective[**])

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
sealed trait Projection[|*|[_, _], P, Q]

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Id[|*|, P]
trait Proper[|*|, P, Q]
class DiscardFst[|*|, A, B, B0]
class DiscardSnd[|*|, A, B, A0]
trait Par[|*|, P1, P2, Q1, Q2]
class Both[|*|, P1, P2, Q1, Q2]
class Fst[|*|, P, Q, B]
class Snd[|*|, A, P, Q]
Show all
object Projection

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Projection.type
trait SemigroupalCategory[->[_, _], |*|[_, _]] extends Category[->]

Attributes

Supertypes
trait Category[->]
trait Semigroupoid[->]
class Object
trait Matchable
class Any
Known subtypes
trait ClosedSemigroupalCategory[->, |*|, -->]
trait ClosedSymmetricMonoidalCategory[-⚬, |*|, One, =⚬]
trait InversiveSemigroupalCategory[->, |*|, -]
trait InversiveMonoidalCategory[->, |*|, One, -]
trait MonoidalCategory[->, |*|, One]
trait SymmetricMonoidalCategory[->, |*|, One]
Show all
trait SemigroupalObjectMap[|*|[_, _], <*>[_, _], F[_, _]] extends PairwiseRel[|*|, <*>, F], Functional[F]

Attributes

Supertypes
trait Functional[F]
trait PairwiseRel[|*|, <*>, F]
class Object
trait Matchable
class Any
Known subtypes
trait MonoidalObjectMap[F, |*|, One, <*>, Unit]
trait Semigroupoid[->[_, _]]

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Category[->]
trait SemigroupalCategory[->, |*|]
trait ClosedSemigroupalCategory[->, |*|, -->]
trait ClosedSymmetricMonoidalCategory[-⚬, |*|, One, =⚬]
trait InversiveSemigroupalCategory[->, |*|, -]
trait InversiveMonoidalCategory[->, |*|, One, -]
trait MonoidalCategory[->, |*|, One]
trait SymmetricMonoidalCategory[->, |*|, One]
trait NarrowCategory[->, Obj]
Show all
class Shuffle[|*|[_, _]](using inj: BiInjective[|*|])

Attributes

Supertypes
class Object
trait Matchable
class Any
object Shuffled

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Shuffled.type
sealed abstract class Shuffled[->[_, _], |*|[_, _]](using x$1: BiInjective[|*|])

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
sealed trait Sink[-->[_, _], <+>[_, _], A, B]

A collection of arrows of the form Ai --> B, where A is composed of Ais via binary sums <+>, e.g. A = A1 <+> ((A2 <+> A3) <+> A4).

A collection of arrows of the form Ai --> B, where A is composed of Ais via binary sums <+>, e.g. A = A1 <+> ((A2 <+> A3) <+> A4).

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Arrow[-->, <+>, A, B]
class Join[-->, <+>, A1, A2, B]
object Sink

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Sink.type
trait SinkNAry[->[_, _], ||[_, _], Nil, A, B]

A collection of arrows Ai -> B, where A = Nil || A1 || A2 || ... || An, where || associates to the left.

A collection of arrows Ai -> B, where A = Nil || A1 || A2 || ... || An, where || associates to the left.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Single[->, ||, Nil, A, B]
class Snoc[->, ||, Nil, Init, Z, B]
object SinkNAry

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
SinkNAry.type
sealed trait SinkNAryNamed[->[_, _], ||[_, _], ::[_, _], A, B]

A collection of arrows Ai -> B, where A = name1 :: A1 || name2 :: A2 || ... || name_n :: An, where || associates to the left.

A collection of arrows Ai -> B, where A = name1 :: A1 || name2 :: A2 || ... || name_n :: An, where || associates to the left.

Attributes

Supertypes
class Object
trait Matchable
class Any
trait SourceNAry[->[_, _], ||[_, _], Nil, A, B]

A collection of arrows A -> Bi, where B = Nil || B1 || B2 || ... || Bn, where || associates to the left.

A collection of arrows A -> Bi, where B = Nil || B1 || B2 || ... || Bn, where || associates to the left.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Single[->, ||, Nil, A, B]
class Snoc[->, ||, Nil, A, Init, Z]
object SourceNAry

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
SourceNAry.type
sealed trait Spine[**[_, _], G[_], F[_]]

Nested tuples with a hole.

Nested tuples with a hole.

For example, a structure

(G[A], (G[B], (◯, G[C])))

where ◯ is the hole, can be represented as

Spine[Tuple2, G, F] where F[X] = (A, (B, (X, C)))

Like Focus, a Spine defines a path into a tupled structure, but Spine also contains data along the path.

Type parameters

**

the tuple type constructor

F

context of the hole

G

tuple elements ("garnish" hanging from the spine)

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Fst[|*|, G, F, B]
class Id[|*|, G]
class Snd[|*|, G, F, A]
object Spine

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Spine.type
trait StrongZippable[|*|[_, _], F[_]] extends Zippable[|*|, F], Unzippable[|*|, F]

Attributes

Supertypes
trait Unzippable[|*|, F]
trait Zippable[|*|, F]
class Object
trait Matchable
class Any
trait SymmetricMonoidalCategory[->[_, _], |*|[_, _], One] extends SymmetricSemigroupalCategory[->, |*|], MonoidalCategory[->, |*|, One]

Attributes

Supertypes
trait MonoidalCategory[->, |*|, One]
trait SemigroupalCategory[->, |*|]
trait Category[->]
trait Semigroupoid[->]
class Object
trait Matchable
class Any
Show all
Known subtypes
trait ClosedSymmetricMonoidalCategory[-⚬, |*|, One, =⚬]
trait InversiveMonoidalCategory[->, |*|, One, -]
trait SymmetricSemigroupalCategory[->[_, _], |*|[_, _]] extends SemigroupalCategory[->, |*|]

Attributes

Supertypes
trait SemigroupalCategory[->, |*|]
trait Category[->]
trait Semigroupoid[->]
class Object
trait Matchable
class Any
Show all
Known subtypes
trait ClosedSymmetricMonoidalCategory[-⚬, |*|, One, =⚬]
trait InversiveSemigroupalCategory[->, |*|, -]
trait InversiveMonoidalCategory[->, |*|, One, -]
trait SymmetricMonoidalCategory[->, |*|, One]
sealed trait TupleElem[||[_, _], Nil, A, As]

Witnesses that A is one of As, where As is of the form Nil || A1 || A2 || ... (where || associates to the left).

Witnesses that A is one of As, where As is of the form Nil || A1 || A2 || ... (where || associates to the left).

Unlike Member, TupleElem is for unnamed tuples.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class InInit[||, Nil, A, Init, Z]
class Last[||, Nil, Init, Z]
object TupleElem

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
TupleElem.type
sealed trait TupleN[[_, _], Nil, F[_], A]

An n-ary tuple of values F[Ai], where A = Nil ∙ A1 ∙ ... ∙ An where associates to the left.

An n-ary tuple of values F[Ai], where A = Nil ∙ A1 ∙ ... ∙ An where associates to the left.

Unlike Bin, which is an arbitrarily nested binary tree, the shape of nesting in TupleN is prescribed to be always associated to the left and is conceptually used to represent flat n-ary tuples.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Single[, Nil, F, A]
class Snoc[, Nil, F, Init, Last]
object TupleN

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
TupleN.type
object Tupled

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Tupled.type
object UnhandledCase

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
class UnhandledCase(desc: String, pos: SourcePos) extends Exception

Attributes

Companion
object
Supertypes
class Exception
class Throwable
trait Serializable
class Object
trait Matchable
class Any
Show all
trait Unzippable[|*|[_, _], F[_]]

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait StrongZippable[|*|, F]
class Var[P, A]

Value parameters

P

representation of variable's origin (e.g. source code position)

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
opaque object Var

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Var.type
trait Zippable[|*|[_, _], F[_]]

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait StrongZippable[|*|, F]
Self type
Zippable[|*|, F]

Types

type Knitted[**[_, _], F[_], F0] = Knit[**, F] { type Res = F0; }
opaque type Tupled[|*|[_, _], F[_], A]