Arrow_choice.CORE
Basis operations.
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 Category.WITH_ID with type ('a, 'b) t := ('a, 'b) t
val id : ('a, 'a) t
The 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) t
Lift a function to an Arrow
.