Preface_specs.Arrow_apply
An Arrow_apply
is an Arrow
with application capabilities. An Arrow_apply
is also Arrow
.
To have a predictable behaviour, the instance of Arrow_apply
must obey some laws.
Arrow
lawsfst (arrow (fun x -> arrow (fun y -> (x,y)))) >>> apply = id
fst (arrow (fun x -> g >>> x)) >>> apply = snd g >>> apply
fst (arrow (fun x -> x >>> h)) >>> apply = apply >>> h
module type WITH_APPLY = sig ... end
Minimal definition using apply
operation, without Arrow
.
module type WITH_ARROW_AND_FST = sig ... end
Minimal definition using arrow
and fst
and apply
.
module type WITH_ARROW_AND_SPLIT = sig ... end
Minimal definition using arrow
and fst
and apply
.
module type CORE = sig ... end
Basis operations.
module type OPERATION = Arrow.OPERATION
Additional operations.
module type ALIAS = Arrow.ALIAS
Aliases of some operations functions.
module type INFIX = Arrow.INFIX
Infix operators.
module type API = sig ... end
The complete interface of an Arrow_apply
.