Module type Alternative.WITH_PURE_AND_LIFT2

Minimal definition using neutral, combine, pure and lift2.

include Applicative.WITH_PURE_AND_LIFT2
type 'a t

The type held by the Applicative.

inline

include Indexed_applicative.WITH_PURE_AND_LIFT2 with type ('a, _) t := 'a t
include Indexed_applicative.WITH_PURE with type ('a, 'index) t := 'a t
val pure : 'a -> 'a t

Lift a value from 'a into a new t.

include Indexed_apply.WITH_LIFT2 with type ('a, 'index) t := 'a t
val lift2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t

Lift a binary function that acts on arbitrary values into a function that acts t values.

include WITH_NEUTRAL_AND_COMBINE with type 'a t := 'a t
val combine : 'a t -> 'a t -> 'a t

Combine two values of t into one.

val neutral : 'a t

The neutral element of the Alternative.