sig
  type ('a, 'b) t
  val equal :
    'Equal.equal -> 'Equal.equal -> ('a, 'b) Equal.S2.t Equal.equal
end