Module type Monad_plus.LAWS_LEFT_DISTRIBUTIVITY

type 'a t
include Indexed_monad_plus.LAWS_LEFT_DISTRIBUTIVITY with type ('a, _) t := 'a t
include Indexed_monad.LAWS with type ('a, 'index) t := 'a t
include Indexed_bind.LAWS with type ('a, 'index) t := 'a t
include Indexed_functor.LAWS with type ('a, 'index) t := 'a t
val functor_1 : unit -> ('a t, 'a t) Law.t
val functor_2 : unit -> ('a -> 'b, ('c -> 'a) -> 'c t -> 'b t) Law.t
val bind_1 : unit -> ('a t t t, 'a t) Law.t
val bind_2 : unit -> ('a -> 'b, 'a t t -> 'b t) Law.t
val bind_3 : unit -> ('a t, ('a -> 'b t) -> ('b -> 'c t) -> 'c t) Law.t
val bind_4 : unit -> ('a -> 'b t, ('b -> 'c t) -> ('c -> 'd t) -> 'a -> 'd t) Law.t
val monad_1 : unit -> ('a t, 'a t * 'a t) Law.t
val monad_2 : unit -> ('a -> 'b, 'a -> 'b t) Law.t
val monad_3 : unit -> ('a, ('a -> 'b t) -> 'b t) Law.t
val monad_4 : unit -> ('a t, 'a t) Law.t
val monad_5 : unit -> ('a, ('a -> 'b t) -> 'b t) Law.t
val monad_6 : unit -> ('a, ('a -> 'b t) -> 'b t) Law.t
val monad_plus_left_distrib_1 : unit -> ('a t, 'a t -> ('a -> 'b t) -> 'b t) Law.t