class CallConverter {

    public Argument.Invocation convert(Rule rule, Expression.Invocation invocation) {
        List<Argument> arguments = new ArrayList<>(invocation.getArguments().size() + 1);

        return Argument.invocationOf(invocation.getName(), convertType(invocation.getType()), invocation.getCall(),
                invocation.getArguments().stream()
                        .map(param -> convertExpression(rule, param))
                        .collect(Collectors.toCollection(() -> arguments)));
    }

    public  CallConverter();

}