More rules
ruleStatement = do exp <- ruleExpression f <- option return $ choice [ rulePostConditional , rulePostLoop , rulePostIterate ] f exp
say "YAPC was great" if $cakes.yummy
- choice means try out a few parsers
- the first that matches wins, otherwise backtrack
- if none succeeded, the choice fails
- in this case, it's protected by an option, letting you provide a fallback