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