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