         :else #{}))
     tree))
 
-(defn eval-expr-in-env
+#_(defn eval-expr-in-env
   "Evaluate the expression in an environment"
   [tree env]
   (walk/postwalk


(defn keyword->symbol [k] (-> k name symbol))

(defn collect-dependencies
  "Collect all the dependencies of an environment"
  [tree]
  (walk/postwalk



;; --------------------------------------------------------
;; Example 7: Macros can be used at the requirement level:
;; - Expression your business
;; - Get powerful code for it
;;
;; Phase 1: Factorize some common used patterns
;; - tree transformation of collect dependencies
;; - tree transformation of evaluate with env
;; => Factorize into tree morphism
;;
;; Phase 2: Generating some code based on data structure
;;
;; Here we define a computation in terms of variables
;; - We produce a record for this computation (type)
