(iterate think thoughts): Parsing and rendering templates in Clojure & Haskell