   (or (first-named? form "fake") 
       (first-named? form "data-fake")))
 
-(defn- fake-form-funcall-arglist 
-  [[fake funcall => value & overrides :as _fake-form_]]
-  (rest funcall))
-
 ;;; Creation
 
 (defn make-fake-map

  [finished pending substitutions]
  (let [target (first pending)]
    (if-not (folded-fake? target)
      [(conj finished target), (rest pending), substitutions]
    
      (let [overrides (drop 4 target)
            augmented-substitutions (augment-substitutions substitutions target)
            flattened-target (flatten-fake target augmented-substitutions)
            generated-fakes (generate-fakes (map-difference augmented-substitutions substitutions) overrides)]
        [(conj finished flattened-target), (concat generated-fakes (rest pending)), augmented-substitutions]))))

(defn- unfold-expect-form__then__stay_put [loc]
  (loop [[finished pending substitutions] [[] (zip/node loc) {}]]
    (if (empty? pending)
      (zip/replace loc (apply list finished))
      (recur (unfolding-step finished pending substitutions)))))

(defn unfold-fakes [form]
  (with-fresh-generated-metaconstant-names
    (translate-zipper form
      expect?
      unfold-expect-form__then__stay_put)))

;; Binding map related

(defn- #^:tested-private unique-vars [fakes]
  (distinct (map :lhs fakes)))

(defn- #^:tested-private binding-map-with-function-fakes [fakes]
  (letfn [(fn-that-implements-a-fake [function]
            (vary-meta function assoc :midje/faked-function true))
          (make-faker [var]
