Module type Strong.LAWS

type ('a, 'b) t
val strong_1 : unit -> (('a, 'b) t, ('a * 'c, 'b * 'c) t) Law.t
val strong_2 : unit -> (('a, 'b) t, ('a * 'c, 'b) t) Law.t
val strong_3 : unit -> ('a -> 'b, ('c, 'd) t -> ('c * 'a, 'd * 'b) t) Law.t
val strong_4 : unit -> (('a, 'b) t, (('a * 'c) * 'd, ('b * 'c) * 'd) t) Law.t
val strong_5 : unit -> (('a, 'b) t, ('c * 'a, 'c * 'b) t) Law.t
val strong_6 : unit -> (('a, 'b) t, ('c * 'a, 'b) t) Law.t
val strong_7 : unit -> ('a -> 'b, ('c, 'd) t -> ('a * 'c, 'b * 'd) t) Law.t
val strong_8 : unit -> (('a, 'b) t, ('c * ('d * 'a), 'c * ('d * 'b)) t) Law.t