sig
  type obs
  type t
  val create : unit -> t
  val compare : t -> t -> int
  val total_ord : t -> t -> int
  val add_alias : t -> t -> unit
  val do_normalize : t -> unit
  val add_observer : obs -> t -> unit
  val remove_observer : obs -> t -> unit
  val string_of : t -> string
  val reset : unit -> unit
  val get_all_ts : unit -> t list
  type img
  type elm
  val set_lower : LUVar.S.elm -> t -> unit
  val set_upper : LUVar.S.elm -> t -> unit
  val set_eq : LUVar.S.elm -> t -> unit
  val subset : t -> t -> unit
  val get_lower : t -> LUVar.S.elm option
  val get_upper : t -> LUVar.S.elm option
  val string_of_img : t -> string
  val get_exact : t -> LUVar.S.elm option
  val string_of_with_img : t -> string
end