sig
  type rc_value =
      RCint of int
    | RCbool of bool
    | RCfloat of float
    | RCstring of string * bool
    | RCident of string
  exception ExtraParameters of string
  exception MissingParameters of string
  exception UnknownField of string
  exception MissingField of string
  exception DuplicateSection of string
  exception DuplicateField of string * Rc.rc_value * Rc.rc_value
  exception StringExpected of string * Rc.rc_value
  exception IntExpected of string * Rc.rc_value
  exception BoolExpected of string * Rc.rc_value
  val warn_missing_field : Loc.warning_id
  type t
  type section
  type family = (string * Rc.section) list
  type simple_family = Rc.section list
  val empty : Rc.t
  val empty_section : Rc.section
  val get_section : Rc.t -> string -> Rc.section option
  val get_family : Rc.t -> string -> Rc.family
  val get_simple_family : Rc.t -> string -> Rc.simple_family
  val set_section : Rc.t -> string -> Rc.section -> Rc.t
  val set_family : Rc.t -> string -> Rc.family -> Rc.t
  val set_simple_family : Rc.t -> string -> Rc.simple_family -> Rc.t
  val get_float : ?default:float -> Rc.section -> string -> float
  val set_float :
    ?default:float -> Rc.section -> string -> float -> Rc.section
  val get_int : ?default:int -> Rc.section -> string -> int
  val get_into : Rc.section -> string -> int option
  val get_intl : Rc.section -> string -> int list
  val set_int : ?default:int -> Rc.section -> string -> int -> Rc.section
  val set_intl : Rc.section -> string -> int list -> Rc.section
  val set_into : Rc.section -> string -> int option -> Rc.section
  val get_bool : ?default:bool -> Rc.section -> string -> bool
  val get_booll : Rc.section -> string -> bool list
  val get_boolo : Rc.section -> string -> bool option
  val set_bool : ?default:bool -> Rc.section -> string -> bool -> Rc.section
  val set_booll : Rc.section -> string -> bool list -> Rc.section
  val set_boolo : Rc.section -> string -> bool option -> Rc.section
  val get_string : ?default:string -> Rc.section -> string -> string
  val get_stringl : Rc.section -> string -> string list
  val get_stringo : Rc.section -> string -> string option
  val set_string :
    ?escape_eol:bool ->
    ?default:string -> Rc.section -> string -> string -> Rc.section
  val set_stringl :
    ?escape_eol:bool -> Rc.section -> string -> string list -> Rc.section
  val set_stringo :
    ?escape_eol:bool -> Rc.section -> string -> string option -> Rc.section
  val check_exhaustive : Rc.section -> Wstdlib.Sstr.t -> unit
  exception CannotOpen of string * string
  exception SyntaxErrorFile of string * string
  val from_channel : Stdlib.in_channel -> Rc.t
  val from_file : string -> Rc.t
  val to_formatter : Stdlib.Format.formatter -> Rc.t -> unit
  val to_channel : Stdlib.out_channel -> Rc.t -> unit
  val to_file : string -> Rc.t -> unit
end