@Override
    @SuppressWarnings({"unchecked", "rawtypes"})
    public @NonNull CompletableFuture<? extends @NonNull Iterable<? extends @NonNull Suggestion>> suggestionsFuture(
            final @NonNull CommandContext<C> context,
            final @NonNull CommandInput input
    ) {
        if (!(this.primary.parser() instanceof SuggestionProvider)) {
            if (!(this.fallback.parser() instanceof SuggestionProvider)) {
                return CompletableFuture.completedFuture(Collections.emptyList());
            }
            return ((SuggestionProvider<C>) this.fallback.parser()).suggestionsFuture(context, input);
        }
        if (!(this.fallback.parser() instanceof SuggestionProvider)) {
            return ((SuggestionProvider<C>) this.primary.parser()).suggestionsFuture(context, input);
        }
        final CompletableFuture<Iterable<Suggestion>>[] suggestionFutures = new CompletableFuture[] {
                ((SuggestionProvider<C>) this.primary.parser()).suggestionsFuture(context, input.copy()),
                ((SuggestionProvider<C>) this.fallback.parser()).suggestionsFuture(context, input)
        };
        return CompletableFuture.allOf(suggestionFutures).thenApply(ignored ->
                Stream.concat(
                    StreamSupport.stream(suggestionFutures[0].getNow(Collections.emptyList()).spliterator(), false),
                    StreamSupport.stream(suggestionFutures[1].getNow(Collections.emptyList()).spliterator(), false)
                ).collect(Collectors.toList())
        );
    }
Returns the fallback parser.

@return the fallback parser
cloud-core/src/main/java/org/incendo/cloud/parser/standard/EitherParser.java