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