func PrintlnStderr(err error) {
	if err == nil {
		return
	}
	if el, ok := err.(List); ok {
		for _, msg := range el.AsStrings() {
			fmt.Fprintln(os.Stderr, msg)
		}
	} else {
		fmt.Fprintln(os.Stderr, err.Error())
	}
}
PrintlnStderr prints err to stderr. If err is a List it prints
several lines.
package errorlist
import (
	"fmt"
	"os"
	"strings"
)
type List []error
func (el List) Append(err error) List {
	if err == nil {
		return el
	}
	if list, ok := err.(List); ok {
		return append(el, list...)
	}
	return append(el, err)
}
func (el List) Error() string {
	return strings.Join(el.AsStrings(), "; \u2029")
}
func (el List) AsError() error {
	if len(el) == 0 {
		return nil
	}
	return el
}
func (el List) AsStrings() []string {
	s := []string{}
	for _, e := range el {
		if nel, ok := e.(List); ok {
			s = append(s, nel.AsStrings()...)
		} else {
			s = append(s, e.Error())
		}
	}
	return s
}