sig
  type t
  type accum
  val required :
    ?name:string ->
    Command.Annotated_field.t list ->
    doc:string ->
    ('a, 'b) Fieldslib.Field.t -> Command.Annotated_field.t list
  val default :
    ?name:string ->
    'field ->
    ('field -> string) ->
    Command.Annotated_field.t list ->
    doc:string ->
    ('a, 'field) Fieldslib.Field.t -> Command.Annotated_field.t list
  val optional :
    ?name:string ->
    ?suppress_word_optional:bool ->
    Command.Annotated_field.t list ->
    doc:string ->
    ('a, 'b option) Fieldslib.Field.t -> Command.Annotated_field.t list
  val set :
    ?name:string ->
    Command.Annotated_field.t list ->
    doc:string ->
    ('a, bool) Fieldslib.Field.t -> Command.Annotated_field.t list
  val clear :
    ?name:string ->
    Command.Annotated_field.t list ->
    doc:string ->
    ('a, bool) Fieldslib.Field.t -> Command.Annotated_field.t list
  val list :
    ?name:string ->
    Command.Annotated_field.t list ->
    doc:string ->
    ('a, 'b list) Fieldslib.Field.t -> Command.Annotated_field.t list
  val init : Command.Annotated_field.t list -> Command.Annotated_field.accum
  val to_flag :
    Command.Annotated_field.t -> Command.Annotated_field.accum Command.Flag.t
  val get :
    Command.Annotated_field.accum ->
    (string -> 'field) -> ('a, 'field) Fieldslib.Field.t -> 'field
  val get_opt :
    Command.Annotated_field.accum ->
    (string -> 'field) ->
    ('a, 'field option) Fieldslib.Field.t -> 'field option
  val get_list :
    Command.Annotated_field.accum ->
    (string -> 'field) -> ('a, 'field list) Fieldslib.Field.t -> 'field list
end