   (order-free-compare-results expected 
                               (feasible-permutations (keys expected))
                               (fn [permutation]
-                                (compare-one-map-permutation (midje-classification actual)
-                                                             actual
+                                (compare-one-map-permutation actual
                                                              expected
                                                              permutation))))
 

(defmulti compare-results
  (fn [actual expected looseness]
    (if (= ::map (midje-classification actual))
      midje-classification
      [::not-map (or (some #{:in-any-order} looseness) :strict-order)])))

;; There are some incommensurable utility behaviors
(defn compare-one-map-permutation [midje-classification actual expected keys]
  ;;  (prn "map-comparison" actual expected)
  (reduce (fn [so-far key]
            (if (and (find actual key)

  (order-free-compare-results expected 
                              (feasible-permutations expected)
                              (fn [permutation]
                                (compare-one-seq-permutation actual
                                                             permutation
                                                             looseness))))

