code: public Container lazyOR(Container x) {
      if (this instanceof ArrayContainer) {
        if (x instanceof ArrayContainer) {
          return ((ArrayContainer)this).lazyor((ArrayContainer) x);
        } else if (x instanceof BitmapContainer) {
          return ((BitmapContainer) x).lazyor((ArrayContainer) this);
        }
        return ((RunContainer) x).lazyor((ArrayContainer) this);
      } else if (this instanceof RunContainer) {
        if (x instanceof ArrayContainer) {
          return ((RunContainer) this).lazyor((ArrayContainer) x);
        } else if (x instanceof BitmapContainer) {
          return ((BitmapContainer) x).lazyor((RunContainer) this);
        }
        return or((RunContainer) x);
      } else {
        if (x instanceof ArrayContainer) {
          return ((BitmapContainer) this).lazyor((ArrayContainer) x);
        } else if (x instanceof BitmapContainer) {
          return ((BitmapContainer) this).lazyor((BitmapContainer) x);
        }
        return ((BitmapContainer) this).lazyor((RunContainer) x);
      }
    }
docs: Computes the bitwise OR of this container with another (union). This container as well as the
  provided container are left unaffected. The resulting container may not track its cardinality
  correctly. This can be fixed as follows: if(c.getCardinality()&lt;0)
  ((BitmapContainer)c).computeCardinality();
  
  @param x other container
  @return aggregated container