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

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

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