Module Bind.For

Parameters

Signature

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