diff --git a/Text/Boomerang/TH.hs b/Text/Boomerang/TH.hs
--- a/Text/Boomerang/TH.hs
+++ b/Text/Boomerang/TH.hs
@@ -38,7 +38,7 @@
       let e' = mkName "e"
       let ppType = AppT (AppT (ConT ''PrinterParser) (VarT e')) (VarT tok')
       let r' = mkName "r"
-      let inT = foldl (\a b -> AppT (AppT (ConT ''(:-)) b) a) (VarT r') tys
+      let inT = foldr (\a b -> AppT (AppT (ConT ''(:-)) a) b) (VarT r') tys
       let outT = AppT (AppT (ConT ''(:-))
                             (foldl AppT (ConT tName) (map (VarT . takeName) tParams)))
                       (VarT r')
diff --git a/boomerang.cabal b/boomerang.cabal
--- a/boomerang.cabal
+++ b/boomerang.cabal
@@ -1,5 +1,5 @@
 Name:             boomerang
-Version:          1.1.1
+Version:          1.2.0
 License:          BSD3
 License-File:     LICENSE
 Author:           jeremy@seereason.com
