class ConsequenceFactory {

    public Invocation<ProcessingContext, Void> createConsequence(Rule rule, List<? extends Expression.Invocation> actions) {
        List<Invocation<ProcessingContext, Void>> invocations = actions.stream()
                .map(action -> createInvocation(rule, action))
                .filter(Objects::nonNull)
                .collect(Collectors.toCollection(ArrayList::new));
        return new Consequence(invocations, errorHandler);
    }

    public  ConsequenceFactory(ProcessingInvocationFactory<Void> invocationFactory);
    public  ConsequenceFactory(ProcessingInvocationFactory<Void> invocationFactory, ErrorHandler errorHandler);
    public  ConsequenceFactory(ProcessingInvocationFactory<Void> invocationFactory, ErrorHandler errorHandler, CallConverter actionConverter);

}