module type Blob =
sig
+ (* Blob is the type for opaque leaves:
+ * - checking equlity should be efficient
+ * - atoms have to be equipped with a total order relation
+ *)
type t
val eq : t -> t -> bool
val compare : t -> t -> int
- val pp : t -> string
+ (* TODO: consider taking in input an imperative buffer for Format
+ * val pp : Format.formatter -> t -> unit
+ * *)
+ val pp : t -> string
end
module Utils (B : Blob) :
sig
+ val eq_foterm : B.t foterm -> B.t foterm -> bool
+ val compare_foterm : B.t foterm -> B.t foterm -> int
+
val eq_literal : B.t literal -> B.t literal -> bool
val compare_literal : B.t literal -> B.t literal -> int