 (defn test-inline-reduce
   []
   (let [coll (into [] (range 10))]
+    (println (reduce + 0 (map #(* 2 %) (filter odd? coll))))
     (report (inline-reduce
-              +
-              0
-              [[:filter odd] [:map #(* 2 %)]]
-              coll
-              ))))
+              + 0
+              [[:filter odd?] [:map #(* 2 %)]]
+              coll))
+    ))
 
 
 ;; --------------------------------------------------------

;; - Show the example of efficient loop generation
;; --------------------------------------------------------

#_(defmacro inline-reduce
    [reducer initial transforms coll]
    `(reduce ~reducer ~initial ~coll))

(defmacro inline-reduce
  [reducer initial transforms coll]

          t# (rest ~coll)
          r# ~initial]
     (if h#
       (recur
         (first t#) (rest t#)
         (inline-reducer ~reducer ~transforms r# h#))
       r#)))

#_(loop [h (first coll)
