I think we should move these four types out of the `OpenRequest` trait so they don't close over it and we spare the unused `outer$` reference.