sig   val register :     string ->     'a Type.t ->     ?comment:(Format.formatter -> unit) -> ?is_dyn:bool -> 'a -> 'a   val never_write : string -> 'a -> 'a   val prevent : ('a -> 'b) -> 'a -> 'b   module Binding :     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   module Reverse_binding :     sig       exception Unbound_value of string       exception Incompatible_type of string       val fill : unit -> unit       val find : string -> 'a Type.t -> 'a       val iter : (string -> 'a Type.t -> 'a -> unit) -> unit       val pretty : Format.formatter -> unit -> unit     end   val get_name : unit -> string   val set_name : string -> unit   val write : unit -> unit   val save : unit -> unit   val restore : unit -> unit   val keep_file : string -> unit   val get_session_file : (string -> string) Pervasives.ref end