I loved the either-monad solution. The problem is something I've experienced many times in my clojure adventures, usually resulting in either dirtying the function in question with its own, case specific logging or creating the if-let monstrosity you demonstrated.
As a side note: there's something very comforting when you immediately empathize so strongly with a programming problem someone is writing about
As a side note: there's something very comforting when you immediately empathize so strongly with a programming problem someone is writing about