diff --git a/FormalGrammars.cabal b/FormalGrammars.cabal
--- a/FormalGrammars.cabal
+++ b/FormalGrammars.cabal
@@ -1,7 +1,7 @@
 name:           FormalGrammars
-version:        0.3.1.0
-author:         Christian Hoener zu Siederdissen, 2013-2016
-copyright:      Christian Hoener zu Siederdissen, 2013-2016
+version:        0.3.1.1
+author:         Christian Hoener zu Siederdissen, 2013-2017
+copyright:      Christian Hoener zu Siederdissen, 2013-2017
 homepage:       https://github.com/choener/FormalGrammars
 bug-reports:    https://github.com/choener/FormalGrammars/issues
 maintainer:     choener@bioinf.uni-leipzig.de
@@ -11,7 +11,7 @@
 build-type:     Simple
 stability:      experimental
 cabal-version:  >= 1.10.0
-tested-with:    GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1
+tested-with:    GHC == 7.10.3, GHC == 8.0.1
 synopsis:       (Context-free) grammars in formal language theory
 description:
                 <http://www.bioinf.uni-leipzig.de/Software/gADP/ generalized Algebraic Dynamic Programming>
@@ -69,24 +69,24 @@
 
 library
   build-depends: base                  >= 4.7     && < 5.0
-               , ansi-wl-pprint        >= 0.6.7   && < 0.6.8
-               , bytestring            >= 0.10    && < 0.11
+               , ansi-wl-pprint        >= 0.6.7
+               , bytestring            >= 0.10
                , containers
-               , data-default          >= 0.5     && < 0.7
-               , HaTeX                 >= 3.16    && < 4.0
-               , lens                  >= 4.0     && < 5.0
-               , mtl                   >= 2.0     && < 3.0
-               , parsers               >= 0.12    && < 0.13
-               , semigroups            >= 0.16    && < 0.19
+               , data-default          >= 0.5
+               , HaTeX                 >= 3.16
+               , lens                  >= 4.0
+               , mtl                   >= 2.0
+               , parsers               >= 0.12
+               , semigroups            >= 0.16
                , template-haskell
-               , text                  >= 1.0     && < 1.3
-               , transformers          >= 0.3     && < 0.6
-               , trifecta              >= 1.6     && < 1.7
-               , unordered-containers  >= 0.2     && < 0.3
-               , vector                >= 0.10    && < 0.12
+               , text                  >= 1.0
+               , transformers          >= 0.3
+               , trifecta              >= 1.6
+               , unordered-containers  >= 0.2
+               , vector                >= 0.10
                --
                , ADPfusion             == 0.5.2.*
-               , PrimitiveArray        == 0.7.1.*
+               , PrimitiveArray        == 0.8.0.*
   exposed-modules:
     FormalLanguage
     FormalLanguage.CFG
@@ -136,9 +136,10 @@
 executable GrammarPP
   build-depends: base
                , ansi-wl-pprint
-               , cmdargs          >= 0.10   && < 0.11
-               , FormalGrammars
+               , cmdargs          >= 0.10
                , trifecta
+               --
+               , FormalGrammars
   hs-source-dirs:
     src
   default-language:
@@ -155,11 +156,12 @@
     buildable:
       True
     build-depends: base
+                 , template-haskell
+                 , vector
+                 --
                  , ADPfusion
                  , FormalGrammars
                  , PrimitiveArray
-                 , template-haskell
-                 , vector
   else
     buildable:
       False
@@ -197,12 +199,13 @@
     buildable:
       True
     build-depends: base
-                 , ADPfusion
                  , containers
-                 , FormalGrammars
-                 , PrimitiveArray
                  , template-haskell
                  , vector
+                 --
+                 , ADPfusion
+                 , FormalGrammars
+                 , PrimitiveArray
   else
     buildable:
       False
@@ -241,12 +244,13 @@
     buildable:
       True
     build-depends: base
-                 , ADPfusion
                  , containers
-                 , FormalGrammars
-                 , PrimitiveArray
                  , template-haskell
                  , vector
+                 --
+                 , ADPfusion
+                 , FormalGrammars
+                 , PrimitiveArray
   else
     buildable:
       False
@@ -277,6 +281,31 @@
       -ddump-simpl
       -ddump-stg
       -dsuppress-all
+
+
+
+test-suite properties
+  type:
+    exitcode-stdio-1.0
+  main-is:
+    properties.hs
+  ghc-options:
+    -threaded -rtsopts -with-rtsopts=-N
+  hs-source-dirs:
+    tests
+  default-language:
+    Haskell2010
+  default-extensions: CPP
+                    , TemplateHaskell
+  build-depends: base
+               , QuickCheck
+               , smallcheck
+               , tasty              >= 0.11
+               , tasty-quickcheck   >= 0.8
+               , tasty-smallcheck   >= 0.8
+               , tasty-th           >= 0.1
+               --
+               , FormalGrammars
 
 
 
diff --git a/FormalLanguage/CFG/TH.hs b/FormalLanguage/CFG/TH.hs
--- a/FormalLanguage/CFG/TH.hs
+++ b/FormalLanguage/CFG/TH.hs
@@ -292,7 +292,7 @@
         where go acc Deletion = [| $(acc) ADP.:| ADP.Deletion |]
               go acc sv
                 | Just n <- M.lookup (Symbol [sv]) synNames = [| $(acc) ADP.:| $(varE n) |]
-                | otherwise = error $ "genSymbol:stacked: " ++ show s
+                | otherwise = error $ "genSymbol:stacked: " ++ show (s,synTermNames)
       -- | catch-all error
       genSymbol s = error $ "genSymbol: " ++ show s
   let rhs = assert (not $ null rs) $ foldl1 (\acc z -> uInfixE acc (varE '(%)) z) . map genSymbol $ rs
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,8 @@
+0.3.1.1
+-------
+
+- removed most upper bounds, and version bumped stuff
+
 0.3.1.0
 -------
 
diff --git a/tests/properties.hs b/tests/properties.hs
new file mode 100644
--- /dev/null
+++ b/tests/properties.hs
@@ -0,0 +1,14 @@
+
+module Main where
+
+import Test.Tasty
+import Test.Tasty.TH
+
+
+
+main :: IO ()
+main = do
+  defaultMain $ testGroup ""
+    [
+    ]
+
