func NewErrorReporter(out io.Writer) func(error) {
	return func(err error) {
		_, _ = fmt.Fprintf(out, "===> Begin Error: %s\n", err.Error())
		_, _ = out.Write(debug.Stack())
		_, _ = fmt.Fprintln(out, "<=== End Error")
	}
}
func NewErrorReporter(out io.Writer) func(error) {
	return func(err error) {
		_, _ = fmt.Fprintf(out, "===> Begin Error: %s\n", err.Error())
		_, _ = out.Write(debug.Stack())
		_, _ = fmt.Fprintln(out, "<=== End Error")
	}
}
// NewErrorReporter returns a very basic reporter that writes errors and stack
// traces to the specified writer.