diff --git a/Agata.cabal b/Agata.cabal
--- a/Agata.cabal
+++ b/Agata.cabal
@@ -1,5 +1,5 @@
 Name:		Agata
-version:	0.2.1
+version:	0.2.1.1
 cabal-Version:  >= 1.6
 build-type:     Simple
 license:        BSD3
@@ -16,10 +16,10 @@
 Library
   Build-Depends: 
     mtl, base>=4&&<5, 
-    template-haskell<2.5, 
-    QuickCheck>=2.1&&<2.2, 
+    template-haskell<2.8, 
+    QuickCheck>=2.1&&<2.6, 
     containers, 
-    tagged==0.0
+    tagged>=0.4.2.1&&<1
   Exposed-modules:
     Test.Agata,
     Test.AgataTH,
diff --git a/Test/Agata/Common.hs b/Test/Agata/Common.hs
--- a/Test/Agata/Common.hs
+++ b/Test/Agata/Common.hs
@@ -11,37 +11,6 @@
 
 type Dimension a = Tagged a Int
 
-instance Num b => Num (Tagged a b) where
-  (+) = liftM2 (+)
-  (*) = liftM2 (*)
-  (-) = liftM2 (-)
-  negate = liftM negate
-  abs = liftM abs
-  signum = liftM signum
-  fromInteger = return . fromInteger
-
-instance Real b => Real (Tagged a b) where
-  toRational = toRational . unTagged
-
-instance Integral b => Integral (Tagged a b) where
-  quot = liftM2 quot
-  rem = liftM2 rem
-  div = liftM2 div
-  mod = liftM2 mod
-  quotRem a b = unTagged $ liftM2 quotRem a b >>= \(x,y) -> return (return x,return y)
-  divMod a b = unTagged $ liftM2 divMod a b >>= \(x,y) -> return (return x,return y)
-  toInteger = toInteger . unTagged
-
-instance Enum b => Enum (Tagged a b) where
-  succ = liftM succ
-  pred = liftM pred
-  toEnum = return . toEnum
-  fromEnum = fromEnum . unTagged
-  enumFrom = map return . unTagged . liftM enumFrom
-  enumFromThen a = map return . unTagged . liftM2 enumFromThen a
-  enumFromTo a = map return . unTagged . liftM2 enumFromTo a
-  enumFromThenTo a b = map return . unTagged . liftM3 enumFromThenTo a b
-
 taggedWith :: Tagged b a -> b -> Tagged b a
 taggedWith = const
 
