This brief post shows a possible error handling monad and associated attempt-all form for Clojure. This was devised to improve the error handling in necessary evil. This assumes that you are familiar with the basics of Konrad Hinsen’s clojure.contrib.monads API and the basic use of macros and protocols in clojure. The reason I chose to use the monad library for this is that it makes creating exten