code: func (iter *Iterator) First() bool {
  	// Seek the start key if the iterator was created with one.  This will
  	// result in either an exact match, the first greater key, or an
  	// exhausted iterator if no such key exists.
  	iter.isNew = false
  	if iter.startKey != nil {
  		return iter.seek(iter.startKey, true, true)
  	}
  
  	// The smallest key is in the left-most node.
  	iter.parents = parentStack{}
  	for node := iter.root; node != nil; node = node.left {
  		if node.left == nil {
  			iter.node = node
  			return true
  		}
  		iter.parents.Push(node)
  	}
  	return false
  }
docs: // First moves the iterator to the first key/value pair.  When there is only a
  // single key/value pair both First and Last will point to the same pair.
  // Returns false if there are no key/value pairs.