 (defmacro add-m-3
   "Summing two integers known at compile time"
   [a b]
-  ;; TODO - How to get rid of eval???
+  ;; TODO - How to get rid of eval??? constexpr
   (eval `(+ ~a ~b)))
+
+(defmacro add-m-4
+  [a b]
+  `(constexpr add ~a ~b))
 
 (defn test-add
   []

(defmacro report
  [body]
  `(let [result# ~body]
     (println (expension-report ~body) "is" result#)
     ))

;; --------------------------------------------------------
;; Example 1: equivalent with constexpr

;; --------------------------------------------------------

;; TODO

;; --------------------------------------------------------
;; Example 5: Generating some code based on data structure
