Ваш пример выглядит настолько близко к идиоматическому Clojure, насколько я могу судить :)
Возможно, было бы полезно абстрагировать отображение типов, если у вас есть ситуации, когда вы будете создавать более одного шаблона, хотя, если вы создаете только этот шаблон, это выглядит для меня как превосходное завершение.