diff --git a/Numeric/AD/Internal/Sparse.hs b/Numeric/AD/Internal/Sparse.hs
--- a/Numeric/AD/Internal/Sparse.hs
+++ b/Numeric/AD/Internal/Sparse.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE BangPatterns, TemplateHaskell, TypeFamilies, TypeOperators, FlexibleContexts, UndecidableInstances, DeriveDataTypeable, MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
 module Numeric.AD.Internal.Sparse 
     ( Index(..)
     , emptyIndex
diff --git a/Numeric/AD/Internal/Tensors.hs b/Numeric/AD/Internal/Tensors.hs
--- a/Numeric/AD/Internal/Tensors.hs
+++ b/Numeric/AD/Internal/Tensors.hs
@@ -22,7 +22,11 @@
 import Data.Foldable
 import Data.Traversable
 import Data.Monoid
+#if __GLASGOW_HASKELL__ < 704
 import Data.Typeable (Typeable1(..), TyCon, mkTyCon, mkTyConApp)
+#else
+import Data.Typeable (Typeable1(..), TyCon, mkTyCon3, mkTyConApp)
+#endif
 import Control.Comonad.Cofree
 
 infixl 3 :-
@@ -73,5 +77,9 @@
               asArgsType = const
 
 tensorsTyCon :: TyCon
+#if __GLASGOW_HASKELL__ < 704
 tensorsTyCon = mkTyCon "Numeric.AD.Internal.Tensors.Tensors"
+#else
+tensorsTyCon = mkTyCon3 "ad" "Numeric.AD.Internal.Tensors" "Tensors"
+#endif
 {-# NOINLINE tensorsTyCon #-}
diff --git a/Numeric/AD/Internal/Tower.hs b/Numeric/AD/Internal/Tower.hs
--- a/Numeric/AD/Internal/Tower.hs
+++ b/Numeric/AD/Internal/Tower.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE Rank2Types, TypeFamilies, FlexibleContexts, UndecidableInstances, TemplateHaskell, DeriveDataTypeable #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
 -- {-# OPTIONS_HADDOCK hide, prune #-}
 -----------------------------------------------------------------------------
 -- |
diff --git a/ad.cabal b/ad.cabal
--- a/ad.cabal
+++ b/ad.cabal
@@ -1,5 +1,5 @@
 name:         ad
-version:      1.3.0.1
+version:      1.3.1
 license:      BSD3
 license-File: LICENSE
 copyright:    (c) Edward Kmett 2010-2011,
@@ -136,7 +136,7 @@
     containers       >= 0.2     && < 0.5,
     array            >= 0.2     && < 0.5,
     comonad          >= 1.1.1.1 && < 1.2,
-    free             >= 2.0     && < 2.1,
+    free             >= 2.0     && < 2.2,
     template-haskell >= 2.6     && < 2.8
 
   exposed-modules:
