A lot of my time in Clojure is spent re-reading and repl-evaluating my function implementations just to remind myself what its symbols look like. Even code I wrote an hour ago. Often I stoop to the level of caching my findings in a docstring/comment.
(defn alpha-map-sum-combining-thing
"TODO: Think of better name.
Example input: {:a 1 :b 2}
Example output: {[:a :b] 3}"
[alpha-map]
...)
Sometimes I can spot abstractions and patterns and protocols that unify a namespace of functions so that their inputs/outputs are obvious, but often I can't.This kind of tool is essential for me.