code: func First(subject Enumerable) (retval interface{}, err error) {
  	done := make(chan struct{})
  
  	err = errNoElements
  
  	var isOpen bool
  
  	if retval, isOpen = <-subject.Enumerate(done); isOpen {
  		err = nil
  	}
  	close(done)
  
  	return
  }
docs: // First retrieves just the first item in the list, or returns an error if there are no elements in the array.