diff --git a/current-versions.txt b/current-versions.txt
new file mode 100644
--- /dev/null
+++ b/current-versions.txt
@@ -0,0 +1,60 @@
+This package was tested to work with these dependency
+versions and compiler version.
+These are the default versions fetched by cabal install.
+Tested as of: 2014-06-14 02:31:26.107979 UTC
+Path to compiler: ghc-7.8.2
+Compiler description: 7.8.2
+
+/opt/ghc/7.8.2/lib/ghc-7.8.2/package.conf.d:
+    Cabal-1.18.1.3
+    array-0.5.0.0
+    base-4.7.0.0
+    bin-package-db-0.0.0.0
+    binary-0.7.1.0
+    rts-1.0
+    bytestring-0.10.4.0
+    containers-0.5.5.1
+    deepseq-1.3.0.2
+    directory-1.2.1.0
+    filepath-1.3.0.2
+    (ghc-7.8.2)
+    ghc-prim-0.3.1.0
+    (haskell2010-1.1.2.0)
+    (haskell98-2.0.0.3)
+    hoopl-3.10.0.1
+    hpc-0.6.0.1
+    integer-gmp-0.5.1.0
+    old-locale-1.0.0.6
+    old-time-1.1.0.2
+    pretty-1.1.1.1
+    process-1.2.0.0
+    template-haskell-2.9.0.0
+    time-1.4.2
+    transformers-0.3.0.0
+    unix-2.7.0.1
+
+/home/massysett/rainbox/sunlight-8257/db:
+    QuickCheck-2.7.5
+    ansi-terminal-0.6.1.1
+    ansi-wl-pprint-0.6.7.1
+    async-2.0.1.5
+    mtl-2.2.1
+    optparse-applicative-0.9.0
+    parsec-3.1.5
+    primitive-0.5.3.0
+    rainbow-0.14.0.2
+    rainbox-0.4.0.4
+    random-1.0.1.1
+    regex-base-0.93.2
+    regex-tdfa-1.2.0
+    stm-2.4.3
+    tagged-0.7.2
+    tasty-0.8.1.1
+    tasty-quickcheck-0.8.1
+    terminfo-0.4.0.0
+    text-1.1.1.3
+    tf-random-0.5
+    transformers-0.4.1.0
+    transformers-compat-0.3.3.4
+    unbounded-delays-0.1.0.7
+
diff --git a/minimum-versions.txt b/minimum-versions.txt
new file mode 100644
--- /dev/null
+++ b/minimum-versions.txt
@@ -0,0 +1,60 @@
+This package was tested to work with these dependency
+versions and compiler version.
+These are the minimum versions given in the .cabal file.
+Tested as of: 2014-06-14 02:31:26.107979 UTC
+Path to compiler: ghc-7.4.1
+Compiler description: 7.4.1
+
+/opt/ghc/7.4.1/lib/ghc-7.4.1/package.conf.d:
+    Cabal-1.14.0
+    array-0.4.0.0
+    base-4.5.0.0
+    bin-package-db-0.0.0.0
+    binary-0.5.1.0
+    bytestring-0.9.2.1
+    containers-0.4.2.1
+    deepseq-1.3.0.0
+    directory-1.1.0.2
+    extensible-exceptions-0.1.1.4
+    filepath-1.3.0.0
+    (ghc-7.4.1)
+    ghc-prim-0.2.0.0
+    (haskell2010-1.1.0.1)
+    (haskell98-2.0.0.1)
+    hoopl-3.8.7.3
+    hpc-0.5.1.1
+    integer-gmp-0.4.0.0
+    old-locale-1.0.0.4
+    old-time-1.1.0.0
+    pretty-1.1.1.0
+    process-1.1.0.1
+    rts-1.0
+    template-haskell-2.7.0.0
+    time-1.4
+    unix-2.5.1.0
+
+/home/massysett/rainbox/sunlight-8257/db:
+    QuickCheck-2.7
+    ansi-terminal-0.6.1.1
+    ansi-wl-pprint-0.6.7.1
+    async-2.0.1.5
+    mtl-2.1.3.1
+    optparse-applicative-0.9.0
+    parsec-3.1.5
+    primitive-0.5.3.0
+    rainbow-0.14.0.0
+    rainbox-0.4.0.4
+    random-1.0.0.0
+    regex-base-0.93.2
+    regex-tdfa-1.2.0
+    stm-2.4.3
+    tagged-0.7.2
+    tasty-0.8
+    tasty-quickcheck-0.8.1
+    terminfo-0.4.0.0
+    text-0.11.3.1
+    tf-random-0.5
+    transformers-0.3.0.0
+    transformers-compat-0.3.3.3
+    unbounded-delays-0.1.0.7
+
diff --git a/rainbox.cabal b/rainbox.cabal
--- a/rainbox.cabal
+++ b/rainbox.cabal
@@ -1,119 +1,161 @@
--- Initial rainbox.cabal generated by cabal init.  For further 
--- documentation, see http://haskell.org/cabal/users-guide/
-
-name:                rainbox
-version:             0.4.0.2
-synopsis:            Two-dimensional box pretty printing, with colors
-description:         
+-- This Cabal file generated using the Cartel library.
+-- Cartel is available at:
+-- http://www.github.com/massysett/cartel
+--
+-- Script name used to generate: genCabal.hs
+-- Generated on: 2014-06-13 22:45:04.610521 EDT
+-- Cartel library version: 0.10.0.2
+name: rainbox
+version: 0.4.0.4
+cabal-version: >= 1.14
+build-type: Simple
+license: BSD3
+license-file: LICENSE
+copyright: Copyright 2014 Omari Norman
+author: Omari Norman
+maintainer: omari@smileystation.com
+stability: Experimental
+homepage: http://www.github.com/massysett/rainbox
+bug-reports: http://www.github.com/massyett/rainbox/issues
+synopsis: Two-dimensional box pretty printing, with colors
+description:
   Prints boxes in two dimensions, with colors.  Boxes are
   automatically padded with necessary whitespace.
   .
   For more information, please see the Haddock documentation and
   .
