SemigroupalCategory

libretto.lambda.SemigroupalCategory
trait SemigroupalCategory[->[_, _], |*|[_, _]] extends Category[->]

Attributes

Graph
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]
trait Hoisted[G, ->, |*|]
Show all

Members list

Value members

Abstract methods

def assocLR[A, B, C]: (A |*| B |*| C) -> (A |*| (B |*| C))
def assocRL[A, B, C]: (A |*| (B |*| C)) -> (A |*| B |*| C)
def par[A1, A2, B1, B2](f1: A1 -> B1, f2: A2 -> B2): (A1 |*| A2) -> (B1 |*| B2)

Concrete methods

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

Inherited and Abstract methods

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

Attributes

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

Attributes

Inherited from:
Category

Extensions

Extensions

extension [A, B](f: A -> B)
def at[F[_]](pos: Focus[|*|, F]): F[A] -> F[B]
def inFst[X]: (A |*| X) -> (B |*| X)
def inSnd[X]: (X |*| A) -> (X |*| B)

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