func NextHandler(sh interface {
	ServeHTTPNext(next http.Handler, rw http.ResponseWriter, req *http.Request)
}) Wrapper {
	var nf NextHandlerFunc
	if DEBUG {
		nf = func(next http.Handler, rw http.ResponseWriter, req *http.Request) {
			var f http.HandlerFunc
			f = func(rw http.ResponseWriter, req *http.Request) { sh.ServeHTTPNext(next, rw, req) }
			(&debug{Object: sh, Role: asNextHandler, Handler: f}).ServeHTTP(rw, req)
		}
		return nf
	}
	nf = func(next http.Handler, rw http.ResponseWriter, req *http.Request) { sh.ServeHTTPNext(next, rw, req) }
	return nf
}
NextHandler returns a Wrapper for an interface with a ServeHTTPNext method
package wrap
import "net/http"
func Handler(h http.Handler) Wrapper {
	var nf NextHandlerFunc
	if DEBUG {
		nf = func(next http.Handler, rw http.ResponseWriter, req *http.Request) {
			(&debug{Object: h, Role: asHandler, Handler: h}).ServeHTTP(rw, req)
		}
		return nf
	}
	nf = func(next http.Handler, rw http.ResponseWriter, req *http.Request) { h.ServeHTTP(rw, req) }
	return nf
}
func HandlerFunc(fn func(http.ResponseWriter, *http.Request)) Wrapper {
	var nf NextHandlerFunc
	if DEBUG {
		nf = func(next http.Handler, rw http.ResponseWriter, req *http.Request) {
			(&debug{Object: fn, Role: asHandlerFunc, Handler: http.HandlerFunc(fn)}).ServeHTTP(rw, req)
		}
		return nf
	}
	nf = func(next http.Handler, rw http.ResponseWriter, req *http.Request) { fn(rw, req) }
	return nf
}