diff --git a/polynomial.cabal b/polynomial.cabal
--- a/polynomial.cabal
+++ b/polynomial.cabal
@@ -1,8 +1,8 @@
 name:                   polynomial
-version:                0.7.2
+version:                0.7.3
 stability:              provisional
 
-cabal-version:          >= 1.6
+cabal-version:          >= 1.8
 build-type:             Simple
 
 author:                 James Cook <mokus@deepbondi.net>
@@ -16,6 +16,11 @@
                         for manipulating and evaluating them, and several
                         interesting polynomial sequences.
 
+tested-with:            GHC == 7.8.4,
+                        GHC == 7.10.3,
+                        GHC == 8.0.2,
+                        GHC == 8.1.*
+
 source-repository head
   type: git
   location: git://github.com/mokus0/polynomial.git
@@ -51,3 +56,18 @@
     build-depends:      pretty < 1.1.2, prettyclass
   else
     build-depends:      pretty >= 1.1.2
+
+Test-Suite polynomial-test
+  type:                 exitcode-stdio-1.0
+  hs-source-dirs:       test
+  main-is:              Tests.hs
+  
+  build-depends:        base >= 3 && <5, 
+                        HUnit == 1.2.*,
+                        polynomial,
+                        QuickCheck >= 2, 
+                        test-framework, 
+                        test-framework-hunit,
+                        test-framework-quickcheck2,
+                        vector,
+                        vector-space
diff --git a/src/Data/VectorSpace/WrappedNum.hs b/src/Data/VectorSpace/WrappedNum.hs
--- a/src/Data/VectorSpace/WrappedNum.hs
+++ b/src/Data/VectorSpace/WrappedNum.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE TemplateHaskell, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, FlexibleContexts #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE RankNTypes #-}
 module Data.VectorSpace.WrappedNum
   (WrappedNum(..)) where
 
@@ -19,7 +20,7 @@
         , Floating, RealFloat)
 
 derivingUnbox "Wrapped"
-    [t| (U.Unbox a) => WrappedNum a -> a |] [| unwrapNum |] [| \ a -> WrapNum a |]
+    [t| forall a. (U.Unbox a) => WrappedNum a -> a |] [| unwrapNum |] [| \ a -> WrapNum a |]
 
 instance Num a => AdditiveGroup (WrappedNum a) where
     zeroV = 0
diff --git a/test/Tests.hs b/test/Tests.hs
new file mode 100644
--- /dev/null
+++ b/test/Tests.hs
@@ -0,0 +1,16 @@
+#!/usr/bin/env runhaskell
+module Main where
+
+import Test.Framework (defaultMain, testGroup)
+
+import Tests.Core
+import Tests.Bernstein
+import Tests.Chebyshev
+import Tests.Hermite
+
+main = defaultMain 
+    [ testGroup "Math.Polynomial"           coreTests
+    , testGroup "Math.Polynomial.Bernstein" bernsteinTests
+    , testGroup "Math.Polynomial.Chebyshev" chebyshevTests
+    , testGroup "Math.Polynomial.Hermite"   hermiteTests
+    ]
