preface

An opinionated library for function programming (à La Haskell)
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library preface.specs
Module type Preface_specs . Arrow_apply . CORE
type ('a, 'b) t

The type held by the Arrow_apply.

val apply : ( ( 'a, 'b ) t * 'a, 'b ) t

application of an arrow to an input.

include Category.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 fst : ( 'a, 'b ) t -> ( 'a * 'd, 'b * 'd ) t

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.

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

Split the input between the two given Arrows and combine their output.