clean up whitespace
catch duplicate rules
don't mess with point during post processing
add parenthesis syntactic sugar for (and)
add error handler for (not ...)
add `"string" and `:symbol syntactic sugar