Functional hierarchical compositional zippers for Clojure