Module type Category.API

The complete interface of a Category.

Type

type ('a, 'b) t

The type held by the Category.

Functions

include WITH_ID with type ('a, 'b) t := ( 'a, 'b ) t
val id : ( 'a, 'a ) t

The identity morphism.

include Semigroupoid.WITH_COMPOSE with type ('a, 'b) t := ( 'a, 'b ) t
val compose : ( 'b, 'c ) t -> ( 'a, 'b ) t -> ( 'a, 'c ) t

Morphism composition (from right to left).

val compose_right_to_left : ( 'b, 'c ) t -> ( 'a, 'b ) t -> ( 'a, 'c ) t

An alias of CORE.compose.

val compose_left_to_right : ( 'a, 'b ) t -> ( 'b, 'c ) t -> ( 'a, 'c ) t

An alias of CORE.compose with flipped argument.

Infix operators

module Infix : INFIX with type ('a, 'b) t = ( 'a, 'b ) t
val (%) : ( 'b, 'c ) t -> ( 'a, 'b ) t -> ( 'a, 'c ) t

An alias of CORE.compose (to be iso with Preface_core).

val (<%) : ( 'b, 'c ) t -> ( 'a, 'b ) t -> ( 'a, 'c ) t

An alias of CORE.compose (to be iso with Preface_core).

val (%>) : ( 'a, 'b ) t -> ( 'b, 'c ) t -> ( 'a, 'c ) t

An alias of OPERATION.compose_left_to_right (to be iso with Preface_core).

val (<<<) : ( 'b, 'c ) t -> ( 'a, 'b ) t -> ( 'a, 'c ) t

An alias of CORE.compose (to be iso with Haskell's approach). Even <<< looks like <% (it is an alias for the same function), they differ in their priorities. OCaml documentation of operators priorities

val (>>>) : ( 'a, 'b ) t -> ( 'b, 'c ) t -> ( 'a, 'c ) t

An alias of CORE.compose_left_to_right (to be iso with Haskell's approach). Even >>> looks like %> (it is an alias for the same function), they differ in their priorities. OCaml documentation of operators priorities