this is conceptually fine, but probably breaks the current impl in weird ways, look through all uses of `ty::Closure` and coroutine etc :3