@Nonnull
    default ArgumentParser<T> thenTry(@Nonnull ArgumentParser<T> other) {
        ArgumentParser<T> first = this;
        return t -> {
            Optional<T> ret = first.parse(t);
            return ret.isPresent() ? ret : other.parse(t);
        };
    }
Creates a new parser which first tries to obtain a value from
this parser, then from another if the former was not successful.

@param other the other parser
@return the combined parser
helper/src/main/java/me/lucko/helper/command/argument/ArgumentParser.java