sig
  type 'a t = '-> '-> bool
  val poly : 'CCEqual.t
  val int : int CCEqual.t
  val string : string CCEqual.t
  val bool : bool CCEqual.t
  val float : float CCEqual.t
  val unit : unit CCEqual.t
  val list : 'CCEqual.t -> 'a list CCEqual.t
  val array : 'CCEqual.t -> 'a array CCEqual.t
  val option : 'CCEqual.t -> 'a option CCEqual.t
  val pair : 'CCEqual.t -> 'CCEqual.t -> ('a * 'b) CCEqual.t
  val triple :
    'CCEqual.t -> 'CCEqual.t -> 'CCEqual.t -> ('a * 'b * 'c) CCEqual.t
  val map : ('-> 'b) -> 'CCEqual.t -> 'CCEqual.t
  val ( >|= ) : 'CCEqual.t -> ('-> 'b) -> 'CCEqual.t
  module Infix :
    sig val ( >|= ) : 'CCEqual.t -> ('-> 'b) -> 'CCEqual.t end
end