Pattern matching, refs/transactions, atoms and macros