Compare.Alt
A : Interface.ALT
E : Interface.EQ1 with type 'a t = 'a A.t
module I : sig ... end
val associativity : 'a A.t -> 'a A.t -> 'a A.t -> bool
val distributivity : ('a -> 'b) -> 'a A.t -> 'a A.t -> bool