Apply.Make
Functor building an implementation of APPLY
over a monad.
module M : Monad.MONAD
type 'a t = 'a M.t
ap fa fab
applies argument fa
to fab
under the abstract datatype t
.
ap_first second first
combines actions first
and second
but keeps only first
. That is, ap_first second first = first
. The order of arguments is for use in function pipelines as first = first |> ap_first second
.
ap_second second first
combines actions first
and second
but keeps only second
. That is, ap_second second first = second
. The order of arguments is for use in function pipelines as second = first |> ap_second second
.
seq2 fa1 fa2
sequentially executes actions fa1
and fa2
, and keeps their outputs under the abstract datatype t
.
seq3 fa1 fa2 fa3
sequentially executes actions fa1
, fa2
and fa3
, and keeps their outputs under the abstract datatype t
.
seq4 fa1 fa2 fa3 fa4
sequentially executes actions fa1
, fa2
, fa3
and fa4
, and keeps their outputs under the abstract datatype t
.
seq5 fa1 fa2 fa3 fa4 fa5
sequentially executes actions fa1
, fa2
, fa3
, fa4
and fa5
, and keeps their outputs under the abstract datatype t
.
lift2 f ma1 ma2
sequentially executes actions ma1
, ma2
and passes their outputs to f
.
lift3 f ma1 ma2 ma3
sequentially executes actions ma1
, ma2
, ma3
and passes their outputs to f
.
lift4 f ma1 ma2 ma3 ma4
sequentially executes actions ma1
, ma2
, ma3
, ma4
and passes their outputs to f
.