code: func ReadUint(r io.ByteReader) (mag uint64, n int, err error) {
  	pos, _, mag, n, err := readSignMag(r)
  	if err != nil {
  		return
  	}
  	if !pos {
  		err = ErrUnderflow
  	}
  	return
  }
docs: // ReadUint decodes a cmpbin-encoded positive number from a ByteReader.  It
  // returns the decoded value and the number of bytes read. The erorr may be
  // Err{Over,Under}flow if the number is out of bounds. It may also return an
  // error if the ByteReader returns an error.