Module Arrow_plus.Infix_over_category

Parameters

module Core : Preface_specs.Arrow_plus.CORE with type ('a, 'b) t = ('a, 'b) Category.t
module Operation : Preface_specs.Arrow_plus.OPERATION with type ('a, 'b) t = ('a, 'b) Core.t

Signature

type ('a, 'b) t = ('a, 'b) Operation.t

The type held by the Arrow.

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

val (***) : ('a, 'b) t -> ('c, 'd) t -> ('a * 'c, 'b * 'd) t
val (&&&) : ('a, 'b) t -> ('a, 'c) t -> ('a, 'b * 'c) t
val (^>>) : ('a -> 'b) -> ('b, 'c) t -> ('a, 'c) t
val (>>^) : ('a, 'b) t -> ('b -> 'c) -> ('a, 'c) t
val (<<^) : ('b, 'c) t -> ('a -> 'b) -> ('a, 'c) t
val (^<<) : ('b -> 'c) -> ('a, 'b) t -> ('a, 'c) t
val (<|>) : ('a, 'b) t -> ('a, 'b) t -> ('a, 'b) t

Infix version of CORE.combine