sig
  type 'a option_class
  type 'a option_record
  type options_file
  val create_options_file : string -> Cam_plug.Options.options_file
  val set_options_file : Cam_plug.Options.options_file -> string -> unit
  val prune_file : Cam_plug.Options.options_file -> unit
  val load : Cam_plug.Options.options_file -> unit
  val append : Cam_plug.Options.options_file -> string -> unit
  val save : Cam_plug.Options.options_file -> unit
  val save_with_help : Cam_plug.Options.options_file -> unit
  val define_option :
    Cam_plug.Options.options_file ->
    string list ->
    string ->
    'Cam_plug.Options.option_class ->
    '-> 'Cam_plug.Options.option_record
  val option_hook :
    'Cam_plug.Options.option_record -> (unit -> unit) -> unit
  val string_option : string Cam_plug.Options.option_class
  val color_option : string Cam_plug.Options.option_class
  val font_option : string Cam_plug.Options.option_class
  val int_option : int Cam_plug.Options.option_class
  val bool_option : bool Cam_plug.Options.option_class
  val float_option : float Cam_plug.Options.option_class
  val string2_option : (string * string) Cam_plug.Options.option_class
  val list_option :
    'Cam_plug.Options.option_class -> 'a list Cam_plug.Options.option_class
  val smalllist_option :
    'Cam_plug.Options.option_class -> 'a list Cam_plug.Options.option_class
  val sum_option : (string * 'a) list -> 'Cam_plug.Options.option_class
  val tuple2_option :
    'Cam_plug.Options.option_class * 'Cam_plug.Options.option_class ->
    ('a * 'b) Cam_plug.Options.option_class
  val tuple3_option :
    'Cam_plug.Options.option_class * 'Cam_plug.Options.option_class *
    'Cam_plug.Options.option_class ->
    ('a * 'b * 'c) Cam_plug.Options.option_class
  val ( !! ) : 'Cam_plug.Options.option_record -> 'a
  val ( =:= ) : 'Cam_plug.Options.option_record -> '-> unit
  val shortname : 'Cam_plug.Options.option_record -> string
  val get_help : 'Cam_plug.Options.option_record -> string
  val get_class :
    'Cam_plug.Options.option_record -> 'Cam_plug.Options.option_class
  val class_hook :
    'Cam_plug.Options.option_class ->
    ('Cam_plug.Options.option_record -> unit) -> unit
  type option_value =
      Module of Cam_plug.Options.option_module
    | StringValue of string
    | IntValue of int
    | FloatValue of float
    | List of Cam_plug.Options.option_value list
    | SmallList of Cam_plug.Options.option_value list
  and option_module = (string * Cam_plug.Options.option_value) list
  val define_option_class :
    string ->
    (Cam_plug.Options.option_value -> 'a) ->
    ('-> Cam_plug.Options.option_value) -> 'Cam_plug.Options.option_class
  val to_value :
    'Cam_plug.Options.option_class -> '-> Cam_plug.Options.option_value
  val from_value :
    'Cam_plug.Options.option_class -> Cam_plug.Options.option_value -> 'a
  val value_to_string : Cam_plug.Options.option_value -> string
  val string_to_value : string -> Cam_plug.Options.option_value
  val value_to_int : Cam_plug.Options.option_value -> int
  val int_to_value : int -> Cam_plug.Options.option_value
  val bool_of_string : string -> bool
  val value_to_bool : Cam_plug.Options.option_value -> bool
  val bool_to_value : bool -> Cam_plug.Options.option_value
  val value_to_float : Cam_plug.Options.option_value -> float
  val float_to_value : float -> Cam_plug.Options.option_value
  val value_to_string2 : Cam_plug.Options.option_value -> string * string
  val string2_to_value : string * string -> Cam_plug.Options.option_value
  val value_to_list :
    (Cam_plug.Options.option_value -> 'a) ->
    Cam_plug.Options.option_value -> 'a list
  val list_to_value :
    ('-> Cam_plug.Options.option_value) ->
    'a list -> Cam_plug.Options.option_value
  val smalllist_to_value :
    ('-> Cam_plug.Options.option_value) ->
    'a list -> Cam_plug.Options.option_value
  val set_simple_option :
    Cam_plug.Options.options_file -> string -> string -> unit
  val simple_options :
    Cam_plug.Options.options_file -> (string * string) list
  val get_simple_option : Cam_plug.Options.options_file -> string -> string
  val set_option_hook :
    Cam_plug.Options.options_file -> string -> (unit -> unit) -> unit
  val set_string_wrappers :
    'Cam_plug.Options.option_record ->
    ('-> string) -> (string -> 'a) -> unit
  val simple_args :
    Cam_plug.Options.options_file -> (string * Arg.spec * string) list
end