+ const int cmpval = bp->compare(*other.bp);
+ if (cmpval == 0) {
+ // Expressions point to different, but equal, trees: conserve
+ // memory and make subsequent compare() operations faster by
+ // making both expression point to the same tree.
+ share(other);
+ }
+ return cmpval;