diff --git a/prolog.cabal b/prolog.cabal
--- a/prolog.cabal
+++ b/prolog.cabal
@@ -1,11 +1,10 @@
 Name:                prolog
-Version:             0.2.0.1
+Version:             0.2.1
 Synopsis:            A Prolog interpreter written in Haskell.
-Description:         A Prolog interpreter written in Haskell.
+Description:         A Prolog interpreter written in Haskell. Implements a subset of the Prolog language.
 License:             PublicDomain
 Author:              Matthias Bartsch
-Maintainer:          none
-Homepage:            https://github.com/Erdwolf/prolog
+Maintainer:          Marcel Fourné (haskell@marcelfourne.de)
 Category:            Language
 Build-type:          Simple
 Cabal-version:       >=1.6
@@ -29,8 +28,12 @@
     parsec >= 3.1.1,
     syb >= 0.3,
     mtl >= 2.0.1.0,
-    containers >=0.4 && <0.5,
+    containers,
 
     template-haskell,
     th-lift >=0.5.3,
     transformers >=0.2.2.0
+
+source-repository head
+  type: git
+  location: https://github.com/mfourne/prolog
diff --git a/src/Interpreter.hs b/src/Interpreter.hs
--- a/src/Interpreter.hs
+++ b/src/Interpreter.hs
@@ -11,7 +11,7 @@
 import Control.Monad.Error
 import Data.Maybe (isJust)
 import Data.Generics (everywhere, mkT)
-import Control.Applicative ((<$>),(<*>),(<$),(<*), Applicative(..))
+import Control.Applicative ((<$>),(<*>),(<$),(<*), Applicative(..), Alternative)
 import Data.List (sort, nub)
 
 import Syntax
@@ -110,7 +110,7 @@
    trace x = lift (trace x)
 
 
-newtype Trace m a = Trace { withTrace :: m a }  deriving (Functor, Monad, MonadError e)
+newtype Trace m a = Trace { withTrace :: m a }  deriving (Functor, Applicative, Monad, MonadError e)
 
 trace_ label x = trace (label++":\t"++show x)
 
@@ -126,7 +126,7 @@
    markCutBranches = lift . markCutBranches
 
 
-newtype NoGraphT m a = NoGraphT {runNoGraphT :: m a} deriving (Monad, Functor, MonadFix, MonadPlus, Applicative, MonadError e)
+newtype NoGraphT m a = NoGraphT {runNoGraphT :: m a} deriving (Monad, Functor, MonadFix, Alternative, MonadPlus, Applicative, MonadError e)
 instance MonadTrans NoGraphT where
    lift = NoGraphT
 
