@Contract(pure = true)
    @NotNull
    public static <ArgType> ArgInfo<ArgType> empty() {
      //noinspection unchecked
      return (ArgInfo<ArgType>)EMPTY;
    }
@Contract(pure = true)
    @NotNull
    public static <ArgType> ArgInfo<ArgType> empty()