 (defmacro average-m
   "Average of numbers known at compile time"
   [coll]
-  ;; TODO - How to get rid of eval???
-  (eval `(average ~coll)))
+  `(constexpr average ~coll))
 
 (defn test-average
   []
-  (let [coll [1 2 3]]
+  (let [coll [1 2 3 4]]
     (report (average coll))
     ;; (println (average-m coll)) ;; Would not compile
-    (report (average-m [1 2 3]))
+    (report (average-m [1 2 3 4]))
 
     ;; This however works
-    (defmacro coll-m [] [1 2 3])
+    (defmacro coll-m [] [1 2 3 4])
     (report (average-m (coll-m)))
     ))
 

;; Example 4-a: Adding logs around functions
;; --------------------------------------------------------

;; TODO

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


;; --------------------------------------------------------
;; Example 3-b: repeat a side-effectful call N times
;; - This time, we add the argument in the call
;; --------------------------------------------------------

(defmacro times
