@API(status = API.Status.STABLE)
    default <O> ArgumentParser.@NonNull FutureArgumentParser<C, O> flatMapSuccess(
            final @NonNull BiFunction<CommandContext<C>, T, CompletableFuture<ArgumentParseResult<O>>> mapper
    ) {
        requireNonNull(mapper, "mapper");
        return this.flatMap((ctx, result) -> result.flatMapSuccessFuture(value -> mapper.apply(ctx, value)));
    }
Create a parser that passes through failures and flat maps
successfully parsed values with {@code mapper}.

@param mapper success mapper
@param <O>    mapped parser value type
@return mapped parser
cloud-core/src/main/java/org/incendo/cloud/parser/ArgumentParser.java