macros rewritten to always match logical clauses