clojure.zip/remove

functionsince v0.0-927 clojure.zip/removeEdit
(remove loc)

Source docstring:
Removes the node at loc, returning the loc that would have preceded
it in a depth-first walk.
Source code @ clojurescript:src/main/cljs/clojure/zip.cljs
(defn remove
  [loc]
    (let [[node {l :l, ppath :ppath, pnodes :pnodes, rs :r, :as path}] loc]
      (if (nil? path)
        (throw "Remove at top")
        (if (pos? (count l))
          (loop [loc (with-meta [(peek l) (assoc path :l (pop l) :changed? true)] (meta loc))]
            (if-let [child (and (branch? loc) (down loc))]
              (recur (rightmost child))
              loc))
          (with-meta [(make-node loc (peek pnodes) rs) 
                      (and ppath (assoc ppath :changed? true))]
                     (meta loc))))))