Module Indexed_monad_plus.For_monoidal
Parameters
Signature
include Indexed_monad.LAWS with type ('a, 'index) t := ('a, 'index) M.t
include Indexed_bind.LAWS with type ('a, 'index) t := ('a, 'index) M.t
include Indexed_functor.LAWS with type ('a, 'index) t := ('a, 'index) M.t
val functor_1 : unit -> (('a, 'index) M.t, ('a, 'index) M.t) Law.t
val functor_2 :
unit ->
('a -> 'b, ('c -> 'a) -> ('c, 'index) M.t -> ('b, 'index) M.t) Law.t
val bind_1 :
unit ->
(((('a, 'index) M.t, 'index) M.t, 'index) M.t, ('a, 'index) M.t) Law.t
val bind_2 :
unit ->
('a -> 'b, (('a, 'index) M.t, 'index) M.t -> ('b, 'index) M.t) Law.t
val bind_3 :
unit ->
(('a, 'index) M.t,
('a -> ('b, 'index) M.t) ->
('b -> ('c, 'index) M.t) ->
('c, 'index) M.t)
Law.t
val bind_4 :
unit ->
('a ->
('b, 'index) M.t,
('b -> ('c, 'index) M.t) ->
('c -> ('d, 'index) M.t) ->
'a ->
('d, 'index) M.t)
Law.t
val monad_1 :
unit ->
(('a, 'index) M.t, ('a, 'index) M.t * ('a, 'index) M.t) Law.t
val monad_2 : unit -> ('a -> 'b, 'a -> ('b, 'index) M.t) Law.t
val monad_3 : unit -> ('a, ('a -> ('b, 'index) M.t) -> ('b, 'index) M.t) Law.t
val monad_4 : unit -> (('a, 'index) M.t, ('a, 'index) M.t) Law.t
val monad_5 : unit -> ('a, ('a -> ('b, 'index) M.t) -> ('b, 'index) M.t) Law.t
val monad_6 : unit -> ('a, ('a -> ('b, 'index) M.t) -> ('b, 'index) M.t) Law.t
val monad_plus_monoid_1 : unit -> (('a, 'index) M.t, ('a, 'index) M.t) Law.t
val monad_plus_monoid_2 : unit -> (('a, 'index) M.t, ('a, 'index) M.t) Law.t
val monad_plus_monoid_3 :
unit ->
(('a, 'index) M.t, ('a, 'index) M.t -> ('a, 'index) M.t -> ('a, 'index) M.t)
Law.t