Coming from a Haskell background and landing on Clojure-land, I had a lot of difficulty grasping some design decisions, specially regarding parameter order and the use of threading macros. This post aims to shed a light on some design decisions Clojure took and reason about whether or not, how or when should you use thread macros. This is an entirely personal opinion, but reasonable arguments are given.