               + 0
               [[:filter odd?] [:map #(* 2 %)]]
               coll))
+
+    (report (inline-reduce
+              + 0
+              [[:filter odd?]
+               [:map #(* 2 %)]
+               [:mapcat (fn [x] [x x])]]
+              coll))
     ))
 
 

      `(if (~fct ~h)
         (inline-reducer ~reducer ~remaining ~r ~h)
         ~r)
      `(~reducer ~r ~h))))

(defmacro inline-reduce

        remaining (rest transforms)]
    (case op
      ;;TODO - Multimethod here for extensibility
      :map
      `(let [h2# (~fct ~h)]
         (inline-reducer ~reducer ~remaining ~r h2#))
