                        (reduce-kv (fn [m k v]
                                     (if (exclude-subtree? k)
                                       (assoc m k {})
-                                      (assoc m k v)))
+                                      (-> m
+                                        (assoc k v)
+                                        (assoc-adj k exclude-subtree?))))
                                   {}
                                   m)
                        m))

      :leaf
      (log/info "got leaf" (z/node t)))))

(defn cull-trie->keys [exclude-subtree? trie]
  (loop [t  (z/zipper ; branch?
                      map?

        (butlast
          (map (fn [[x y]] [(+ ox x) (+ oy y)])
               (line-segment [0 0] [(- dx ox) (- dy oy)]))))))))


(defn square-points [x0 y0 radius]
  (letfn [(points [x y m]
