Module Applicative.For

Parameters

Signature

include Indexed_applicative.LAWS with type ('a, _) t := 'a A.t
include Indexed_apply.LAWS with type ('a, 'index) t := 'a A.t
include Indexed_functor.LAWS with type ('a, 'index) t := 'a A.t
val functor_1 : unit -> ('a A.t, 'a A.t) Law.t
val functor_2 : unit -> ('a -> 'b, ('c -> 'a) -> 'c A.t -> 'b A.t) Law.t
val apply_1 : unit -> (unit A.t, 'a A.t -> 'a A.t) Law.t
val apply_2 : unit -> ('a A.t, unit A.t -> 'a A.t) Law.t
val applicative_1 : unit -> ('a A.t, 'a A.t) Law.t
val applicative_2 : unit -> ('a -> 'b, 'a -> 'b A.t) Law.t
val applicative_3 : unit -> (('a -> 'b) A.t, 'a -> 'b A.t) Law.t
val applicative_4 : unit -> (('a -> 'b) A.t, ('c -> 'a) A.t -> 'c A.t -> 'b A.t) Law.t
val applicative_5 : unit -> ('a -> 'b, 'a A.t -> 'b A.t) Law.t