diff --git a/Harp/Match.hs b/Harp/Match.hs
--- a/Harp/Match.hs
+++ b/Harp/Match.hs
@@ -12,6 +12,8 @@
 -- using a Match monad for parsing lists.
 -----------------------------------------------------------------------------
 
+{-# LANGUAGE CPP #-}
+
 module Harp.Match (
         Match           -- Match e a
         , runMatch      -- Match e a -> [e] -> Maybe a
@@ -23,6 +25,9 @@
         , (+++)
         ) where
 
+#if MIN_VERSION_base(4,8,0)
+import Control.Monad (ap, liftM)
+#endif
 import Data.List (unzip3, unzip4, unzip5, unzip6, unzip7)
 
 --------------------------------------------------------------
@@ -34,6 +39,15 @@
 (Match f) +++ (Match g) = Match (\es -> let aes1 = f es
                                             aes2 = g es
                                          in aes1 ++ aes2)
+
+#if MIN_VERSION_base(4,8,0)
+instance Applicative (Match e) where
+   (<*>) = ap
+   pure = return
+
+instance Functor (Match e) where
+   fmap = liftM
+#endif
 
 instance Monad (Match e) where
   return x = Match (\es -> [(x, es)])
diff --git a/harp.cabal b/harp.cabal
--- a/harp.cabal
+++ b/harp.cabal
@@ -1,9 +1,9 @@
 Name:                   harp
-Version:                0.4
+Version:                0.4.1
 License:                BSD3
 License-File:           LICENSE
 Author:                 Niklas Broberg
-Maintainer:             Niklas Broberg <nibro@cs.chalmers.se>
+Maintainer:             David Fox <dsf@seereason.com>
 
 Stability:              Experimental
 Category:               Language
@@ -17,9 +17,9 @@
                         HaRP as a pre-processor to ordinary Haskell.
                         .
                         For details on usage, please see the website.
-Homepage:               http://www.cs.chalmers.se/~d00nibro/harp/
+Homepage:               https://github.com/seereason/harp
 
-Build-Depends:          base
+Build-Depends:          base < 4.9
 Build-Type:             Simple
 Tested-With:            GHC==6.8.3
 
