Arrow_choice.Viamodule Core : Preface_specs.Arrow_choice.COREmodule Operation : Preface_specs.Arrow_choice.OPERATION with type ('a, 'b) t = ('a, 'b) Core.tmodule Alias : Preface_specs.Arrow_choice.ALIAS with type ('a, 'b) t = ('a, 'b) Operation.tmodule Infix : Preface_specs.Arrow_choice.INFIX with type ('a, 'b) t = ('a, 'b) Alias.ttype ('a, 'b) t = ('a, 'b) Infix.tThe type held by the Arrow_choice.
Feed marked inputs through the argument arrow, passing the rest through unchanged to the output.
Split the input between the two argument arrows, re-tagging and merging their outputs.
include Preface_specs.Category.WITH_ID with type ('a, 'b) t := ('a, 'b) tval id : ('a, 'a) tThe identity morphism.
Send the first component of the input through the argument Arrow, and copy the rest unchanged to the output.
val arrow : ('a -> 'b) -> ('a, 'b) tLift a function to an Arrow.
Split the input between the two given Arrows and combine their output.
An alias of CORE.compose with flipped argument.
val return : unit -> ('a, 'a) tRepresent the identity Arrow.
Send the second component of the input through the given Arrow, and copy the rest unchanged to the output.
Send the input to both argument arrows and combine their output.
Pre composition with a function (the function should be pure).
Post composition with a function (the function should be pure).
Reversed version of Preface_specs.Arrow.OPERATION.pre_compose_left_to_right.
Reversed version of Preface_specs.Arrow.OPERATION.post_compose_left_to_right.
The mirror image of left.
Split the input between the two argument arrows and merge their outputs.
module Infix :
Preface_specs.Arrow_choice.INFIX with type ('a, 'b) t := ('a, 'b) tAn alias of CORE.compose (to be iso with Preface_core).
An alias of CORE.compose (to be iso with Preface_core).
An alias of OPERATION.compose_left_to_right (to be iso with Preface_core).
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
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
Infix version of Preface_specs.Arrow.CORE.split.
Infix version of Preface_specs.Arrow.OPERATION.fan_out.
Infix version of Preface_specs.Arrow.OPERATION.pre_compose_left_to_right.
Infix version of Preface_specs.Arrow.OPERATION.post_compose_left_to_right.
Infix version of Preface_specs.Arrow.OPERATION.post_compose_right_to_left.
Infix version of Preface_specs.Arrow.OPERATION.post_compose_right_to_left.
Infix version of CORE.choose.