Module type Apply.CORE

Basis operations.

type 'a t

The type held by the Apply.

val map : ('a -> 'b) -> 'a t -> 'b t

Mapping over t from 'a to 'b.

val apply : ('a -> 'b) t -> 'a t -> 'b t

May apply a function wrapped into an t to a value also wrapped into an t.

val product : 'a t -> 'b t -> ('a * 'b) t

Monoidal product between two 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.