A lot of PL progress has come by removing stuff that makes reasoning about programs hard. Aliased mutable state, shared-memory concurrency, manual memory management, etc.
But... you know what else makes metatheory hard?
Variable bindings and higher order functions. 🤔
8
11
75

