code: func NewFromFile(file string) (GitIgnore, error) {
  	// define an error handler to catch any file access errors
  	//		- record the first encountered error
  	var _error Error
  	_errors := func(e Error) bool {
  		if _error == nil {
  			_error = e
  		}
  		return true
  	}
  
  	// attempt to retrieve the GitIgnore represented by this file
  	_ignore := NewWithErrors(file, _errors)
  
  	// did we encounter an error?
  	//		- if the error has a zero Position then it was encountered
  	//		  before parsing was attempted, so we return that error
  	if _error != nil {
  		if _error.Position().Zero() {
  			return nil, _error.Underlying()
  		}
  	}
  
  	// otherwise, we ignore the parser errors
  	return _ignore, nil
  }
docs: // NewFromFile creates a GitIgnore instance from the given file. An error
  // will be returned if file cannot be opened or its absolute path determined.