type Error … // exterr constructs an Error with position derived from the first frame in the // call stack outside this package. func exterr(err error) Error { … } func (e Error) Error() string { … } type ErrorList … // Add appends an error to the list. func (e *ErrorList) Add(err Error) { … } // AddAt appends an error at position p. func (e *ErrorList) AddAt(p src.Position, err error) { … } // addext appends an error to the list, tagged with the first external position // outside this package. func (e *ErrorList) addext(err error) { … } // Err returns an error equivalent to this error list. // If the list is empty, Err returns nil. func (e ErrorList) Err() error { … } // Error implements the error interface. func (e ErrorList) Error() string { … } // LogError logs a list of errors, one error per line, if the err parameter is // an ErrorList. Otherwise it just logs the err string. Reports at most max // errors, or unlimited if max is 0. func LogError(l *log.Logger, err error, max int) { … }