diff --git a/opentheory-parser.cabal b/opentheory-parser.cabal
--- a/opentheory-parser.cabal
+++ b/opentheory-parser.cabal
@@ -1,5 +1,5 @@
 name: opentheory-parser
-version: 1.155
+version: 1.156
 category: Parsing
 synopsis: Stream parsers
 license: MIT
@@ -10,32 +10,27 @@
 maintainer: Joe Leslie-Hurd <joe@gilith.com>
 description:
   Stream parsers - this package was automatically generated from the
-  OpenTheory package parser-1.155
+  OpenTheory package parser-1.156
 
 library
   build-depends:
     base >= 4.0 && < 5.0,
     QuickCheck >= 2.4.0.1 && < 3.0,
-    opentheory-primitive >= 1.3 && < 2.0,
-    opentheory >= 1.195 && < 1.196
-
+    opentheory-primitive >= 1.4 && < 2.0,
+    opentheory >= 1.195 && < 1.197
   hs-source-dirs: src
-
   ghc-options: -Wall
-
   exposed-modules:
-    OpenTheory.Parser
+    OpenTheory.Parser,
     OpenTheory.Parser.Stream
 
-executable opentheory-parser-test
+test-suite opentheory-parser-test
+  type: exitcode-stdio-1.0
   build-depends:
     base >= 4.0 && < 5.0,
     QuickCheck >= 2.4.0.1 && < 3.0,
-    opentheory-primitive >= 1.3 && < 2.0,
-    opentheory >= 1.195 && < 1.196
-
-  hs-source-dirs: src, testsrc
-
+    opentheory-primitive >= 1.4 && < 2.0,
+    opentheory >= 1.195 && < 1.197
+  hs-source-dirs: src
   ghc-options: -Wall
-
-  main-is: Main.hs
+  main-is: Test.hs
diff --git a/src/Test.hs b/src/Test.hs
new file mode 100644
--- /dev/null
+++ b/src/Test.hs
@@ -0,0 +1,29 @@
+{- |
+module: Main
+description: Stream parsers - testing
+license: MIT
+
+maintainer: Joe Leslie-Hurd <joe@gilith.com>
+stability: provisional
+portability: portable
+-}
+module Main
+  ( main )
+where
+
+import qualified OpenTheory.List as List
+import qualified OpenTheory.Parser.Stream as Stream
+import OpenTheory.Primitive.Test
+
+proposition0 :: [Bool] -> Bool
+proposition0 l = Stream.toList (Stream.fromList l) == (l, False)
+
+proposition1 :: Stream.Stream Bool -> Bool
+proposition1 xs =
+  Stream.lengthStream xs == List.naturalLength (fst (Stream.toList xs))
+
+main :: IO ()
+main =
+    do check "Proposition 0:\n  !l. toList (fromList l) = (l, F)\n  " proposition0
+       check "Proposition 1:\n  !xs. length xs = length (fst (toList xs))\n  " proposition1
+       return ()
diff --git a/testsrc/Main.hs b/testsrc/Main.hs
deleted file mode 100644
--- a/testsrc/Main.hs
+++ /dev/null
@@ -1,29 +0,0 @@
-{- |
-module: Main
-description: Stream parsers - testing
-license: MIT
-
-maintainer: Joe Leslie-Hurd <joe@gilith.com>
-stability: provisional
-portability: portable
--}
-module Main
-  ( main )
-where
-
-import qualified OpenTheory.List as List
-import qualified OpenTheory.Parser.Stream as Stream
-import OpenTheory.Primitive.Test
-
-proposition0 :: [Bool] -> Bool
-proposition0 l = Stream.toList (Stream.fromList l) == (l, False)
-
-proposition1 :: Stream.Stream Bool -> Bool
-proposition1 xs =
-  Stream.lengthStream xs == List.naturalLength (fst (Stream.toList xs))
-
-main :: IO ()
-main =
-    do check "Proposition 0:\n  !l. toList (fromList l) = (l, F)\n  " proposition0
-       check "Proposition 1:\n  !xs. length xs = length (fst (toList xs))\n  " proposition1
-       return ()
