diff --git a/Language/Haskell/Preprocessor/Printer.hs b/Language/Haskell/Preprocessor/Printer.hs
--- a/Language/Haskell/Preprocessor/Printer.hs
+++ b/Language/Haskell/Preprocessor/Printer.hs
@@ -1,10 +1,9 @@
 module Language.Haskell.Preprocessor.Printer ( dump ) where
 
 import Language.Haskell.Preprocessor.Ast
-import Language.Haskell.Preprocessor.Token
 import Language.Haskell.Preprocessor.Loc
 
-import Control.Monad (foldM)
+import Control.Monad (foldM, foldM_)
 
 dump :: Monad m => (String -> m ()) -> [Ast] -> m ()
 dump write forest = start where
@@ -15,7 +14,7 @@
                   x:_ -> initial (file (loc x))
     write (toDirective here)
     write "\n"
-    foldM sayToken here items
+    foldM_ sayToken here items
     write "\n"
 
   sayToken here item
diff --git a/preprocessor-tools.cabal b/preprocessor-tools.cabal
--- a/preprocessor-tools.cabal
+++ b/preprocessor-tools.cabal
@@ -1,5 +1,5 @@
 Name:           preprocessor-tools
-Version:        2.0.1
+Version:        2.0.2
 Cabal-Version:  >= 1.2.3
 License:        BSD3
 License-File:   LICENSE
@@ -43,4 +43,4 @@
     Language.Haskell.Preprocessor.Util
   Other-modules:
     Language.Haskell.Preprocessor.Lexer
-  GHC-options: -Wall
+  GHC-options: -Wall -Wno-name-shadowing
