Indexed_comonad.API
The complete interface of an Indexed Comonad
.
val extract : ('a, 'index) t -> 'a
Extract a 'a
from t
. Dual of return.
val compose_left_to_right :
(('a, 'index) t -> 'b) ->
(('b, 'index) t -> 'c) ->
('a, 'index) t ->
'c
Composing monadic functions using Co-Kleisli Arrow (from left to right).
Lift a binary function that acts on arbitrary values into a function that acts t
values.
val lift3 :
('a -> 'b -> 'c -> 'd) ->
('a, 'index) t ->
('b, 'index) t ->
('c, 'index) t ->
('d, 'index) t
Lift a ternary function that acts on arbitrary values into a function that acts t
values.
val compose_right_to_left :
(('b, 'index) t -> 'c) ->
(('a, 'index) t -> 'b) ->
('a, 'index) t ->
'c
Composing co-monadic functions using Co-Kleisli Arrow (from right to left).
Create a new t
, replacing all values of the given functor by given a value of 'a
.
Create a new t
, replacing all values in the given functor by unit
.
Infix flipped version of CORE.extend
.
Infix version of CORE.extend
.
Infix version of CORE.compose_left_to_right
.
Infix version of OPERATION.compose_right_to_left
.
Applicative functor of ('a -> 'b) t
over ('a, 'index) t
to ('b, 'index) t
.
Applicative functor of ('a -> 'b) t
over ('a, 'index) t
to ('b, 'index) t
.
Discard the value of the first argument.
Discard the value of the second argument.
Infix version of CORE.map
.
Flipped and infix version of CORE.map
.
Infix version of OPERATION.replace
.
Flipped and infix version of OPERATION.replace
.
Syntactic shortcuts for version of CORE.extend
:
let@ x = e in f
is equals to extend f e
.
include Indexed_functor.SYNTAX with type ('a, 'index) t := ('a, 'index) t