Language.Haskell.Parser currently can't parse modules with unicode symbols in operators, which are allowed by the haskell98 standard.
The attached patch is a small change in the lexer code to fix this.
Since parseModule expects a String of Unicode codepoints as usual, examples/hsparser.hs will still raise errors on modules that use unicode, because it doesn't decode the source.
The correct behaviour, assuming an utf-8 source, can be tested like this:

> import System.IO.UTF8 as U -- from utf8-string
> import Language.Haskell.Parser
> import Language.Haskell.Pretty
> main = do file <- U.readFile "module.hs"
>           case parseModule of
>                ParseOk m   -> U.putStrLn (prettyPrint m)
>                e@(ParseError _ _) = print e