sig
  type t
  module Mode :
    sig
      type t = Context | Internals | None
      val value : Context.Mode.t Pervasives.ref
      val set : Context.Mode.t -> ('-> 'b) -> '-> 'b
    end
  val pp : Context.t Pretty.printer
  val eq : Context.t -> Context.t -> bool
  val empty : Context.t
  val ctxt_of : Context.t -> Atom.t list
  val partition_of : Context.t -> Partition.t
  val eqs_of : Context.t -> Combine.E.t
  val config_of : Context.t -> Combine.E.t * Partition.t
  val upper_of : Context.t -> int
  module Status :
    sig
      type 'a t = Valid of Jst.t | Inconsistent of Jst.t | Ok of 'a
      val pp : 'Pretty.printer -> 'Context.Status.t Pretty.printer
    end
  val add : Context.t -> Atom.t -> Context.t Context.Status.t
  val statistics : bool Pervasives.ref
  val verbose : bool Pervasives.ref
  val coi_enabled : int Pervasives.ref
  val semantic_coi_min : int Pervasives.ref
  val syntactic_coi_min : int Pervasives.ref
  val addl : Context.t -> Atom.t list -> Context.t Context.Status.t
  val is_inconsistent : Context.t -> Atom.t list -> bool
  val is_valid : Context.t -> Atom.t list -> bool
  val check_sat : Context.t -> Context.t option
  val diff : Context.t -> Context.t -> Context.t
end