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 pure
+  pure _ = PhantomStateT return
   {-# INLINE (<*>) #-}
   PhantomStateT f <*> PhantomStateT g = PhantomStateT (\x -> f x >>= g)
   {-# INLINE  (*>) #-}
diff --git a/bench/Main.hs b/bench/Main.hs
--- a/bench/Main.hs
+++ b/bench/Main.hs
@@ -32,8 +32,7 @@
 createVector2 :: Int -> V.Vector Int
 createVector2 n = V.create $ do
   v <- MV.unsafeNew n
-  let step = useState (\i -> MV.write v i i)
-          *> changeState (+1)
+  let loop = useAndChangeState $ \i -> MV.write v i i >> pure (i+1)
   runPhantomStateT (replicateA_ n step) 0
   return v
 
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.1.0
+version:             0.2.1.1
 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,
@@ -20,10 +20,10 @@
   location: git://github.com/Daniel-Diaz/phantom-state.git
 
 library
-  exposed-modules:     Control.Applicative.PhantomState
-  build-depends:       base == 4.*
-                     , transformers >= 0.3 && < 0.6
-  default-language:    Haskell2010
+  exposed-modules: Control.Applicative.PhantomState
+  build-depends: base >= 4.7 && < 5
+               , transformers >= 0.3 && < 0.6
+  default-language: Haskell2010
   ghc-options: -O2 -Wall
 
 benchmark phantom-state-bench
