       `(if (~fct ~h)
          (inline-reducer ~reducer ~remaining ~r ~h)
          ~r)
+      :mapcat
+      `(let [h2# (~fct ~h)]
+         (inline-reduce ~reducer ~r ~remaining h2#))
       `(~reducer ~r ~h))))
 
 (defmacro inline-reduce

              + 0
              [[:filter odd?] [:map #(* 2 %)]]
              coll))
    ))



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