diff --git a/CHANGELOG b/CHANGELOG
deleted file mode 100644
--- a/CHANGELOG
+++ /dev/null
@@ -1,9 +0,0 @@
-parsec2-1.0.0 (Changes from parsec-2.1.0.1)
-
-Sat Jul 24 12:17:43 CDT 2010  Antoine Latter <aslatter@gmail.com>
-  * add dcoumentation done for parsec-3
-
-Wed Jun  9 22:23:52 CDT 2010  Antoine Latter <aslatter@gmail.com>
-  * in Parsec.Token, sort names after accounting for case sensitivity, not before
-  from: Greg Fitzgerald
-
diff --git a/CHANGES.md b/CHANGES.md
new file mode 100644
--- /dev/null
+++ b/CHANGES.md
@@ -0,0 +1,11 @@
+# 1.0.1
+
+* Add instances for `Applicative` and `Alternative`.
+
+# 1.0.0 (Changes from parsec-2.1.0.1)
+
+* Add documentation done for parsec-3
+
+* In Parsec.Token, sort names after accounting for case sensitivity, not before
+  (from: Greg Fitzgerald).
+
diff --git a/Text/ParserCombinators/Parsec/Language.hs b/Text/ParserCombinators/Parsec/Language.hs
--- a/Text/ParserCombinators/Parsec/Language.hs
+++ b/Text/ParserCombinators/Parsec/Language.hs
@@ -40,9 +40,9 @@
                 , commentLine    = "--"
                 , nestedComments = True
                 , identStart     = letter
-                , identLetter	 = alphaNum <|> oneOf "_'"
-                , opStart	 = opLetter haskellStyle
-                , opLetter	 = oneOf ":!#$%&*+./<=>?@\\^|-~"              
+                , identLetter    = alphaNum <|> oneOf "_'"
+                , opStart        = opLetter haskellStyle
+                , opLetter       = oneOf ":!#$%&*+./<=>?@\\^|-~"              
                 , reservedOpNames= []
                 , reservedNames  = []
                 , caseSensitive  = True                                   
@@ -53,16 +53,16 @@
 -- sensitivity. It does not define any reserved words or operators.
 javaStyle  :: LanguageDef st
 javaStyle   = emptyDef
-		{ commentStart	 = "/*"
-		, commentEnd	 = "*/"
-		, commentLine	 = "//"
-		, nestedComments = True
-		, identStart	 = letter
-		, identLetter	 = alphaNum <|> oneOf "_'"		
-		, reservedNames  = []
-		, reservedOpNames= []	
-                , caseSensitive  = False				  
-		}
+                { commentStart   = "/*"
+                , commentEnd     = "*/"
+                , commentLine    = "//"
+                , nestedComments = True
+                , identStart     = letter
+                , identLetter    = alphaNum <|> oneOf "_'"
+                , reservedNames  = []
+                , reservedOpNames= []
+                , caseSensitive  = False
+                }
 
 -----------------------------------------------------------
 -- minimal language definition
@@ -95,14 +95,14 @@
 -- | The language definition for the Haskell language.
 haskellDef  :: LanguageDef st
 haskellDef   = haskell98Def
