@API(status = API.Status.STABLE)
    default <O> ArgumentParser.@NonNull FutureArgumentParser<C, O> flatMap(final MappedArgumentParser.Mapper<C, T, O> mapper) {
        return new MappedArgumentParserImpl<>(this, requireNonNull(mapper, "mapper"));
    }
Create a derived argument parser preserving all properties of this parser, but converting the output type.

@param mapper the mapper to apply
@param <O>    the result type
@return a derived parser.
cloud-core/src/main/java/org/incendo/cloud/parser/ArgumentParser.java