Indexed_selective.Via
module Core : Preface_specs.Indexed_selective.CORE
module Operation :
Preface_specs.Indexed_selective.OPERATION
with type ('a, 'index) t = ('a, 'index) Core.t
module Infix :
Preface_specs.Indexed_selective.INFIX
with type ('a, 'index) t = ('a, 'index) Core.t
module Syntax :
Preface_specs.Indexed_selective.SYNTAX
with type ('a, 'index) t = ('a, 'index) Core.t
type ('a, 'index) t = ('a, 'index) Core.t
The 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) t
branch
is like select
. It chooses between two effects.
include Preface_specs.Indexed_applicative.WITH_PURE
with type ('a, 'index) t := ('a, 'index) t
include Preface_specs.Indexed_applicative.WITH_PURE
with type ('a, 'index) t := ('a, 'index) t
include Preface_specs.Indexed_apply.WITH_MAP_AND_PRODUCT
with type ('a, 'index) t := ('a, 'index) t
include Preface_specs.Indexed_functor.WITH_MAP
with type ('a, 'index) t := ('a, 'index) t
include Preface_specs.Indexed_applicative.WITH_PURE
with type ('a, 'index) t := ('a, 'index) t
val pure : 'a -> ('a, 'index) t
Lift 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) t
Lift 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) t
Applicative
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