code: public MappeableContainer lazyIOR(MappeableContainer x) {
      if (this instanceof MappeableArrayContainer) {
        if (x instanceof MappeableArrayContainer) {
          return ((MappeableArrayContainer) this).lazyor((MappeableArrayContainer) x);
        } else if (x instanceof MappeableBitmapContainer) {
          return ((MappeableBitmapContainer) x).lazyor((MappeableArrayContainer) this);
        }
        return ((MappeableRunContainer) x).lazyor((MappeableArrayContainer) this);
      } else if (this instanceof MappeableRunContainer) {
        if (x instanceof MappeableArrayContainer) {
          return ((MappeableRunContainer) this).ilazyor((MappeableArrayContainer) x);
        } else if (x instanceof MappeableBitmapContainer) {
          return ((MappeableBitmapContainer) x).lazyor((MappeableRunContainer) this);
        }
        return ior((MappeableRunContainer) x);
      } else {
        if (x instanceof MappeableArrayContainer) {
          return ((MappeableBitmapContainer) this).ilazyor((MappeableArrayContainer) x);
        } else if (x instanceof MappeableBitmapContainer) {
          return ((MappeableBitmapContainer) this).ilazyor((MappeableBitmapContainer) x);
        }
        return ((MappeableBitmapContainer) this).ilazyor((MappeableRunContainer) x);
      }
    }
docs: Computes the in-place bitwise OR of this container with another (union). The current container
  is generally modified, whereas the provided container (x) is unaffected. May generate a new
  container. The resulting container may not track its cardinality correctly. The resulting
  container may not track its cardinality correctly. This can be fixed as follows:
  if(c.getCardinality()&lt;0) ((MappeableBitmapContainer)c).computeCardinality();
  
  @param x other container
  @return aggregated container