diff --git a/Control/Monad/Conc/Class.hs b/Control/Monad/Conc/Class.hs
--- a/Control/Monad/Conc/Class.hs
+++ b/Control/Monad/Conc/Class.hs
@@ -642,7 +642,7 @@
 INSTANCE(RL.RWST r w s, (MonadConc m, Monoid w), (\(a,_,_) -> a))
 INSTANCE(RS.RWST r w s, (MonadConc m, Monoid w), (\(a,_,_) -> a))
 
-#undef INSTANC
+#undef INSTANCE
 
 -------------------------------------------------------------------------------
 
@@ -653,7 +653,12 @@
 makeTransConc unstN = do
   unstI <- reify unstN
   case unstI of
+#if MIN_VERSION_template_haskell(2,11,0)
+    -- template-haskell-2.11.0.0 drops the 'Fixity' value from 'VarI'
+    VarI _ (ForallT _ _ (AppT (AppT ArrowT (AppT (AppT (ConT _) t) _)) _)) _ ->
+#else
     VarI _ (ForallT _ _ (AppT (AppT ArrowT (AppT (AppT (ConT _) t) _)) _)) _ _ ->
+#endif
       [d|
         instance (MonadConc m) => MonadConc ($(pure t) m) where
           type STM      ($(pure t) m) = STM m
diff --git a/Control/Monad/STM/Class.hs b/Control/Monad/STM/Class.hs
--- a/Control/Monad/STM/Class.hs
+++ b/Control/Monad/STM/Class.hs
@@ -146,7 +146,7 @@
 INSTANCE(RL.RWST r w s, (MonadSTM stm, Monoid w), (\(a,_,_) -> a))
 INSTANCE(RS.RWST r w s, (MonadSTM stm, Monoid w), (\(a,_,_) -> a))
 
-#undef INSTANC
+#undef INSTANCE
 
 -------------------------------------------------------------------------------
 
@@ -157,7 +157,12 @@
 makeTransSTM unstN = do
   unstI <- reify unstN
   case unstI of
+#if MIN_VERSION_template_haskell(2,11,0)
+    -- template-haskell-2.11.0.0 drops the 'Fixity' value from 'VarI'
+    VarI _ (ForallT _ _ (AppT (AppT ArrowT (AppT (AppT (ConT _) t) _)) _)) _ ->
+#else
     VarI _ (ForallT _ _ (AppT (AppT ArrowT (AppT (AppT (ConT _) t) _)) _)) _ _ ->
+#endif
       [d|
         instance (MonadSTM stm, MonadTransControl $(pure t)) => MonadSTM ($(pure t) stm) where
           type TVar ($(pure t) stm) = TVar stm
diff --git a/Test/DejaFu/Deterministic/Internal.hs b/Test/DejaFu/Deterministic/Internal.hs
--- a/Test/DejaFu/Deterministic/Internal.hs
+++ b/Test/DejaFu/Deterministic/Internal.hs
@@ -226,6 +226,13 @@
 
   where
     -- | Start a new thread, assigning it the next 'ThreadId'
+    --
+    -- Explicit type signature needed for GHC 8. Looks like the
+    -- impredicative polymorphism checks got stronger.
+    stepFork :: String
+             -> ((forall b. M n r s b -> M n r s b) -> Action n r s)
+             -> (ThreadId -> Action n r s)
+             -> n (Either Failure (Threads n r s, IdSource, ThreadAction, WriteBuffer r, Int))
     stepFork n a b = return $ Right (goto (b newtid) tid threads', idSource', Fork newtid, wb, caps) where
       threads' = launch tid newtid a threads
       (idSource', newtid) = nextTId n idSource
diff --git a/dejafu.cabal b/dejafu.cabal
--- a/dejafu.cabal
+++ b/dejafu.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                dejafu
-version:             0.3.1.0
+version:             0.3.1.1
 synopsis:            Overloadable primitives for testable, potentially non-deterministic, concurrency.
 
 description:
@@ -75,7 +75,7 @@
 source-repository this
   type:     git
   location: https://github.com/barrucadu/dejafu.git
-  tag:      dejafu-0.3.1.0
+  tag:      dejafu-0.3.1.1
 
 library
   exposed-modules:     Control.Monad.Conc.Class
@@ -109,21 +109,21 @@
 
   -- other-modules:       
   -- other-extensions:    
-  build-depends:       base >=4.5 && <5
-                     , array
-                     , atomic-primops
-                     , containers
-                     , dpor
-                     , deepseq
-                     , exceptions >=0.7
-                     , monad-control
-                     , monad-loops
-                     , mtl
-                     , semigroups
-                     , stm
-                     , template-haskell
-                     , transformers
-                     , transformers-base
+  build-depends:       base              >=4.8  && <5
+                     , array             >=0.5  && <0.6
+                     , atomic-primops    >=0.8  && <0.9
+                     , containers        >=0.5  && <0.6
+                     , dpor              >=0.1  && <0.2
+                     , deepseq           >=1.3  && <1.5
+                     , exceptions        >=0.7  && <0.9
+                     , monad-control     >=1.0  && <1.1
+                     , monad-loops       >=0.4  && <0.5
+                     , mtl               >=2.2  && <2.3
+                     , semigroups        >=0.16 && <0.19
+                     , stm               >=2.4  && <2.5
+                     , template-haskell  >=2.10 && <2.12
+                     , transformers      >=0.4  && <0.6
+                     , transformers-base >=0.4  && <0.5
   -- hs-source-dirs:      
   default-language:    Haskell2010
   ghc-options:         -Wall
