class ArithmeticNode extends AbstractNode<Integer, E> {

    public static <E> ArithmeticNode<E> create(Operator operator, Node<?, E> lhs, Node<?, E> rhs)
            throws BindingException {
        Node<Integer, E> lhsInteger = createIntegerNode(operator, lhs);
        Node<Integer, E> rhsInteger = createIntegerNode(operator, rhs);
        return new ArithmeticNode<E>(operator, lhsInteger, rhsInteger);
    }

    public  ArithmeticNode(Operator operator, Node<Integer, E> lhs, Node<Integer, E> rhs);

}