sig
  val register :
    string ->
    'Type.t ->
    ?comment:(Format.formatter -> unit) -> ?is_dyn:bool -> '-> 'a
  val never_write : string -> '-> 'a
  val prevent : ('-> 'b) -> '-> 'b
  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
end