Preface_laws.Indexed_monad_plusmodule type LAWS_MONOID = sig ... endmodule type LAWS_LEFT_ABSORPTION = sig ... endmodule type LAWS_LEFT_DISTRIBUTIVITY = sig ... endmodule type LAWS_LEFT_CATCH = sig ... endmodule For_monoidal
(M : Preface_specs.INDEXED_MONAD_PLUS) :
LAWS_MONOID with type ('a, 'index) t := ('a, 'index) M.tmodule For_left_absorption
(M : Preface_specs.INDEXED_MONAD_PLUS) :
LAWS_LEFT_ABSORPTION with type ('a, 'index) t := ('a, 'index) M.tmodule For_left_distributivity
(M : Preface_specs.INDEXED_MONAD_PLUS) :
LAWS_LEFT_DISTRIBUTIVITY with type ('a, 'index) t := ('a, 'index) M.tmodule For_left_catch
(M : Preface_specs.INDEXED_MONAD_PLUS) :
LAWS_LEFT_CATCH with type ('a, 'index) t := ('a, 'index) M.t