An example is that I use Clojure Refactor Mode (with CIDER) for emacs. A trick (and treat) that a lot of Clojure code uses is the arrow macros: -> and ->>. Clojure Refactor Mode has thread-first, thread-first-all, thread-last, thread-last-all and unwind. Since I've committed those to my long term memory, I can just call thread-first-all on something like:
(reduce * (repeat 4 (count (str (* 100 2)))))
and get: (->> 2
(* 100)
str
count
(repeat 4)
(reduce *))
This is so huge, because many times changing the levels of threading makes reasoning about the code so much easier.