code: func (c *IterateChain) First() (Value, error) {
  	c.start()
  	defer c.end()
  	if !c.next() {
  		return nil, c.it.Err()
  	}
  	return c.it.Result(), nil
  }
docs: // First will return a first result of an iterator. It returns nil if iterator is empty.