sig   val add : 'a Type.t -> 'a -> string -> unit   exception Name_already_exists of string   val add_once : 'a Type.t -> 'a -> string -> unit end