code: func (c *cursor) Next() bool {
  	// Ensure transaction state is valid.
  	if err := c.bucket.tx.checkClosed(); err != nil {
  		return false
  	}
  
  	// Nothing to return if cursor is exhausted.
  	if c.currentIter == nil {
  		return false
  	}
  
  	// Move the current iterator to the next entry and choose the iterator
  	// that is both valid and has the smaller key.
  	c.currentIter.Next()
  	return c.chooseIterator(true)
  }
docs: // Next moves the cursor one key/value pair forward and returns whether or not
  // the pair exists.
  //
  // This function is part of the database.Cursor interface implementation.