diff --git a/declarative.cabal b/declarative.cabal
--- a/declarative.cabal
+++ b/declarative.cabal
@@ -1,5 +1,5 @@
 name:                declarative
-version:             0.2.2
+version:             0.2.3
 synopsis:            DIY Markov Chains.
 homepage:            http://github.com/jtobin/declarative
 license:             MIT
@@ -60,7 +60,7 @@
   exposed-modules:
     Numeric.MCMC
   build-depends:
-      base              < 5
+      base              >= 4 && < 6
     , mcmc-types        >= 1.0.1
     , mwc-probability   >= 1.0.1
     , mighty-metropolis >= 1.0.1
@@ -79,7 +79,7 @@
   ghc-options:
     -rtsopts
   build-depends:
-      base              < 5
+      base              >= 4 && < 6
     , mwc-probability   >= 1.0.1
     , declarative
 
diff --git a/lib/Numeric/MCMC.hs b/lib/Numeric/MCMC.hs
--- a/lib/Numeric/MCMC.hs
+++ b/lib/Numeric/MCMC.hs
@@ -86,7 +86,6 @@
   , RealWorld
   ) where
 
-import Control.Lens hiding (index)
 import Control.Monad.Primitive (PrimMonad, PrimState, RealWorld)
 import Control.Monad.Trans.State.Strict (execStateT)
 import Data.Sampling.Types
@@ -95,7 +94,7 @@
 import Numeric.MCMC.Slice hiding (mcmc)
 import Pipes hiding (next)
 import qualified Pipes.Prelude as Pipes
-import System.Random.MWC.Probability (Gen, Variate)
+import System.Random.MWC.Probability (Gen)
 import qualified System.Random.MWC.Probability as MWC
 
 -- | Deterministically concat transition operators together.
@@ -151,8 +150,7 @@
 -- 1.4541485365128892e-2,-0.4859905564050404
 -- 0.22487398491619448,-0.29769783186855125
 mcmc
-  :: (Show (t a), FoldableWithIndex (Index (t a)) t, Ixed (t a),
-     Num (IxValue (t a)), Variate (IxValue (t a)))
+  :: Show (t a)
   => Int
   -> t a
   -> Transition IO (Chain (t a) b)
