sig   val register :     string ->     'Type.t ->     ?comment:(Format.formatter -> unit) -> ?is_dyn:bool -> '-> 'a   val never_write : string -> '-> 'a   val prevent : ('-> 'b) -> '-> 'b   module Binding :     sig       val add : 'Type.t -> '-> string -> unit       exception Name_already_exists of string       val add_once : 'Type.t -> '-> string -> unit     end   module Reverse_binding :     sig       exception Unbound_value of string       exception Incompatible_type of string       val fill : unit -> unit       val find : string -> 'Type.t -> 'a       val iter : (string -> 'Type.t -> '-> 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