Notes from my research for forest-lang, mostly in the form of links to reference later.
In order to find the optimal cost/benefit ratio, Wirth used a highly intuitive metric, the origin of which is unknown to me but that may very well be Wirth’s own invention. He used the compiler’s self-compilation speed as a measure of the compiler’s quality. Considering that Wirth’s compilers were written in the languages they compiled, and that compilers are substantial and non-trivial pieces of software in their own right, this introduced a highly practical benchmark that directly contested a compiler's complexity against its performance. Under the self- compilation speed benchmark, only those optimizations were allowed to be incorporated into a compiler that accelerated it by so much that the intrinsic cost of the new code addition was fully compensated.
- The Implementation of Functional Programming Languages
 - An algorithm for optimal lambda calculus reduction
 
- Parsing: a timeline
 - A typed, algebraic approach to parsing
 - https://github.com/bellissimogiorno/nominal
 
- Programming with Abstract Data Types by Liskov & Zilles
 - Existential quantifiers in abstract data types
 - Seven Sketches in Compositionality: An Invitation to Applied Category Theory
 - Mathematical Logic in Computer Science
 - Fused effect systems in Haskell
 - Simple explanation of Hindley Milner
 - Simple explanation of type unification
 - Jan's proposal to add Row Types to GHC
 - Type driven development in Idris
 - A reckless introduction to Hindley-Milner type inference
 - The Hindley-Milner Type Inference Algorithm
 - Practical type inference for arbitrary-rank types
 
- "A Theory of Changes for Higher-Order Languages" by Cai, Gairrusso, Rendel and Ostermann. - found from https://github.com/paf31/purescript-firkin