functor (X : SYMBOL_SEED->
  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 = X.t
    val of_x : x -> t
    val to_x : t -> x
    val blank : t
    val wild : t
  end