improve error handling in pattern clauses especially around the :where guards, fall-through patterns etc:
| first pattern | second pattern :where (predicate) -> actions...
Consider replacing :where with :when.
Also allow symbols as well as sexpers as guard conditions.