def http(func):
    func = gen.coroutine(func)

    def wrapper(request, response):
        yield func(HTTPPatchedRequest(request), _HTTPResponse(response))