code: func (c *Container) unionInPlace(other *Container) {
  	switch c.typ {
  	case containerBitmap:
  		switch other.typ {
  		case containerBitmap:
  			unionBitmapBitmapInPlace(c, other)
  		case containerArray:
  			unionBitmapArrayInPlace(c, other)
  		case containerRun:
  			unionBitmapRunInPlace(c, other)
  
  		}
  	case containerArray:
  		switch other.typ {
  		case containerBitmap:
  			c.arrayToBitmap()
  			unionBitmapBitmapInPlace(c, other)
  		case containerArray:
  			unionArrayArrayInPlace(c, other)
  		case containerRun:
  			c.arrayToBitmap()
  			unionBitmapRunInPlace(c, other)
  		}
  	case containerRun:
  		switch other.typ {
  		case containerBitmap:
  			c.runToBitmap()
  			unionBitmapBitmapInPlace(c, other)
  		case containerArray:
  			c.runToBitmap()
  			unionBitmapArrayInPlace(c, other)
  		case containerRun:
  			c.runToBitmap()
  			unionBitmapRunInPlace(c, other)
  		}
  	}
  }
docs: // unionInPlace does not necessarily preserve container's N; it's expected
  // to be used when running a sequence of unions, after which you should
  // call Repair(). (As of this writing, that only matters for bitmaps.)