diff --git a/Text/Parsec/Indent.hs b/Text/Parsec/Indent.hs
--- a/Text/Parsec/Indent.hs
+++ b/Text/Parsec/Indent.hs
@@ -52,7 +52,7 @@
 -- | @ 'withBlock' f a p @ parses @ a @
 --   followed by an indented block of @ p @
 --   combining them with @ f @
-withBlock :: (Stream s (State SourcePos) Char) => (a -> [b] -> c) ->
+withBlock :: (Stream s (State SourcePos) z) => (a -> [b] -> c) ->
     IndentParser s u a -> IndentParser s u b -> IndentParser s u c
 withBlock f a p = withPos $ do
     r1 <- a
@@ -60,12 +60,12 @@
     return (f r1 r2)
 
 -- | Like 'withBlock', but throws away initial parse result
-withBlock' :: (Stream s (State SourcePos) Char) =>
+withBlock' :: (Stream s (State SourcePos) z) =>
     IndentParser s u a -> IndentParser s u b -> IndentParser s u [b]
 withBlock' = withBlock (flip const)
 
 -- | Parses only when indented past the level of the reference
-indented :: (Stream s (State SourcePos) Char) => IndentParser s u ()
+indented :: (Stream s (State SourcePos) z) => IndentParser s u ()
 indented = do
     pos <- getPosition
     s <- get
@@ -74,24 +74,24 @@
         return ()
 
 -- | Parses only when indented past the level of the reference or on the same line
-sameOrIndented :: Stream s (State SourcePos) Char => IndentParser s u ()
+sameOrIndented :: Stream s (State SourcePos) z => IndentParser s u ()
 sameOrIndented = same <|> indented
 
 -- | Parses only on the same line as the reference
-same :: (Stream s (State SourcePos) Char) => IndentParser s u ()
+same :: (Stream s (State SourcePos) z) => IndentParser s u ()
 same = do
     pos <- getPosition
     s <- get
     if biAp sourceLine (==) pos s then return () else parserFail "over one line"
     
 -- | Parses a block of lines at the same indentation level
-block :: (Stream s (State SourcePos) Char) => IndentParser s u a -> IndentParser s u [a]
+block :: (Stream s (State SourcePos) z) => IndentParser s u a -> IndentParser s u [a]
 block p = withPos $ do
     r <- many1 (checkIndent >> p)
     return r
 
 -- | Parses using the current location for indentation reference
-withPos :: (Stream s (State SourcePos) Char) => IndentParser s u a -> IndentParser s u a
+withPos :: (Stream s (State SourcePos) z) => IndentParser s u a -> IndentParser s u a
 withPos x = do
     a <- get
     p <- getPosition
@@ -99,7 +99,7 @@
     put a >> return r
 
 -- | Ensures the current indentation level matches that of the reference
-checkIndent :: (Stream s (State SourcePos) Char) => IndentParser s u ()
+checkIndent :: (Stream s (State SourcePos) z) => IndentParser s u ()
 checkIndent = do
     s <- get
     p <- getPosition
@@ -110,17 +110,17 @@
 runIndent s = flip evalState (initialPos s)
 
 -- | '<+/>' is to indentation sensitive parsers what 'ap' is to monads
-(<+/>) :: (Stream s (State SourcePos) Char) =>
+(<+/>) :: (Stream s (State SourcePos) z) =>
     IndentParser s u (a -> b) -> IndentParser s u a -> IndentParser s u b
 a <+/> b = ap a (sameOrIndented >> b)
 
 -- | '<-/>' is like '<+/>', but doesn't apply the function to the parsed value
-(<-/>) :: (Stream s (State SourcePos) Char) =>
+(<-/>) :: (Stream s (State SourcePos) z) =>
     IndentParser s u a -> IndentParser s u b -> IndentParser s u a
 a <-/> b = liftM2 const a (sameOrIndented >> b)
 
 -- | Like '<+/>' but applies the second parser many times
-(<*/>) :: (Stream s (State SourcePos) Char) =>
+(<*/>) :: (Stream s (State SourcePos) z) =>
     IndentParser s u ([a] -> b) -> IndentParser s u a -> IndentParser s u b
 a <*/> b = ap a (many (sameOrIndented >> b))
 
@@ -128,22 +128,22 @@
 data Optional s u a = Opt a (IndentParser s u a)
 
 -- | Like '<+/>' but applies the second parser optionally using the 'Optional' datatype
-(<?/>) :: (Stream s (State SourcePos) Char) =>
+(<?/>) :: (Stream s (State SourcePos) z) =>
     IndentParser s u (a -> b) -> (Optional s u a) -> IndentParser s u b
 (<?/>) a (Opt b c) = ap a (option b (sameOrIndented >> c))
 
 -- | parses with surrounding brackets
-indentBrackets :: (Stream s (State SourcePos) Char) => GenTokenParser s u (State SourcePos) -> IndentParser s u a -> IndentParser s u a
+indentBrackets :: (Stream s (State SourcePos) z) => GenTokenParser s u (State SourcePos) -> IndentParser s u a -> IndentParser s u a
 indentBrackets lexer p = withPos $ return id <-/> symbol lexer "[" <+/> p <-/> symbol lexer "]"
 
 -- | parses with surrounding angle brackets
-indentAngles :: (Stream s (State SourcePos) Char) => GenTokenParser s u (State SourcePos) -> IndentParser s u a -> IndentParser s u a
+indentAngles :: (Stream s (State SourcePos) z) => GenTokenParser s u (State SourcePos) -> IndentParser s u a -> IndentParser s u a
 indentAngles lexer p = withPos $ return id <-/> symbol lexer "<" <+/> p <-/> symbol lexer ">"
 
 -- | parses with surrounding braces
-indentBraces :: (Stream s (State SourcePos) Char) => GenTokenParser s u (State SourcePos) -> IndentParser s u a -> IndentParser s u a
+indentBraces :: (Stream s (State SourcePos) z) => GenTokenParser s u (State SourcePos) -> IndentParser s u a -> IndentParser s u a
 indentBraces lexer p = withPos $ return id <-/> symbol lexer "{" <+/> p <-/> symbol lexer "}"
 
 -- | parses with surrounding parentheses 
-indentParens :: (Stream s (State SourcePos) Char) => GenTokenParser s u (State SourcePos) -> IndentParser s u a -> IndentParser s u a
+indentParens :: (Stream s (State SourcePos) z) => GenTokenParser s u (State SourcePos) -> IndentParser s u a -> IndentParser s u a
 indentParens lexer p = withPos $ return id <-/> symbol lexer "(" <+/> p <-/> symbol lexer ")"
diff --git a/indents.cabal b/indents.cabal
--- a/indents.cabal
+++ b/indents.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.3.2
+Version:             0.3.3
 
 -- A short (one-line) description of the package.
 Synopsis:            indentation sensitive parser-combinators for parsec