-  <http://www.github.com/massysett/rainbox>
-
-homepage:            http://www.github.com/massysett/rainbox
-license:             BSD3
-license-file:        LICENSE
-author:              Omari Norman
-maintainer:          omari@smileystation.com
-copyright:           2014 Omari Norman
-category:            Text
-build-type:          Simple
-extra-source-files:  README.md, sunlight-test.hs, changelog
-cabal-version:       >=1.10
-tested-with: GHC ==7.4.1, GHC ==7.6.3, GHC ==7.8.2
+  <http://www.github.com/massysett/rainbox
+category: Text
+tested-with: GHC == 7.4.1, GHC == 7.6.3, GHC == 7.8.2
+extra-source-files:
+    README.md
+  , sunlight-test.hs
+  , minimum-versions.txt
+  , current-versions.txt
+  , changelog
 
 source-repository head
   type: git
-  location: https://github.com/massysett/rainbox.git
+  location: git://github.com/massysett/rainbox.git
+  branch: master
 
-library
-  ghc-options: -Wall
-  exposed-modules:     
+Flag mosaic
+  Description: Build the rainbox-mosaic executable
+  Default: False
+  Manual: True
+
+Library
+  exposed-modules:
       Rainbox
-    , Rainbox.Reader
+    , Rainbox.Array2d
     , Rainbox.Box
     , Rainbox.Box.Primitives
-    , Rainbox.Array2d
+    , Rainbox.Reader
     , Rainbox.Tutorial
