Rethinking diff
Clojure has case!?!