preface.make
Selective.Operation
preface
preface.core
preface.specs
preface.stdlib
module Core : Preface_specs.Selective.CORE
type 'a t = 'a Core.t
The type held by the Selective.
Selective
include Preface_specs.Apply.OPERATION with type 'a t := 'a t
val lift : ('a -> 'b) -> 'a t -> 'b t
Mapping over from 'a to 'b over 'a t to 'b t.
'a
'b
'a t
'b t
val lift3 : ('a -> 'b -> 'c -> 'd) -> 'a t -> 'b t -> 'c t -> 'd t
Mapping over from 'a and 'b and 'c to 'd over 'a t and 'b t and 'c t to 'd t.
'c
'd
'c t
'd t
val replace : 'a -> 'b t -> 'a t
Create a new 'a t, replacing all values in the 'b t by given a value of 'a.
val void : 'a t -> unit t
Create a new unit t, replacing all values in the 'a t by unit.
unit t
unit
val if_ : bool t -> 'a t -> 'a t -> 'a t
Same of branch but using a Boolean as disjunction.
branch
Boolean
val bind_bool : bool t -> (bool -> 'a t) -> 'a t
Monad bind specialized for Boolean.
Monad
bind
val when_ : bool t -> unit t -> unit t
Conditionally perform an effect.
val exists : ('a -> bool t) -> 'a list -> bool t
Selective version of List.exists.
List.exists
val for_all : ('a -> bool t) -> 'a list -> bool t
Selective version of List.for_all.
List.for_all
val or_ : bool t -> bool t -> bool t
Or combinator.
val and_ : bool t -> bool t -> bool t
And combinator.
val while_ : bool t -> unit t
Keep checking an effectful condition while it holds.