* efficient memoization for partial domain functions (use case: left-corner transform) ? * split off part of grammar into lexer? * lr(1) parser? * lalr(1) parser? * library of common non-terminals that can be used using subref * force finite parsers using type annotation?