Suite.Ftype ('a, 'index) t = ('a, 'index) R.tThe type held by the Indexed Selective.
select e f apply f if e is Left. It allow to skip effect using Right.
val branch :
(('a, 'b) Stdlib.Either.t, 'index) t ->
('a -> 'c, 'index) t ->
('b -> 'c, 'index) t ->
('c, 'index) tbranch is like select. It chooses between two effects.
include Preface_specs.Indexed_applicative.WITH_PURE
with type ('a, 'index) t := ('a, 'index) tinclude Preface_specs.Indexed_applicative.WITH_PURE
with type ('a, 'index) t := ('a, 'index) tinclude Preface_specs.Indexed_apply.WITH_MAP_AND_PRODUCT
with type ('a, 'index) t := ('a, 'index) tinclude Preface_specs.Indexed_functor.WITH_MAP
with type ('a, 'index) t := ('a, 'index) tinclude Preface_specs.Indexed_applicative.WITH_PURE
with type ('a, 'index) t := ('a, 'index) tval pure : 'a -> ('a, 'index) tLift a value from 'a into a new t.
val lift3 :
('a -> 'b -> 'c -> 'd) ->
('a, 'index) t ->
('b, 'index) t ->
('c, 'index) t ->
('d, 'index) tLift a ternary function that acts on arbitrary values into a function that acts t values.
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.
Same of branch but using a Boolean as disjunction.
Monad bind specialized for Boolean.
Conditionally perform an effect.
Selective version of List.exists.
Selective version of List.for_all.
Keep checking an effectful condition while it holds.
module Infix :
Preface_specs.Indexed_selective.INFIX
with type ('a, 'index) t := ('a, 'index) tApplicative functor of ('a -> 'b) t over ('a, 'index) t to ('b, 'index) t.
Flipped 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.
Flipped and infix version of OPERATION.replace.
Infix version of CORE.select.
module Syntax :
Preface_specs.Indexed_selective.SYNTAX
with type ('a, 'index) t := ('a, 'index) t