Module Indexed_bind.For

Parameters

Signature

include Indexed_functor.LAWS with type ('a, 'index) t := ('a, 'index) B.t
val functor_1 : unit -> (('a, 'index) B.t, ('a, 'index) B.t) Law.t
val functor_2 : unit -> ('a -> 'b, ('c -> 'a) -> ('c, 'index) B.t -> ('b, 'index) B.t) Law.t
val bind_1 : unit -> (((('a, 'index) B.t, 'index) B.t, 'index) B.t, ('a, 'index) B.t) Law.t
val bind_2 : unit -> ('a -> 'b, (('a, 'index) B.t, 'index) B.t -> ('b, 'index) B.t) Law.t
val bind_3 : unit -> (('a, 'index) B.t, ('a -> ('b, 'index) B.t) -> ('b -> ('c, 'index) B.t) -> ('c, 'index) B.t) Law.t
val bind_4 : unit -> ('a -> ('b, 'index) B.t, ('b -> ('c, 'index) B.t) -> ('c -> ('d, 'index) B.t) -> 'a -> ('d, 'index) B.t) Law.t