query.go
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
}
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
}
// First retrieves just the first item in the list, or returns an error if there are no elements in the array.