(defmacro with-cache ((cache directory &rest options) &body body) `(let ((,cache (open-cache ,directory ,@options))) (unwind-protect (progn ,@body) (close-cache ,cache))))