Define higher-level parse() functions to eliminate a lot of nested if-lets