This looks 100% correct, though I wonder if it's slower than it needs to be. Like, can we take advantage of the fact that all the things we want to nested-sort are all maps, and they aren't so nested as to cause concern about stack overflows?

```clojure
(defn sort-nested-maps2
  "For a data structure, recursively sorting any nested maps"
  [data]
  (if (map? data)
    (into (sorted-map) (for [[k v] data]
                         [k (sort-nested-maps2 v)]))
    data))
```

When I test this, I get the following results:

```clojure
(time (dotimes [i 10000] (sort-nested-maps {1 1 2 [3 2 1] 3 {1 {2 2 1 1} 2 {3 [3 2 1] 2 {4 4 3 3 2 2 1 1}} 3 3 0 0}})))
"Elapsed time: 755.483 msecs"

(time (dotimes [i 10000] (sort-nested-maps2 {1 1 2 [3 2 1] 3 {1 {2 2 1 1} 2 {3 [3 2 1] 2 {4 4 3 3 2 2 1 1}} 3 3 0 0}})))
"Elapsed time: 93.292 msecs"
```