diff --git a/binembed.cabal b/binembed.cabal
--- a/binembed.cabal
+++ b/binembed.cabal
@@ -1,5 +1,5 @@
 Name:                binembed
-Version:             0.1.0.2
+Version:             0.1.0.3
 Synopsis:            Embed data into object files.
 Description:         Given a list of files and directories to include,
                      binembed generates assembly source to include the data
@@ -9,7 +9,7 @@
                      .
                      See the package 'binembed-example' for a concrete
                      example.
-Homepage:            http://gitorious.org/binembed
+Homepage:            http://code.mathr.co.uk/binembed
 License:             BSD3
 License-file:        LICENSE
 Author:              Claude Heiland-Allen
@@ -20,31 +20,29 @@
 Extra-source-files:  include/binembed.h
 
 Library
-  Build-depends:     base >= 4 && < 5,
+  Build-depends:     base >= 4 && < 4.9,
                      bytestring >= 0.9 && < 0.11,
-                     Cabal >= 1.8 && < 1.17
+                     Cabal >= 1.8 && < 1.23
   Exposed-modules:   Data.BinEmbed
                      Distribution.Simple.BinEmbed
   include-dirs:      include
   install-includes:  binembed.h
   GHC-options:       -Wall
-  GHC-prof-options:  -prof -auto-all
 
 Executable binembed
-  Build-depends:     base >= 4 && < 5,
-                     containers >= 0 && < 1,
-                     directory >= 1 && < 2,
-                     dlist >= 0.4 && < 0.5,
-                     filepath >= 1 && < 2
+  Build-depends:     base >= 4 && < 4.9,
+                     containers >= 0 && < 0.6,
+                     directory >= 1 && < 1.3,
+                     dlist >= 0.4 && < 0.8,
+                     filepath >= 1 && < 1.5
   Main-is:           src/binembed.hs
   GHC-options:       -Wall
-  GHC-prof-options:  -prof -auto-all
 
 Source-repository head
   type:     git
-  location: git://gitorious.org/binembed/binembed.git
+  location: http://code.mathr.co.uk/binembed.git
 
 Source-repository this
   type:     git
-  location: git://gitorious.org/binembed/binembed.git
-  tag:      v0.1.0.2
+  location: http://code.mathr.co.uk/binembed.git
+  tag:      v0.1.0.3
diff --git a/src/binembed.hs b/src/binembed.hs
--- a/src/binembed.hs
+++ b/src/binembed.hs
@@ -1,3 +1,4 @@
+import Control.Monad (ap, liftM)
 import Data.Char (ord, toUpper, toLower)
 import Data.DList (DList, fromList, toList)
 import Data.List (intercalate, isSuffixOf)
@@ -54,6 +55,13 @@
 
 data Env = Env{ eCHName, eCCName, eCInclude, eHSName :: String, eAlignment :: Int, eTextExts :: [String] }
 data CodeGen a = CodeGen{ runCodeGen :: Env -> (a, Output) }
+
+instance Functor CodeGen where
+  fmap = liftM
+
+instance Applicative CodeGen where
+  pure = return
+  (<*>) = ap
 
 instance Monad CodeGen where
   return a = CodeGen $ \_e -> (a, mempty)
