sig
  type t
  val name : string
  val compare : t -> t -> int
  val pair : t -> t -> t
  val of_string : string -> t
  val to_string : t -> string
  val print : ?oc:out_channel -> t -> unit
  val print_ : ?oc:out_channel -> t -> unit
  val are_unifiable : t -> t -> bool
  val conform : t -> t -> t
  type x
  val of_x : Symbols.SYMBOL_TYPE.x -> t
  val to_x : t -> Symbols.SYMBOL_TYPE.x
  val blank : t
  val wild : t
end