Module type Apply.WITH_MAP_AND_APPLY

Minimal interface using map and product.

type 'a t

The type held by the Apply.

include Indexed_functor.WITH_MAP with type ('a, 'index) t := 'a t
val map : ('a -> 'b) -> 'a t -> 'b t

Mapping over t from 'a to 'b.

include Indexed_apply.WITH_APPLY with type ('a, 'index) t := 'a t
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.