Or thanks to algebraic data types and pattern matching? Even in a modest recursive descent parser, these can be really nice to use.

Sure, although those are great FP features for all kinds of programming, not just parsing.