Presents more opportunities to infer static contexts. ```clojure (context "/foo" [] :path-params [id :- s/Str] (PATCH "/" [] (ok id)) (GET "/" [] (ok id))) ``` => ```clojure (context "/foo" [] (PATCH "/" [] :path-params [id :- s/Str] (ok id)) (GET "/" [] :path-params [id :- s/Str] (ok id))) ``` typed.clj.analyzer would be useful here as we both need to infer where locals occur and also do partial macroexpansion.