I think I misunderstand the issue, because this works for me: (ns midje.util.git (:use [midje.sweet]))
;; Code except for undo-patch is the same as before. ;; ... ;; I pulled remove-patch out of undo-patch because I was ;; getting a screwy read error I didn't want to figure out ;; at 5 in the morning, but I'd probably do that anyway: ;; http://codebetter.com/jeremymiller/2006/12/03/composed-method-pattern/ (defn remove-patch [patch] (alter patches- #(remove (fn [p] (= patch p)) %))) (defn undo-patch [patch] (let [fn (undo-fn patch)] (dosync (fn) (remove-patch patch)))) (fact "The patch's undo-fn is called for its side effect and the patch is forgotten" (let [visible-evidence-of-a-side-effect (atom nil)] (undo-patch ...patch...) => anything (provided (undo-fn ...patch...) => (fn [] (reset! visible-evidence-of-a-side-effect :happened!)) (remove-patch ...patch...) => :nothing-of-interest) @visible-evidence-of-a-side-effect => :happened!)) 1855 $ lein midje midje.util.git All claimed facts (2) have been confirmed. 1856 $ ----- Brian Marick, Artisanal Labrador Contract programming in Ruby and Clojure Author of /Ring/ (forthcoming; sample: http://bit.ly/hfdf9T) www.exampler.com, www.exampler.com/blog, www.twitter.com/marick -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en