Crafting a parser, part 6: ambiguity, lookahead, and the lexer hack

The dangling else, the less-than-versus-generics problem, and how much backtracking is honest.