If you want to reason about low level compiler optimizations, learn some assembly language. If you want to reason about type systems, learn how to read basic typing rules, it's not complicated.
Sometimes planning before implementing is a good thing, or does even language design need to be agile™?
What is this gibberish? I was fluent in 68k assembly 30 years ago and teaching compiler construction at university 25 years ago. Were you trying to make a point?
Sometimes planning before implementing is a good thing, or does even language design need to be agile™?