sig
  type 'a t
  val create :
    ?complete:(Univ_map.t -> part:string -> string list) ->
    ?key:'Univ_map.Multi.Key.t ->
    (string -> 'a) -> 'Command.Spec.Arg_type.t
  val of_map :
    ?key:'Univ_map.Multi.Key.t ->
    'Std_internal.String.Map.t -> 'Command.Spec.Arg_type.t
  val of_alist_exn :
    ?key:'Univ_map.Multi.Key.t ->
    (string * 'a) list -> 'Command.Spec.Arg_type.t
end