Hi, one thing I found confusing in your syntax was that the function definition makes it look tupled but application is in the typical style of curried functions.
Nice! Note about the PersistentVector implementation performance in Clojure due to some other fun optimizations - appending one million items on a 2.66ghz i7 running OpenJDK 7, ~65ms.