Module type Selective.LAWS
include Indexed_selective.LAWS with type ('a, _) t := 'a t
include Indexed_applicative.LAWS with type ('a, 'index) t := 'a t
val applicative_1 : unit -> ('a t, 'a t) Law.t
val applicative_2 : unit -> ('a -> 'b, 'a -> 'b t) Law.t
val applicative_3 : unit -> (('a -> 'b) t, 'a -> 'b t) Law.t
val applicative_4 : unit -> (('a -> 'b) t, ('c -> 'a) t -> 'c t -> 'b t) Law.t
val applicative_5 : unit -> ('a -> 'b, 'a t -> 'b t) Law.t
val selective_1 : unit -> (('a, 'a) Stdlib.Either.t t, 'a t) Law.t
val selective_2 :
unit ->
(('a, 'b) Stdlib.Either.t, ('a -> 'b) t -> ('a -> 'b) t -> 'b t) Law.t
val selective_3 :
unit ->
(('a, 'b) Stdlib.Either.t t,
('c, 'a -> 'b) Stdlib.Either.t t ->
('c -> 'a -> 'b) t ->
'b t)
Law.t
val selective_4 :
unit ->
('a -> 'b, ('c, 'a) Stdlib.Either.t t -> ('c -> 'a) t -> 'b t) Law.t
val selective_5 :
unit ->
('a -> 'b, ('a, 'c) Stdlib.Either.t t -> ('b -> 'c) t -> 'c t) Law.t
val selective_6 :
unit ->
('a -> 'b -> 'c, ('b, 'c) Stdlib.Either.t t -> 'a t -> 'c t) Law.t
val selective_7 :
unit ->
(('a, 'b) Stdlib.Either.t t, ('a -> 'b) -> 'b t) Law.t