Following snipped will throw a null pointer, the rest of the monads just return "monad fail"-ish.
[org.clojure/algo.monads "0.1.5"]
(use 'clojure.algo.monads)
((domonad state-m [x (m-result 1)
:cond [(= x 2)
[x (m-result 2)]]]
x) {})
It should fail because no matching clause is specified
but a null pointer gives no clue that cond is missing a clause.