diff --git a/Control/Applicative/PhantomState.hs b/Control/Applicative/PhantomState.hs
--- a/Control/Applicative/PhantomState.hs
+++ b/Control/Applicative/PhantomState.hs
@@ -90,7 +90,7 @@
 
 instance Monad m => Applicative (PhantomStateT s m) where
   {-# INLINE pure #-}
-  pure _ = PhantomStateT return
+  pure _ = PhantomStateT pure
   {-# INLINE (<*>) #-}
   PhantomStateT f <*> PhantomStateT g = PhantomStateT (\x -> f x >>= g)
   {-# INLINE  (*>) #-}
@@ -98,3 +98,8 @@
   {-# INLINE (<*) #-}
   PhantomStateT f <*  PhantomStateT g = PhantomStateT (\x -> f x >>= g)
 
+instance (Monad m, Alternative m) => Alternative (PhantomStateT s m) where
+  {-# INLINE empty #-}
+  empty = PhantomStateT (const empty)
+  {-# INLINE (<|>) #-}
+  PhantomStateT f <|> PhantomStateT g = PhantomStateT (\x -> f x <|> g x)
diff --git a/phantom-state.cabal b/phantom-state.cabal
--- a/phantom-state.cabal
+++ b/phantom-state.cabal
@@ -1,5 +1,5 @@
 name:                phantom-state
-version:             0.2.0.2
+version:             0.2.1.0
 synopsis:            Phantom State Transformer. Like State Monad, but without values.
 description:         A monad transformer that mimics the State Monad Transformer from the
                      <http://hackage.haskell.org/package/transformers transformers> package,
@@ -22,7 +22,7 @@
 library
   exposed-modules:     Control.Applicative.PhantomState
   build-depends:       base == 4.*
-                     , transformers >= 0.3 && < 0.5
+                     , transformers >= 0.3 && < 0.6
   default-language:    Haskell2010
   ghc-options: -O2 -Wall
 
