Also, you might want to make record itself a macro, so you can flow metadata to the created record:
^{:my "meta"}(record ::Foo :a 1 :b 2)
This will be useful since this will likely become at least the print-dup form for records