class ArrayComparisonExpression extends ComparisonExpression implements ArrayComparison {

    private final Quantifier quantifier;

    public ArrayComparisonExpression(Type type,
                                     Quantifier quantifier,
                                     Expression expression,
                                     Expression arrayExpression) {
        super(type, expression, arrayExpression);
        this.quantifier = quantifier;
    }

    @Override
    public Quantifier quantifier() {
        return quantifier;
    }

    @Override
    public <R, C> R accept(AstVisitor<R, C> visitor, C context) {
        return visitor.visitArrayComparisonExpression(this, context);
    }

    @Override
    public boolean equals(Object o) {<FILL_FUNCTION_BODY>}

    @Override
    public int hashCode() {
        int result = super.hashCode();
        result = 31 * result + (quantifier != null ? quantifier.hashCode() : 0);
        return result;
    }
}

        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        if (!super.equals(o)) return false;

        ArrayComparisonExpression that = (ArrayComparisonExpression) o;

        if (quantifier != that.quantifier) return false;

        return true;
    
<methods>public void <init>(io.crate.sql.tree.ComparisonExpression.Type, io.crate.sql.tree.Expression, io.crate.sql.tree.Expression) ,public R accept(AstVisitor<R,C>, C) ,public boolean equals(java.lang.Object) ,public io.crate.sql.tree.Expression getLeft() ,public io.crate.sql.tree.Expression getRight() ,public io.crate.sql.tree.ComparisonExpression.Type getType() ,public int hashCode() <variables>private final non-sealed io.crate.sql.tree.Expression left,private final non-sealed io.crate.sql.tree.Expression right,private final non-sealed io.crate.sql.tree.ComparisonExpression.Type type