-
-  build-depends:
-      base >=4.5.0.0 && < 5
-    , rainbow >= 0.14.0.0 && < 0.15
-    , text >= 0.11.3.1
-    , transformers >= 0.3.0.0
-    , array >= 0.4.0.0
-
-  hs-source-dirs: lib
-  default-language:    Haskell2010
-
-Test-Suite rainbox-visual
-  type: exitcode-stdio-1.0
-  ghc-options: -Wall
-  main-is: rainbox-visual.hs
-  hs-source-dirs: test lib
-  default-language:    Haskell2010
-  ghc-prof-options: -fprof-auto -caf-all
+  default-language: Haskell2010
+  ghc-options:
+      -Wall
+  hs-source-dirs:
+      lib
   build-depends:
-      tasty >= 0.8
-    , tasty-quickcheck >= 0.8
-    , array >= 0.4.0.0
-    , base >= 4.5.0.0 && < 5
-    , rainbow >= 0.14.0.0 && < 0.15
-    , text >= 0.11.3.1
-    , transformers >= 0.3.0.0
-    , random >= 1.0.0.0
-    , QuickCheck >= 2.6 && < 2.7
-
-  other-modules:
-      Visual
-    , Test.Rainbow.Generators
+      base ((> 4.5.0.0 || == 4.5.0.0) && < 4.8.0.0)
+    , rainbow ((> 0.14.0.0 || == 0.14.0.0) && < 0.15)
+    , text ((> 0.11.3.1 || == 0.11.3.1) && < 1.2.0.0)
+    , transformers ((> 0.3.0.0 || == 0.3.0.0) && < 0.5.0.0)
+    , array ((> 0.4.0.0 || == 0.4.0.0) && < 0.6.0.0)
 
 Executable rainbox-mosaic
-  ghc-options: -Wall
   main-is: rainbox-mosaic.hs
-  hs-source-dirs: test lib
-  default-language: Haskell2010
-  build-depends:
-      QuickCheck >= 2.6 && < 2.7
-    , base >= 4.5.0.0 && < 5
-    , random >= 1.0.0.0
-    , rainbow >= 0.14.0.0 && < 0.15
-    , text >= 0.11.3.1
-    , tasty >= 0.8
-    , tasty-quickcheck >= 0.8
-
-  if ! flag(mosaic)
+  if flag(mosaic)
+    ghc-options:
+        -Wall
+    other-modules:
+        Rainbox
+      , Rainbox.Array2d
+      , Rainbox.Box
+      , Rainbox.Box.Primitives
+      , Rainbox.Reader
+      , Rainbox.Tutorial
+      , Rainbox.Array2dTests
+      , Rainbox.Box.PrimitivesTests
+      , Rainbox.BoxDir
+      , Rainbox.BoxTests
+      , Rainbox.ReaderTests
+      , RainboxDir
+      , RainboxTests
+      , Test.Rainbow.Generators
+      , Visual
+    hs-source-dirs:
+        test
+      , lib
+    default-language: Haskell2010
+    build-depends:
+        base ((> 4.5.0.0 || == 4.5.0.0) && < 4.8.0.0)
+      , rainbow ((> 0.14.0.0 || == 0.14.0.0) && < 0.15)
+      , text ((> 0.11.3.1 || == 0.11.3.1) && < 1.2.0.0)
+      , transformers ((> 0.3.0.0 || == 0.3.0.0) && < 0.5.0.0)
+      , array ((> 0.4.0.0 || == 0.4.0.0) && < 0.6.0.0)
+    build-depends:
+        tasty ((> 0.8 || == 0.8) && < 0.9)
+      , tasty-quickcheck ((> 0.8.1 || == 0.8.1) && < 0.9)
+      , QuickCheck ((> 2.7 || == 2.7) && < 2.8)
+      , random ((> 1.0.0.0 || == 1.0.0.0) && < 1.1)
+  else
     buildable: False
 
-Flag mosaic
-  Description: Build the rainbox-mosaic executable.
-  Default: False
-
 Test-Suite rainbox-test
+  ghc-options:
+      -Wall
   type: exitcode-stdio-1.0
-  ghc-options: -Wall
-  Main-is: rainbox-test.hs
-  hs-source-dirs: test lib
-  default-language:    Haskell2010
-  ghc-prof-options: -fprof-auto -caf-all
+  hs-source-dirs:
+      test
+    , lib
+  default-language: Haskell2010
   build-depends:
