code: func shift(c *Container) (*Container, bool) {
  	if c.isArray() {
  		return shiftArray(c)
  	} else if c.isRun() {
  		return shiftRun(c)
  	}
  	return shiftBitmap(c)
  }
docs: // shift() shifts the contents of c by one. It returns
  // the new container and a bool indicating whether a
  // carry bit was shifted out.