functor (Obs : OBSERVER->
  sig
    type obs = Obs.t
    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
    val add_img : img -> t -> unit
    val get_img : t -> img option
  end