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.Spec.Arg_type.t
  val of_map :
    ?key:'Core_kernel.Std.Univ_map.Multi.Key.t ->
    'Core_kernel.Std.String.Map.t -> 'Command.Spec.Arg_type.t
  val of_alist_exn :
    ?key:'Core_kernel.Std.Univ_map.Multi.Key.t ->
    (string * 'a) list -> 'Command.Spec.Arg_type.t
end