sig
  val quote : string -> string
  exception Error of string
  val error : string list -> 'a
  exception BadDefinitions of string
  type importance = CmdlineArgsBase.importance = Normal | Unimportant
  type 'a meaning = 'CmdlineArgsMeaning.meaning
  type +'a description
  val opt :
    'CmdlineArgs.S.meaning ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgs.S.importance ->
    string -> 'CmdlineArgs.S.description
  type traditional = Help | Version | Manual of [ `Nroff ]
  val traditional : CmdlineArgs.S.traditional CmdlineArgs.S.description list
  val traditional_enhanced :
    CmdlineArgs.S.traditional CmdlineArgs.S.description list
  module Summary :
    sig type section type t = CmdlineArgs.S.Summary.section list end
  val summary :
    string ->
    'CmdlineArgs.S.description list -> CmdlineArgs.S.Summary.section
  module PlainText :
    sig
      val help_table :
        CmdlineArgs.S.Summary.section ->
        (string * (string * string * string) list) *
        [> `Complete | `Incomplete ]
      val format_help : CmdlineArgs.S.Summary.section list -> string
    end
  module Nroff :
    sig
      val format_options :
        CmdlineArgs.S.Summary.section list -> HSimpleDoc.item list
      val simple_usage_synopsis_of_string :
        string list -> HSimpleDoc.text list
      val format_manual :
        ?manpage_section:string ->
        (string * string list) list ->
        HSimpleDoc.text list ->
        string -> CmdlineArgs.S.Summary.section list -> string
    end
  val simple_help_string :
    HSimpleDoc.text list -> CmdlineArgs.S.Summary.section list -> string
  val parse_Bool : string -> bool
  val parse_Int : string -> int
  val parse_Float : string -> float
  val parse_RawPath : string -> HPath.t
  val parse_Path : string -> HPath.t
  val parse_String : '-> 'a
  val parse_Symbol : string list -> string -> string
  val materialize_pure : 'CmdlineArgs.S.meaning -> string -> 'a
  type parsed
  val empty_parsed : CmdlineArgs.S.parsed
  val join_parsed :
    CmdlineArgs.S.parsed -> CmdlineArgs.S.parsed -> CmdlineArgs.S.parsed
  val parse :
    CmdlineArgs.S.Summary.section list -> string list -> CmdlineArgs.S.parsed
  val recognize :
    'CmdlineArgs.S.description list ->
    CmdlineArgs.S.parsed -> 'a list * CmdlineArgs.S.parsed
  val fold :
    ('-> 'a) CmdlineArgs.S.description list ->
    '-> CmdlineArgs.S.parsed -> 'a * CmdlineArgs.S.parsed
  val take_pure : CmdlineArgs.S.parsed -> string list * CmdlineArgs.S.parsed
  val final_take_pure : CmdlineArgs.S.parsed -> string list
  val exec_traditional :
    ?manual_sections:(string * string list) list ->
    HSimpleDoc.text list ->
    CmdlineArgs.S.Summary.section list ->
    ?help_string:string -> string -> CmdlineArgs.S.traditional list -> unit
  val cmdline_args : string list
  val parse_recognize_exc :
    ?args:string list ->
    ?traditional:CmdlineArgs.S.traditional CmdlineArgs.S.description list ->
    ?manual_sections:(string * string list) list ->
    string ->
    ?usage_synopsis:string list ->
    ?formatted_usage_synopsis:HSimpleDoc.text list ->
    'CmdlineArgs.S.description list -> 'a list * string list
  val parse_recognize :
    ?args:string list ->
    ?traditional:CmdlineArgs.S.traditional CmdlineArgs.S.description list ->
    ?manual_sections:(string * string list) list ->
    string ->
    ?usage_synopsis:string list ->
    ?formatted_usage_synopsis:HSimpleDoc.text list ->
    'CmdlineArgs.S.description list -> 'a list * string list
  val parse_fold_exc :
    ?args:string list ->
    ?traditional:CmdlineArgs.S.traditional CmdlineArgs.S.description list ->
    ?manual_sections:(string * string list) list ->
    string ->
    ?usage_synopsis:string list ->
    ?formatted_usage_synopsis:HSimpleDoc.text list ->
    ('-> 'a) CmdlineArgs.S.description list -> '-> 'a * string list
  val parse_fold :
    ?args:string list ->
    ?traditional:CmdlineArgs.S.traditional CmdlineArgs.S.description list ->
    ?manual_sections:(string * string list) list ->
    string ->
    ?usage_synopsis:string list ->
    ?formatted_usage_synopsis:HSimpleDoc.text list ->
    ('-> 'a) CmdlineArgs.S.description list -> '-> 'a * string list
  val take_flag_out : 'a list -> '-> bool * 'a list
  type 'a clash_policy =
      ForbidClash of string
    | Override
    | SolveClash of ('a list -> 'a)
  val take_values_out : 'a list -> ('-> 'b option) -> 'b list * 'a list
  val take_value_out :
    'CmdlineArgs.S.clash_policy ->
    'b list -> ('-> 'a option) -> 'a option * 'b list
  val default : '-> ('-> '-> 'a option * 'd) -> '-> '-> 'a * 'd
  val last : ('-> '-> 'c * 'd list) -> '-> '-> 'c
  val oBool :
    (bool -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oBoolOpt :
    (bool option -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetBool :
    bool Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetBoolOpt :
    bool option Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyBool :
    (bool -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyBoolOpt :
    (bool option -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oInt :
    (int -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oIntOpt :
    (int option -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetInt :
    int Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetIntOpt :
    int option Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyInt :
    (int -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyIntOpt :
    (int option -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oFloat :
    (float -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oFloatOpt :
    (float option -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetFloat :
    float Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetFloatOpt :
    float option Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyFloat :
    (float -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyFloatOpt :
    (float option -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oRawPath :
    (HPath.t -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oRawPathOpt :
    (HPath.t option -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetRawPath :
    HPath.t Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetRawPathOpt :
    HPath.t option Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyRawPath :
    (HPath.t -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyRawPathOpt :
    (HPath.t option -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oPath :
    (HPath.t -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oPathOpt :
    (HPath.t option -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetPath :
    HPath.t Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetPathOpt :
    HPath.t option Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyPath :
    (HPath.t -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyPathOpt :
    (HPath.t option -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oRealPath :
    (HPath.t -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oRealPathOpt :
    (HPath.t option -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetRealPath :
    HPath.t Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetRealPathOpt :
    HPath.t option Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyRealPath :
    (HPath.t -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyRealPathOpt :
    (HPath.t option -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oString :
    (string -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oStringOpt :
    (string option -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetString :
    string Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetStringOpt :
    string option Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyString :
    (string -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplyStringOpt :
    (string option -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSymbol :
    string list * (string -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSymbolOpt :
    string list * (string option -> 'a) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetSymbol :
    string list * string Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oSetSymbolOpt :
    string list * string option Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplySymbol :
    string list * (string -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oApplySymbolOpt :
    string list * (string option -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    ?label:string -> string -> 'CmdlineArgs.S.description
  val oConst :
    '->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    string -> 'CmdlineArgs.S.description
  val oSetTrue :
    bool Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    string -> 'CmdlineArgs.S.description
  val oSetFalse :
    bool Pervasives.ref ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    string -> 'CmdlineArgs.S.description
  val oApplyUnit :
    (unit -> unit) ->
    string ->
    ?short:string ->
    ?importance:CmdlineArgsBase.importance ->
    string -> 'CmdlineArgs.S.description
end