3 ms·
I think there were two main concepts: 1) When implementing a type system, you could have a separate representation for a typechecked AST than for a not-yet-typ
by brundolf 6y ago
I think there were two main concepts:
1) When implementing a type system, you could have a separate representation for a typechecked AST than for a not-yet-typechecked AST, in the same way that you normally have a separate representation for a parsed AST than for a not-yet-parsed token stream. This would ensure against invalid states within a parser by making the type-checking pass another parsing pass instead of a validation pass.
2) The author then seemed to veer into applying this philosophy to application code. However, the author also seems like they've had a lot of experience with languages where the line between parser and application is blurred, so in that context this isn't such a big leap.