-	        { identLetter	 = identLetter haskell98Def <|> char '#'
-	        , reservedNames	 = reservedNames haskell98Def ++ 
-    				   ["foreign","import","export","primitive"
-    				   ,"_ccall_","_casm_"
-    				   ,"forall"
-    				   ]
+                { identLetter    = identLetter haskell98Def <|> char '#'
+                , reservedNames  = reservedNames haskell98Def ++ 
+                                   ["foreign","import","export","primitive"
+                                   ,"_ccall_","_casm_"
+                                   ,"forall"
+                                   ]
                 }
-			    
+
 -- | The language definition for the language Haskell98.
 haskell98Def :: LanguageDef st
 haskell98Def = haskellStyle
@@ -129,10 +129,10 @@
 -- | The language definition for the language Mondrian.
 mondrianDef :: LanguageDef st
 mondrianDef = javaStyle
-		{ reservedNames = [ "case", "class", "default", "extends"
-				  , "import", "in", "let", "new", "of", "package"
-				  ]	
-                , caseSensitive  = True				  
-		}
+                { reservedNames = [ "case", "class", "default", "extends"
+                                  , "import", "in", "let", "new", "of", "package"
+                                  ]
+                , caseSensitive  = True
+                }
 
-				
+
diff --git a/Text/ParserCombinators/Parsec/Pos.hs b/Text/ParserCombinators/Parsec/Pos.hs
--- a/Text/ParserCombinators/Parsec/Pos.hs
+++ b/Text/ParserCombinators/Parsec/Pos.hs
@@ -35,8 +35,8 @@
 -- a column number. @SourcePos@ is an instance of the 'Show', 'Eq' and
 -- 'Ord' class.
 data SourcePos      = SourcePos SourceName !Line !Column
-		     deriving (Eq,Ord)
-		
+                    deriving (Eq,Ord)
+
 -- | Create a new 'SourcePos' with the given source name,
 -- line number and column number.
 newPos :: SourceName -> Line -> Column -> SourcePos
diff --git a/Text/ParserCombinators/Parsec/Prim.hs b/Text/ParserCombinators/Parsec/Prim.hs
--- a/Text/ParserCombinators/Parsec/Prim.hs
+++ b/Text/ParserCombinators/Parsec/Prim.hs
@@ -42,6 +42,7 @@
 import Prelude
 import Text.ParserCombinators.Parsec.Pos
 import Text.ParserCombinators.Parsec.Error
+import qualified Control.Applicative as A
 import Control.Monad
 
 {-# INLINE parsecMap    #-}
@@ -145,12 +146,12 @@
                         }
 
 -- | Returns the full parser state as a 'State' record.
-getParserState	    :: GenParser tok st (State tok st)
-getParserState      =  updateParserState id    
+getParserState    :: GenParser tok st (State tok st)
+getParserState    =  updateParserState id    
 
 -- | @setParserState st@ set the full parser state to @st@.
-setParserState	    :: State tok st -> GenParser tok st (State tok st)
-setParserState st   = updateParserState (const st)
+setParserState    :: State tok st -> GenParser tok st (State tok st)
+setParserState st = updateParserState (const st)
 
 
 
@@ -254,7 +255,6 @@
             Ok x state err -> let fx = f x 
                               in seq fx (Ok fx state err)
             Error err      -> Error err
-           
 
 -----------------------------------------------------------
 -- Monad: return, sequence (>>=) and fail
@@ -328,7 +328,6 @@
           other             -> other
       )
 
-
 {- 
 -- variant that favors a consumed reply over an empty one, even it is not the first alternative.
           empty@(Empty reply) -> case reply of
@@ -342,6 +341,18 @@
                                        consumed    -> consumed
           consumed  -> consumed
 -}
+
+-----------------------------------------------------------
+-- Bonus instances
+-----------------------------------------------------------
+
+instance A.Applicative (GenParser tok st) where
+  pure x = return x
+  mf <*> mx = mf `ap` mx
+
+instance A.Alternative (GenParser tok st) where
+  empty = mzero
+  ma <|> mb = ma `mplus` mb
 
 
 -- | The parser @try p@ behaves like parser @p@, except that it
diff --git a/parsec2.cabal b/parsec2.cabal
--- a/parsec2.cabal
+++ b/parsec2.cabal
@@ -1,11 +1,12 @@
 cabal-version: >= 1.2
 name:		parsec2
-version:	1.0.0
+version:	1.0.1
 license:	BSD3
 license-file:	LICENSE
 author:		Daan Leijen <daan@cs.uu.nl>
 maintainer:	Antoine Latter <aslatter@gmail.com>
-homepage:	http://www.cs.uu.nl/~daan/parsec.html
+homepage:	https://github.com/aslatter/parsec2
+bug-reports:    https://github.com/aslatter/parsec2/issues
 category:	Parsing
 synopsis:	Monadic parser combinators
 description:
@@ -17,8 +18,9 @@
     This package is a maintained fork of version 2.1 of the parsec
     package, intended to preserve its simplicity and portability.
 build-type:     Simple
-extra-source-files: CHANGELOG
+extra-source-files: CHANGES.md
 cabal-version:      >= 1.6
+tested-with:    GHC >= 7.6 && < 7.11
 library {
   exposed-modules:
     Text.ParserCombinators.Parsec.Error,
@@ -39,11 +41,6 @@
   }
 }
 source-repository head {
-  type:     darcs
-  location: http://code.haskell.org/parsec2/parsec2
-}
-source-repository this {
-  type:     darcs
-  location: http://code.haskell.org/parsec2/parsec2
-  tag:      1.0.0
+  type:     git
+  location: https://github.com/aslatter/parsec2
 }
