Module Selective.For_rigid

Parameters

Signature

include Indexed_selective.LAWS_RIGID with type ('a, _) t := 'a S.t
include Indexed_selective.LAWS with type ('a, _) t := 'a S.t
include Indexed_applicative.LAWS with type ('a, 'index) t := 'a S.t
include Indexed_apply.LAWS with type ('a, 'index) t := 'a S.t
include Indexed_functor.LAWS with type ('a, 'index) t := 'a S.t
val functor_1 : unit -> ('a S.t, 'a S.t) Law.t
val functor_2 : unit -> ('a -> 'b, ('c -> 'a) -> 'c S.t -> 'b S.t) Law.t
val apply_1 : unit -> (unit S.t, 'a S.t -> 'a S.t) Law.t
val apply_2 : unit -> ('a S.t, unit S.t -> 'a S.t) Law.t
val applicative_1 : unit -> ('a S.t, 'a S.t) Law.t
val applicative_2 : unit -> ('a -> 'b, 'a -> 'b S.t) Law.t
val applicative_3 : unit -> (('a -> 'b) S.t, 'a -> 'b S.t) Law.t
val applicative_4 : unit -> (('a -> 'b) S.t, ('c -> 'a) S.t -> 'c S.t -> 'b S.t) Law.t
val applicative_5 : unit -> ('a -> 'b, 'a S.t -> 'b S.t) Law.t
val selective_1 : unit -> (('a, 'a) Stdlib.Either.t S.t, 'a S.t) Law.t
val selective_2 : unit -> (('a, 'b) Stdlib.Either.t, ('a -> 'b) S.t -> ('a -> 'b) S.t -> 'b S.t) Law.t
val selective_3 : unit -> (('a, 'b) Stdlib.Either.t S.t, ('c, 'a -> 'b) Stdlib.Either.t S.t -> ('c -> 'a -> 'b) S.t -> 'b S.t) Law.t
val selective_4 : unit -> ('a -> 'b, ('c, 'a) Stdlib.Either.t S.t -> ('c -> 'a) S.t -> 'b S.t) Law.t
val selective_5 : unit -> ('a -> 'b, ('a, 'c) Stdlib.Either.t S.t -> ('b -> 'c) S.t -> 'c S.t) Law.t
val selective_6 : unit -> ('a -> 'b -> 'c, ('b, 'c) Stdlib.Either.t S.t -> 'a S.t -> 'c S.t) Law.t
val selective_7 : unit -> (('a, 'b) Stdlib.Either.t S.t, ('a -> 'b) -> 'b S.t) Law.t
val selective_8 : unit -> (('a -> 'b) S.t, 'a S.t -> 'b S.t) Law.t
val selective_9 : unit -> ('a S.t, ('b, 'c) Stdlib.Either.t S.t -> ('b -> 'c) S.t -> 'c S.t) Law.t