diff --git a/Language/Unlambda.hs b/Language/Unlambda.hs
--- a/Language/Unlambda.hs
+++ b/Language/Unlambda.hs
@@ -28,7 +28,9 @@
 #if !MIN_VERSION_base(4,6,0)
 import Prelude hiding(catch)
 #endif
+import Control.Applicative
 import Control.Exception (catch, IOException)
+import Control.Monad (liftM, ap)
 
 ------------------------------------------------------------------------
 -- Abstract syntax
@@ -84,6 +86,16 @@
 newtype Eval a = Eval ((Maybe Char, Int) -> Cont a -> IO Exp)
 
 type Cont a = (Maybe Char, Int) -> a -> IO Exp
+
+instance Functor Eval where
+
+  fmap = liftM
+
+instance Applicative Eval where
+
+  pure = return
+
+  (<*>) = ap
 
 instance Monad Eval where
 
diff --git a/unlambda.cabal b/unlambda.cabal
--- a/unlambda.cabal
+++ b/unlambda.cabal
@@ -1,11 +1,10 @@
 name:                unlambda
-version:             0.1.3
-
+version:             0.1.4
 license:             GPL
 license-file:        LICENSE
 author:              Ørjan Johansen <oerjan@nvg.ntnu.no>
                      Don Stewart <http://www.cse.unsw.edu.au/~dons>
--- maintainer:          Cale
+maintainer:          Nikolay Amiantov <ab@fmap.me>
 
 stability:           Stable
 category:            Compilers/Interpreters
@@ -15,7 +14,7 @@
 
 build-type:          Simple
 Cabal-Version:       >= 1.6
-tested-with:         GHC==6.8.2
+tested-with:         GHC==7.10.1
 
 source-repository head
   type:     darcs
@@ -23,7 +22,7 @@
 
 executable              unlambda
    main-is:             Main.hs
-   build-depends:       base>3 && <5, unix
+   build-depends:       base>3 && <4.9, unix
 
 library
    exposed-modules:     Language.Unlambda
