Type-safe Transducers in Clojure, Scala, and Haskell · HackerTrans