pack shared-structure for clojure