-      tasty >= 0.8
-    , tasty-quickcheck >= 0.8
-    , array >= 0.4.0.0
-    , base >= 4.5.0.0 && < 5
-    , rainbow >= 0.14.0.0 && < 0.15
-    , text >= 0.11.3.1
-    , transformers >= 0.3.0.0
-    , QuickCheck >= 2.6 && < 2.7
+      base ((> 4.5.0.0 || == 4.5.0.0) && < 4.8.0.0)
+    , rainbow ((> 0.14.0.0 || == 0.14.0.0) && < 0.15)
+    , text ((> 0.11.3.1 || == 0.11.3.1) && < 1.2.0.0)
+    , transformers ((> 0.3.0.0 || == 0.3.0.0) && < 0.5.0.0)
+    , array ((> 0.4.0.0 || == 0.4.0.0) && < 0.6.0.0)
+  main-is: rainbox-test.hs
+  build-depends:
+      tasty ((> 0.8 || == 0.8) && < 0.9)
+    , tasty-quickcheck ((> 0.8.1 || == 0.8.1) && < 0.9)
+    , QuickCheck ((> 2.7 || == 2.7) && < 2.8)
 
+Test-Suite rainbox-visual
+  type: exitcode-stdio-1.0
+  ghc-options:
+      -Wall
   other-modules:
-      RainboxDir
-    , RainboxTests
+      Rainbox
+    , Rainbox.Array2d
+    , Rainbox.Box
+    , Rainbox.Box.Primitives
+    , Rainbox.Reader
+    , Rainbox.Tutorial
     , Rainbox.Array2dTests
+    , Rainbox.Box.PrimitivesTests
+    , Rainbox.BoxDir
     , Rainbox.BoxTests
     , Rainbox.ReaderTests
-    , Rainbox.BoxDir
-    , Rainbox.Box.PrimitivesTests
+    , RainboxDir
+    , RainboxTests
     , Test.Rainbow.Generators
+    , Visual
+  main-is: rainbox-visual.hs
+  hs-source-dirs:
+      test
+    , lib
+  default-language: Haskell2010
+  build-depends:
+      base ((> 4.5.0.0 || == 4.5.0.0) && < 4.8.0.0)
+    , rainbow ((> 0.14.0.0 || == 0.14.0.0) && < 0.15)
+    , text ((> 0.11.3.1 || == 0.11.3.1) && < 1.2.0.0)
+    , transformers ((> 0.3.0.0 || == 0.3.0.0) && < 0.5.0.0)
+    , array ((> 0.4.0.0 || == 0.4.0.0) && < 0.6.0.0)
+  build-depends:
+      tasty ((> 0.8 || == 0.8) && < 0.9)
+    , tasty-quickcheck ((> 0.8.1 || == 0.8.1) && < 0.9)
+    , QuickCheck ((> 2.7 || == 2.7) && < 2.8)
+    , random ((> 1.0.0.0 || == 1.0.0.0) && < 1.1)
diff --git a/test/Visual.hs b/test/Visual.hs
--- a/test/Visual.hs
+++ b/test/Visual.hs
@@ -7,8 +7,8 @@
 import System.Console.Rainbow
 import System.Console.Rainbow.Colors
 import Data.Monoid
-import System.Random
 import Test.QuickCheck.Gen hiding (resize)
+import Test.QuickCheck.Random
 import Rainbox.Box.PrimitivesTests
 import Data.Maybe (fromJust)
 import Data.String
@@ -46,7 +46,7 @@
 
 testCompound :: String -> (Background -> [Box] -> Box) -> IO ()
 testCompound d f = do
-  g <- newStdGen
+  g <- newQCGen
   let bxs = unGen (replicateM 5 genTextBox) g sizeParam 
       bk = unGen genBackground g sizeParam
   describe d $ f bk bxs
