diff --git a/pipes-parse.cabal b/pipes-parse.cabal
--- a/pipes-parse.cabal
+++ b/pipes-parse.cabal
@@ -1,6 +1,6 @@
 Name: pipes-parse
-Version: 3.0.8
-Cabal-Version: >=1.8.0.2
+Version: 3.0.9
+Cabal-Version: >=1.10
 Build-Type: Simple
 License: BSD3
 License-File: LICENSE
@@ -38,3 +38,4 @@
         Pipes.Parse,
         Pipes.Parse.Tutorial
     GHC-Options: -O2 -Wall
+    Default-Language: Haskell2010
diff --git a/src/Pipes/Parse.hs b/src/Pipes/Parse.hs
--- a/src/Pipes/Parse.hs
+++ b/src/Pipes/Parse.hs
@@ -147,7 +147,7 @@
 peek :: Monad m => Parser a m (Maybe a)
 peek = do
     x <- draw
-    forM_ x unDraw
+    forM_ x $ \a -> unDraw a
     return x
 {-# INLINABLE peek #-}
 
diff --git a/src/Pipes/Parse/Tutorial.hs b/src/Pipes/Parse/Tutorial.hs
--- a/src/Pipes/Parse/Tutorial.hs
+++ b/src/Pipes/Parse/Tutorial.hs
@@ -245,7 +245,7 @@
 5
 6
 
-    We can also uses lenses to modify 'Parser's, using
+    We can also use lenses to modify 'Parser's, using
     'Lens.Family.State.Strict.zoom'.  When we combine
     'Lens.Family.State.Strict.zoom' with @(splitAt 3)@ we limit a parser to the
     the first three elements of the stream.  When the parser is done
