Snoc

libretto.lambda.ParN.Snoc
case class Snoc[[_, _], Nil, ->[_, _], A1, A2, B1, B2](init: ParN[, Nil, ->, A1, B1], last: A2 -> B2) extends ParN[, Nil, ->, A1 A2, B1 B2]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait ParN[, Nil, ->, A1 A2, B1 B2]
class Object
trait Matchable
class Any
Show all

Members list

Type members

Inherited types

type ZippedWithIndex[X, Y] = (X -> Y, Member[, Nil, X, A1 A2], Member[, Nil, Y, B1 B2])

Attributes

Inherited from:
ParN

Value members

Concrete methods

override def divide[F[_, _], G[_, _]](h: [X, Y] => (X -> Y) => Exists[[Q] =>> (F[X, Q], G[Q, Y])]): Exists[[Q] =>> (ParN[, Nil, F, A1 A2, Q], ParN[, Nil, G, Q, B1 B2])]

Attributes

Definition Classes
override def flip: ParN[, Nil, [x, y] =>> y -> x, B1 B2, A1 A2]

Attributes

Definition Classes
override def foldCrush[T](crush: [X, Y] => (X -> Y) => T, reduce: (T, T) => T): T

Attributes

Definition Classes
override def foldL[G[_, _]](first: [x, y] => (x -> y) => G[Nil x, Nil y], snoc: [x1, x2, y1, y2] => (x$1: G[x1, y1], x$2: x2 -> y2) => G[x1 x2, y1 y2]): G[A1 A2, B1 B2]

Attributes

Definition Classes
override def inputProjection[F[_]](f: [X, Y] => (X -> Y) => F[X]): Product[, Nil, F, A1 A2]

Attributes

Definition Classes
override def nonEmpty[R](f: [a1, a2, b1, b2] => (x$1: (A1 A2) =:= (a1 a2), x$2: (B1 B2) =:= (b1 b2)) ?=> R): R

Attributes

Definition Classes
override def nonEmptyIn(pairIsNotNil: [x, y] => ((x y) =:= Nil) => Nothing): ((A1 A2) =:= Nil) => Nothing

Attributes

Definition Classes
override def nonEmptyOut(pairIsNotNil: [x, y] => ((x y) =:= Nil) => Nothing): ((B1 B2) =:= Nil) => Nothing

Attributes

Definition Classes
override def outputProjection[G[_]](g: [X, Y] => (X -> Y) => G[Y]): Product[, Nil, G, B1 B2]

Attributes

Definition Classes
override def size: Int

Attributes

Definition Classes
override def translate[->>[_, _]](f: [X, Y] => (X -> Y) => ->>[X, Y]): ParN[, Nil, ->>, A1 A2, B1 B2]

Attributes

Definition Classes
override def zipWithIndex: ParN[, Nil, [x, y] =>> (x -> y, Member[, Nil, x, A1 A2], Member[, Nil, y, B1 B2]), A1 A2, B1 B2]

Attributes

Definition Classes

Inherited methods

def divide3[F[_, _], G[_, _], H[_, _]](h: [X, Y] => (X -> Y) => Exists[[P] =>> Exists[[Q] =>> (F[X, P], G[P, Q], H[Q, Y])]]): Exists[[P] =>> Exists[[Q] =>> (ParN[, Nil, F, A1 A2, P], ParN[, Nil, G, P, Q], ParN[, Nil, H, Q, B1 B2])]]

Attributes

Inherited from:
ParN
def exists(pred: [X, Y] => (X -> Y) => Boolean): Boolean

Attributes

Inherited from:
ParN
def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product
def toList[T](f: [X, Y] => (X -> Y) => T): List[T]

Attributes

Inherited from:
ParN
def [C, D](f: C -> D): ParN[, Nil, ->, A1 A2 C, B1 B2 D]

Attributes

Inherited from:
ParN