sig
  type 'a t
  val create :
    ?complete:(Core_kernel.Std.Univ_map.t -> part:string -> string list) ->
    ?key:'Core_kernel.Std.Univ_map.Multi.Key.t ->
    (string -> 'a) -> 'Command.Arg_type.t
  val of_map :
    ?key:'Core_kernel.Std.Univ_map.Multi.Key.t ->
    'Core_kernel.Std.String.Map.t -> 'Command.Arg_type.t
  val of_alist_exn :
    ?key:'Core_kernel.Std.Univ_map.Multi.Key.t ->
    (string * 'a) list -> 'Command.Arg_type.t
  val file :
    ?key:'Core_kernel.Std.Univ_map.Multi.Key.t ->
    (string -> 'a) -> 'Command.Arg_type.t
  module Export :
    sig
      val string : string Command.Arg_type.t
      val int : int Command.Arg_type.t
      val char : char Command.Arg_type.t
      val float : float Command.Arg_type.t
      val bool : bool Command.Arg_type.t
      val date : Date.t Command.Arg_type.t
      val time : Time.t Command.Arg_type.t
      val time_ofday : Time.Ofday.Zoned.t Command.Arg_type.t
      val time_ofday_unzoned : Time.Ofday.t Command.Arg_type.t
      val time_span : Time.Span.t Command.Arg_type.t
      val file : string Command.Arg_type.t
    end
end