InversiveMonoidalCategory

libretto.lambda.InversiveMonoidalCategory
trait InversiveMonoidalCategory[->[_, _], |*|[_, _], One, -[_]] extends InversiveSemigroupalCategory[->, |*|, -], SymmetricMonoidalCategory[->, |*|, One]

Attributes

Graph
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

Members list

Value members

Abstract methods

def backvert[A]: (A |*| -[A]) -> One
def forevert[A]: One -> (-[A] |*| A)

Concrete methods

override def contrapositive[A, B](f: A -> B): -[B] -> -[A]

Attributes

Definition Classes
override def die[A]: -[-[A]] -> A

Double inversion elimination.

Double inversion elimination.

Attributes

Definition Classes
override def dii[A]: A -> -[-[A]]

Double inversion introduction.

Double inversion introduction.

Attributes

Definition Classes
override def portLR[A, B, C](f: (A |*| B) -> C): A -> (-[B] |*| C)

Attributes

Definition Classes
override def portRL[A, B, C](f: A -> (B |*| C)): (A |*| -[B]) -> C

Attributes

Definition Classes

Inherited methods

override def curry[A, B, C](f: (A |*| B) -> C): A -> (-[B] |*| C)
def elimFst[A, X](f: X -> One): (X |*| A) -> A

Attributes

Inherited from:
MonoidalCategory
def elimSnd[A, X](f: X -> One): (A |*| X) -> A

Attributes

Inherited from:
MonoidalCategory
override def eval[A, B]: (-[A] |*| B |*| A) -> B
def fst[X, Y, Z](f: X -> Y): (X |*| Z) -> (Y |*| Z)

Attributes

Inherited from:
SemigroupalCategory
def hoist[G[_]](using Applicative[G]): SymmetricSemigroupalCategory[[a, b] =>> G[a -> b], |*|]

Attributes

Inherited from:
SymmetricSemigroupalCategory
def introFst[A, X](f: One -> X): A -> (X |*| A)

Attributes

Inherited from:
MonoidalCategory
def introSnd[A, X](f: One -> X): A -> (A |*| X)

Attributes

Inherited from:
MonoidalCategory
def ix[A, B, C]: (A |*| B |*| C) -> (A |*| C |*| B)

Attributes

Inherited from:
SymmetricSemigroupalCategory
def ixi[A, B, C, D]: (A |*| B |*| (C |*| D)) -> (A |*| C |*| (B |*| D))

Attributes

Inherited from:
SymmetricSemigroupalCategory
def snd[X, Y, Z](f: Y -> Z): (X |*| Y) -> (X |*| Z)

Attributes

Inherited from:
SemigroupalCategory
def uncurry[A, B, C](f: A -> (-[B] |*| C)): (A |*| B) -> C

Attributes

Inherited from:
ClosedSemigroupalCategory
def xi[A, B, C]: (A |*| (B |*| C)) -> (B |*| (A |*| C))

Attributes

Inherited from:
SymmetricSemigroupalCategory

Inherited and Abstract methods

def andThen[A, B, C](f: A -> B, g: B -> C): A -> C

Attributes

Inherited from:
Semigroupoid
def assocLR[A, B, C]: (A |*| B |*| C) -> (A |*| (B |*| C))

Attributes

Inherited from:
SemigroupalCategory
def assocRL[A, B, C]: (A |*| (B |*| C)) -> (A |*| B |*| C)

Attributes

Inherited from:
SemigroupalCategory
def elimFst[A]: (One |*| A) -> A

Attributes

Inherited from:
MonoidalCategory
def elimSnd[A]: (A |*| One) -> A

Attributes

Inherited from:
MonoidalCategory
def id[A]: A -> A

Attributes

Inherited from:
Category
def introFst[A]: A -> (One |*| A)

Attributes

Inherited from:
MonoidalCategory
def introSnd[A]: A -> (A |*| One)

Attributes

Inherited from:
MonoidalCategory
def par[A1, A2, B1, B2](f1: A1 -> B1, f2: A2 -> B2): (A1 |*| A2) -> (B1 |*| B2)

Attributes

Inherited from:
SemigroupalCategory
def swap[A, B]: (A |*| B) -> (B |*| A)

Attributes

Inherited from:
SymmetricSemigroupalCategory

Extensions

Inherited extensions

extension [A, B](f: A -> B)
def >[C](g: B -> C): A -> C

Attributes

Inherited from:
Semigroupoid
def from[Z](using Z =:= A): Z -> B

Attributes

Inherited from:
Semigroupoid
def to[C](using B =:= C): A -> C

Attributes

Inherited from:
Semigroupoid
extension [A, B](f: A -> B)
def at[F[_]](pos: Focus[|*|, F]): F[A] -> F[B]

Attributes

Inherited from:
SemigroupalCategory
def inFst[X]: (A |*| X) -> (B |*| X)

Attributes

Inherited from:
SemigroupalCategory
def inSnd[X]: (X |*| A) -> (X |*| B)

Attributes

Inherited from:
SemigroupalCategory