Clojure's `with-open` is an exception-safe version of the `(let [x ...] ... (.close x))` pattern: http://clojure.github.io/clojure/clojure.core-api.html#clojure.core/with-open