diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,6 @@
+module Main (main) where
+
 import Distribution.Simple
-main = defaultMainWithHooks defaultUserHooks
+
+main :: IO ()
+main = defaultMain
diff --git a/Text/ParserCombinators/Parsec/Combinator.hs b/Text/ParserCombinators/Parsec/Combinator.hs
--- a/Text/ParserCombinators/Parsec/Combinator.hs
+++ b/Text/ParserCombinators/Parsec/Combinator.hs
@@ -16,7 +16,7 @@
                         ( choice
                         , count
                         , between
-                        , option, optional
+                        , option, optionMaybe, optional
                         , skipMany1
                         , many1
                         , sepBy, sepBy1
@@ -42,6 +42,9 @@
 
 option :: a -> GenParser tok st a -> GenParser tok st a
 option x p          = p <|> return x
+
+optionMaybe :: GenParser tok st a -> GenParser tok st (Maybe a)
+optionMaybe p       = option Nothing (liftM Just p)
 
 optional :: GenParser tok st a -> GenParser tok st ()
 optional p          = do{ p; return ()} <|> return ()
diff --git a/parsec.cabal b/parsec.cabal
--- a/parsec.cabal
+++ b/parsec.cabal
@@ -1,38 +1,28 @@
-cabal-version:  >=1.10
-name:           parsec
-build-type:     Simple
-
-version:        2.0.0.1
-license:        BSD3
-license-file:   LICENSE
-author:         Daan Leijen <daan@cs.uu.nl>
-maintainer:     Herbert Valerio Riedel <hvr@gnu.org>
-bug-reports:    https://github.com/hvr/parsec/issues
-category:       Parsing
-synopsis:       Monadic parser combinators
-description:
-        Parsec is designed from scratch as an industrial-strength parser
-        library.  It is simple, safe, well documented (on the package
-        homepage), has extensive libraries and good error messages,
-        and is also fast.
-
-source-repository head
-    type: git
-    location: https://github.com/hvr/parsec
-
-library
-  exposed-modules:
-        Text.ParserCombinators.Parsec.Error
-        Text.ParserCombinators.Parsec.Char
-        Text.ParserCombinators.Parsec.Combinator
-        Text.ParserCombinators.Parsec.Expr
-        Text.ParserCombinators.Parsec.Language
-        Text.ParserCombinators.Parsec.Perm
-        Text.ParserCombinators.Parsec.Pos
-        Text.ParserCombinators.Parsec.Prim
-        Text.ParserCombinators.Parsec.Token
-        Text.ParserCombinators.Parsec
-
-  build-depends:      base >= 4.3 && < 4.8
-  default-language:   Haskell98
-  default-extensions: ExistentialQuantification, PolymorphicComponents
+name:		parsec
+version:	2.1.0.0
+license:	BSD3
+license-file:	LICENSE
+author:		Daan Leijen <daan@cs.uu.nl>
+maintainer:	Daan Leijen <daan@cs.uu.nl>
+homepage:	http://www.cs.uu.nl/~daan/parsec.html
+category:	Parsing
+synopsis:	Monadic parser combinators
+description:
+	Parsec is designed from scratch as an industrial-strength parser
+	library.  It is simple, safe, well documented (on the package
+	homepage), has extensive libraries and good error messages,
+	and is also fast.
+build-type:     Simple
+exposed-modules:
+	Text.ParserCombinators.Parsec.Error,
+	Text.ParserCombinators.Parsec.Char,
+	Text.ParserCombinators.Parsec.Combinator,
+	Text.ParserCombinators.Parsec.Expr,
+	Text.ParserCombinators.Parsec.Language,
+	Text.ParserCombinators.Parsec.Perm,
+	Text.ParserCombinators.Parsec.Pos,
+	Text.ParserCombinators.Parsec.Prim,
+	Text.ParserCombinators.Parsec.Token,
+	Text.ParserCombinators.Parsec
+build-depends:	base
+extensions:	ExistentialQuantification, PolymorphicComponents
