Currently, the responder interface is passive and returns an any type.
In order to allow a typed response, we should infer the type in the actual responder.
This might be a simple case of saying that the return type of a responder should extend any and allowing typescript to narrow the type once the function is actually called.