code: func FullAdd(lh, rh uint32, carry bool) (uint, bool) {
  	v, c1 := AddWithOverflow(lh, rh)
  	var c2 bool
  	if carry {
  		v, c2 = AddWithOverflow(uint32(v), 1)
  	}
  
  	return v, c1 || c2
  }
docs: // FullAdd adds left and right together and whether it overflowed.