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