diff --git a/Text/Parsers/Frisby.hs b/Text/Parsers/Frisby.hs
--- a/Text/Parsers/Frisby.hs
+++ b/Text/Parsers/Frisby.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE MagicHash, DoRec, RankNTypes, EmptyDataDecls, GADTs,
+{-# LANGUAGE MagicHash, RecursiveDo, RankNTypes, EmptyDataDecls, GADTs,
              GeneralizedNewtypeDeriving, PatternGuards #-}
 -- for the exported rank-2 type of runPeg,
 -- as well as the implementation using GADTs, generalised newtype deriving,
@@ -182,7 +182,7 @@
 import Data.Char(ord,chr)
 import Control.Monad.State
 import Data.Array hiding((//))
-import Data.Monoid hiding(Any)
+import Data.Monoid hiding(Any,(<>))
 import qualified Data.Map as Map
 
 --inline usable part of Unsafe.Coerce until that module is commonly available
@@ -247,6 +247,10 @@
 newtype PM s a = PM (PMImp a)
     deriving(Monad,MonadFix,Functor)
 
+instance Applicative (PM s) where
+  (<*>) = ap
+  pure = return
+
 type PMImp a = State Token a
 
 
@@ -809,7 +813,3 @@
 -- | Make a new regex but abort on an error in the regex string itself.
 regex :: String -> PM s (P s String)
 regex s = runIdentity (newRegex s)
-
-
-
-
diff --git a/frisby.cabal b/frisby.cabal
--- a/frisby.cabal
+++ b/frisby.cabal
@@ -1,14 +1,15 @@
 name:                frisby
-version:             0.1
-cabal-version:       >=1.1.6
+version:             0.2
+cabal-version:       >=1.6
 license:             BSD3
 copyright:           John Meacham (2006)
 author:              John Meacham <john@repetae.net>
-maintainer:          John Meacham <john@repetae.net>
+maintainer:          John Meacham <john@repetae.net>, Chris Done <chrisdone@gmail.com>
 stability:           experimental
 homepage:            http://repetae.net/computer/frisby/
+homepage:            http://repetae.net/computer/frisby/
 package-url:         http://repetae.net/repos/frisby
-synopsis:            Linear time composable parser for PEG grammars.
+synopsis:            Linear time composable parser for PEG grammars
 description:         frisby is a parser library that can parse arbitrary PEG
                      grammars in linear time. Unlike other parsers of PEG grammars,
                      frisby need not be supplied with all possible rules up front,
@@ -22,8 +23,14 @@
                      In addition to many standard combinators, frisby provides
                      routines to translate standard regex syntax into frisby parsers.
 category:            Text
-tested-with:         GHC==6.12.1
-exposed-modules:     Text.Parsers.Frisby, Text.Parsers.Frisby.Char
-build-type:          Simple
-build-depends:       base>=4 && <5, containers, mtl, array
+tested-with:         GHC==7.6
 license-file:        LICENSE
+build-type:          Simple
+
+library
+  exposed-modules:     Text.Parsers.Frisby, Text.Parsers.Frisby.Char
+  build-depends:       base>=4 && <5, containers, mtl, array
+
+source-repository head
+  type:     git
+  location: https://github.com/chrisdone/frisby
