       :leaf
       (log/info "got leaf" (z/node t)))))
 
+(defn conj!-adj [children [x y] exclude-subtree?]
+  (reduce (fn [children xy]
+            (if (exclude-subtree? xy)
+              (conj! children {xy {}})
+              children))
+          children
+          (adj-xys x y)))
+
 (defn cull-trie->keys [exclude-subtree? trie]
   (loop [t  (z/zipper ; branch?
                       map?

                          (reduce-kv (fn [children xy subtree]
                                       (if (exclude-subtree? xy)
                                         children
                                         (conj! children subtree)))
                                     (transient [])
                                     node)))
                      ; make node

        (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]
