summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorPeter Simons <simons@cryp.to>2013-02-24 22:09:07 +0100
committerPeter Simons <simons@cryp.to>2013-02-25 00:32:40 +0100
commita30df956918aab12b7e83539ca98dafa9a829af4 (patch)
tree981222687f44e0b24f1cbdd095127c4c6e630b49 /pkgs
parentd0bfd6936e640db813c21d6c6fc34421ff49e941 (diff)
downloadnixpkgs-a30df956918aab12b7e83539ca98dafa9a829af4.tar
nixpkgs-a30df956918aab12b7e83539ca98dafa9a829af4.tar.gz
nixpkgs-a30df956918aab12b7e83539ca98dafa9a829af4.tar.bz2
nixpkgs-a30df956918aab12b7e83539ca98dafa9a829af4.tar.lz
nixpkgs-a30df956918aab12b7e83539ca98dafa9a829af4.tar.xz
nixpkgs-a30df956918aab12b7e83539ca98dafa9a829af4.tar.zst
nixpkgs-a30df956918aab12b7e83539ca98dafa9a829af4.zip
Re-generate all Haskell packages with the latest version of cabal2nix.
This change brings support for building and running the regressions test suites.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/leksah/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/Cabal/1.14.0.nix8
-rw-r--r--pkgs/development/libraries/haskell/Cabal/1.16.0.3.nix8
-rw-r--r--pkgs/development/libraries/haskell/CouchDB/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.2.1.nix7
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.2.2.nix7
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.2.3.nix7
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.2.5.nix9
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.2.8.nix9
-rw-r--r--pkgs/development/libraries/haskell/IORefCAS/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/ReadArgs/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/SafeSemaphore/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/active/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/aeson/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/async/2.0.1.3.nix3
-rw-r--r--pkgs/development/libraries/haskell/async/2.0.1.4.nix3
-rw-r--r--pkgs/development/libraries/haskell/attoparsec-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/attoparsec/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/base64-bytestring/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/base64-conduit/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/binary/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/blaze-html/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/blaze-markup/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/blaze-textual/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/bson/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/case-insensitive/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/cipher-aes/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/cipher-rc4/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/classy-prelude/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/clientsession/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/conduit/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/crypto-conduit/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/crypto-numbers/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/crypto-pubkey/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/cryptocipher/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/cryptohash/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/css-text/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/deepseq-th/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/diagrams/contrib.nix9
-rw-r--r--pkgs/development/libraries/haskell/digestive-functors/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/distributed-process/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/distributive/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/doctest/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/double-conversion/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/email-validate/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/exception-transformers/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/fast-logger/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/file-embed/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/filesystem-conduit/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/fsnotify/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/ghc-events/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/graphviz/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/hamlet/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/happstack/happstack-server.nix8
-rw-r--r--pkgs/development/libraries/haskell/hashable/1.1.2.5.nix7
-rw-r--r--pkgs/development/libraries/haskell/hastache/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/hjsmin/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/hsemail/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/hspec-expectations/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/hspec/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/html-conduit/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/http-conduit/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/http-date/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/http-reverse-proxy/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/http-types/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/io-choice/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/iproute/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/language-c-quote/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/language-javascript/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/largeword/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/leksah/leksah-server.nix5
-rw-r--r--pkgs/development/libraries/haskell/lens/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/libmpd/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/lifted-base/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/math-functions/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/minimorph/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/miniutter/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/monad-par/0.3.4.nix11
-rw-r--r--pkgs/development/libraries/haskell/mwc-random/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/network-conduit/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/network-transport-tcp/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/network/2.3.0.13.nix3
-rw-r--r--pkgs/development/libraries/haskell/network/2.3.1.0.nix3
-rw-r--r--pkgs/development/libraries/haskell/network/2.4.1.2.nix7
-rw-r--r--pkgs/development/libraries/haskell/numbers/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/optparse-applicative/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/path-pieces/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/pem/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/persistent-template/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/persistent/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/postgresql-simple/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/project-template/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/publicsuffixlist/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/reactive-banana/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/resourcet/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/setenv/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-css/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-js/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-text/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/shakespeare/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/shelly/default.nix6
-rw-r--r--pkgs/development/libraries/haskell/silently/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/simple-sendfile/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/skein/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/split/0.2.1.1.nix3
-rw-r--r--pkgs/development/libraries/haskell/split/0.2.1.2.nix3
-rw-r--r--pkgs/development/libraries/haskell/statistics/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/stylish-haskell/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/tagstream-conduit/default.nix4
-rw-r--r--pkgs/development/libraries/haskell/text/0.11.1.13.nix8
-rw-r--r--pkgs/development/libraries/haskell/text/0.11.2.0.nix8
-rw-r--r--pkgs/development/libraries/haskell/text/0.11.2.3.nix8
-rw-r--r--pkgs/development/libraries/haskell/threads/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/time/1.4.0.2.nix7
-rw-r--r--pkgs/development/libraries/haskell/tls/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/unix-time/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/unordered-containers/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/utility-ht/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/uuid/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/vty/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/wai-app-static/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/wai-extra/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/warp/default.nix10
-rw-r--r--pkgs/development/libraries/haskell/word8/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/xml-conduit/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/xml-hamlet/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/xss-sanitize/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/yaml/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/yesod-form/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/yesod-routes/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/yesod-static/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/yesod-test/default.nix1
-rw-r--r--pkgs/development/libraries/haskell/zeromq-haskell/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/zeromq3-haskell/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/zip-archive/default.nix5
-rw-r--r--pkgs/development/libraries/haskell/zlib-bindings/default.nix3
-rw-r--r--pkgs/development/libraries/haskell/zlib-conduit/default.nix5
-rw-r--r--pkgs/development/tools/documentation/haddock/2.10.0.nix1
-rw-r--r--pkgs/development/tools/documentation/haddock/2.11.0.nix1
-rw-r--r--pkgs/development/tools/documentation/haddock/2.12.0.nix1
-rw-r--r--pkgs/development/tools/documentation/haddock/2.13.1.nix1
-rw-r--r--pkgs/development/tools/documentation/haddock/2.9.4.nix4
146 files changed, 680 insertions, 180 deletions
diff --git a/pkgs/applications/editors/leksah/default.nix b/pkgs/applications/editors/leksah/default.nix
index 81fbf5ad98a..86f0106ed05 100644
--- a/pkgs/applications/editors/leksah/default.nix
+++ b/pkgs/applications/editors/leksah/default.nix
@@ -16,6 +16,7 @@ cabal.mkDerivation (self: {
     QuickCheck regexBase regexTdfa strict text time transformers
     utf8String
   ];
+  testDepends = [ Cabal QuickCheck ];
   noHaddock = true;
   meta = {
     homepage = "http://www.leksah.org";
diff --git a/pkgs/development/libraries/haskell/Cabal/1.14.0.nix b/pkgs/development/libraries/haskell/Cabal/1.14.0.nix
index b424551a2f9..09171ab2570 100644
--- a/pkgs/development/libraries/haskell/Cabal/1.14.0.nix
+++ b/pkgs/development/libraries/haskell/Cabal/1.14.0.nix
@@ -1,10 +1,16 @@
-{ cabal, filepath }:
+{ cabal, extensibleExceptions, filepath, HUnit, QuickCheck
+, testFramework, testFrameworkHunit, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "Cabal";
   version = "1.14.0";
   sha256 = "1r5b4x1ham5gdg9m9l8idpvr9czlk1q21vqmg0di4adkp2fhlm3j";
   buildDepends = [ filepath ];
+  testDepends = [
+    extensibleExceptions filepath HUnit QuickCheck testFramework
+    testFrameworkHunit testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "http://www.haskell.org/cabal/";
     description = "A framework for packaging Haskell software";
diff --git a/pkgs/development/libraries/haskell/Cabal/1.16.0.3.nix b/pkgs/development/libraries/haskell/Cabal/1.16.0.3.nix
index 68b985507b6..2814eae845f 100644
--- a/pkgs/development/libraries/haskell/Cabal/1.16.0.3.nix
+++ b/pkgs/development/libraries/haskell/Cabal/1.16.0.3.nix
@@ -1,10 +1,16 @@
-{ cabal, filepath }:
+{ cabal, extensibleExceptions, filepath, HUnit, QuickCheck
+, testFramework, testFrameworkHunit, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "Cabal";
   version = "1.16.0.3";
   sha256 = "11lzqgdjaix8n7nabmafl3jf9gisb04c025cmdycfihfajfn49zg";
   buildDepends = [ filepath ];
+  testDepends = [
+    extensibleExceptions filepath HUnit QuickCheck testFramework
+    testFrameworkHunit testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "http://www.haskell.org/cabal/";
     description = "A framework for packaging Haskell software";
diff --git a/pkgs/development/libraries/haskell/CouchDB/default.nix b/pkgs/development/libraries/haskell/CouchDB/default.nix
index 705a0a5fdea..4a413e2e7b8 100644
--- a/pkgs/development/libraries/haskell/CouchDB/default.nix
+++ b/pkgs/development/libraries/haskell/CouchDB/default.nix
@@ -1,10 +1,11 @@
-{ cabal, HTTP, json, mtl, network, utf8String }:
+{ cabal, HTTP, HUnit, json, mtl, network, utf8String }:
 
 cabal.mkDerivation (self: {
   pname = "CouchDB";
   version = "1.2";
   sha256 = "0a9g0iblfyqppcy1ni3ac8f3yv5km95bfblhwqlsk6khydi5ka98";
   buildDepends = [ HTTP json mtl network utf8String ];
+  testDepends = [ HTTP HUnit json mtl network utf8String ];
   meta = {
     homepage = "http://github.com/arjunguha/haskell-couchdb/";
     description = "CouchDB interface";
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.2.1.nix b/pkgs/development/libraries/haskell/HTTP/4000.2.1.nix
index 5c6057ace9e..0c7fa0bfa78 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.2.1.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.2.1.nix
@@ -1,10 +1,15 @@
-{ cabal, mtl, network, parsec }:
+{ cabal, httpdShed, HUnit, mtl, network, parsec, split
+, testFramework, testFrameworkHunit
+}:
 
 cabal.mkDerivation (self: {
   pname = "HTTP";
   version = "4000.2.1";
   sha256 = "01076rk7ly5228pszn54x4nqc6rqq1xw11ij9ajvhzf419islh0a";
   buildDepends = [ mtl network parsec ];
+  testDepends = [
+    httpdShed HUnit network split testFramework testFrameworkHunit
+  ];
   meta = {
     homepage = "https://github.com/haskell/HTTP";
     description = "A library for client-side HTTP";
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.2.2.nix b/pkgs/development/libraries/haskell/HTTP/4000.2.2.nix
index 5fbb2ed8a84..805bf36f5df 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.2.2.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.2.2.nix
@@ -1,10 +1,15 @@
-{ cabal, mtl, network, parsec }:
+{ cabal, httpdShed, HUnit, mtl, network, parsec, split
+, testFramework, testFrameworkHunit
+}:
 
 cabal.mkDerivation (self: {
   pname = "HTTP";
   version = "4000.2.2";
   sha256 = "0qrr9wdj25sdfxifppmw0w14g8skpgf42ic4iqcqylxxzfa8v7vh";
   buildDepends = [ mtl network parsec ];
+  testDepends = [
+    httpdShed HUnit network split testFramework testFrameworkHunit
+  ];
   meta = {
     homepage = "https://github.com/haskell/HTTP";
     description = "A library for client-side HTTP";
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.2.3.nix b/pkgs/development/libraries/haskell/HTTP/4000.2.3.nix
index cff762864bc..a0b328d702c 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.2.3.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.2.3.nix
@@ -1,10 +1,15 @@
-{ cabal, mtl, network, parsec }:
+{ cabal, httpdShed, HUnit, mtl, network, parsec, split
+, testFramework, testFrameworkHunit
+}:
 
 cabal.mkDerivation (self: {
   pname = "HTTP";
   version = "4000.2.3";
   sha256 = "1z7s5rkyljwdl95cwqbqg64i207wjwxgpksrdmvcv82k39srzx80";
   buildDepends = [ mtl network parsec ];
+  testDepends = [
+    httpdShed HUnit network split testFramework testFrameworkHunit
+  ];
   meta = {
     homepage = "https://github.com/haskell/HTTP";
     description = "A library for client-side HTTP";
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.2.5.nix b/pkgs/development/libraries/haskell/HTTP/4000.2.5.nix
index f345e7c98e1..4adae562476 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.2.5.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.2.5.nix
@@ -1,10 +1,17 @@
-{ cabal, mtl, network, parsec }:
+{ cabal, caseInsensitive, conduit, deepseq, httpdShed, httpTypes
+, HUnit, mtl, network, parsec, pureMD5, split, testFramework
+, testFrameworkHunit, wai, warp
+}:
 
 cabal.mkDerivation (self: {
   pname = "HTTP";
   version = "4000.2.5";
   sha256 = "03ij1zkykc438x2r1szz6ddvfhrjywlx61nrz377srcpbdmhxpb7";
   buildDepends = [ mtl network parsec ];
+  testDepends = [
+    caseInsensitive conduit deepseq httpdShed httpTypes HUnit mtl
+    network pureMD5 split testFramework testFrameworkHunit wai warp
+  ];
   meta = {
     homepage = "https://github.com/haskell/HTTP";
     description = "A library for client-side HTTP";
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.2.8.nix b/pkgs/development/libraries/haskell/HTTP/4000.2.8.nix
index 6cb7ed57b4c..f0c103622a9 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.2.8.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.2.8.nix
@@ -1,10 +1,17 @@
-{ cabal, mtl, network, parsec }:
+{ cabal, caseInsensitive, conduit, deepseq, httpdShed, httpTypes
+, HUnit, mtl, network, parsec, pureMD5, split, testFramework
+, testFrameworkHunit, wai, warp
+}:
 
 cabal.mkDerivation (self: {
   pname = "HTTP";
   version = "4000.2.8";
   sha256 = "0p0cwzjw2102bsyfaga6m8b53s6qnhd6byg2j2qla653f6kjlsh8";
   buildDepends = [ mtl network parsec ];
+  testDepends = [
+    caseInsensitive conduit deepseq httpdShed httpTypes HUnit mtl
+    network pureMD5 split testFramework testFrameworkHunit wai warp
+  ];
   meta = {
     homepage = "https://github.com/haskell/HTTP";
     description = "A library for client-side HTTP";
diff --git a/pkgs/development/libraries/haskell/IORefCAS/default.nix b/pkgs/development/libraries/haskell/IORefCAS/default.nix
index fc9b09bd0d7..beec7ded789 100644
--- a/pkgs/development/libraries/haskell/IORefCAS/default.nix
+++ b/pkgs/development/libraries/haskell/IORefCAS/default.nix
@@ -1,10 +1,11 @@
-{ cabal, bitsAtomic }:
+{ cabal, bitsAtomic, HUnit, QuickCheck }:
 
 cabal.mkDerivation (self: {
   pname = "IORefCAS";
   version = "0.2";
   sha256 = "18hyy3jqr9yky5r873816fqnywrwba90sq6zx61i2vkqlfbll1k9";
   buildDepends = [ bitsAtomic ];
+  testDepends = [ bitsAtomic HUnit QuickCheck ];
   meta = {
     description = "Atomic compare and swap for IORefs and STRefs";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/ReadArgs/default.nix b/pkgs/development/libraries/haskell/ReadArgs/default.nix
index 4b8a513914a..12c3e34571e 100644
--- a/pkgs/development/libraries/haskell/ReadArgs/default.nix
+++ b/pkgs/development/libraries/haskell/ReadArgs/default.nix
@@ -1,4 +1,4 @@
-{ cabal, systemFilepath, text }:
+{ cabal, hspec, systemFilepath, text }:
 
 cabal.mkDerivation (self: {
   pname = "ReadArgs";
@@ -7,6 +7,7 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ systemFilepath text ];
+  testDepends = [ hspec systemFilepath text ];
   meta = {
     homepage = "http://github.com/rampion/ReadArgs";
     description = "Simple command line argument parsing";
diff --git a/pkgs/development/libraries/haskell/SafeSemaphore/default.nix b/pkgs/development/libraries/haskell/SafeSemaphore/default.nix
index ad161f97102..d4cc7490277 100644
--- a/pkgs/development/libraries/haskell/SafeSemaphore/default.nix
+++ b/pkgs/development/libraries/haskell/SafeSemaphore/default.nix
@@ -1,10 +1,11 @@
-{ cabal, stm }:
+{ cabal, HUnit, stm }:
 
 cabal.mkDerivation (self: {
   pname = "SafeSemaphore";
   version = "0.9.0";
   sha256 = "1xa30cciw8wmri675kdsz4pb5qwrh592pzylbhawqsvsarf80gz4";
   buildDepends = [ stm ];
+  testDepends = [ HUnit ];
   meta = {
     homepage = "https://github.com/ChrisKuklewicz/SafeSemaphore";
     description = "Much safer replacement for QSemN, QSem, and SampleVar";
diff --git a/pkgs/development/libraries/haskell/active/default.nix b/pkgs/development/libraries/haskell/active/default.nix
index d3307d0a30d..19afa5ab75e 100644
--- a/pkgs/development/libraries/haskell/active/default.nix
+++ b/pkgs/development/libraries/haskell/active/default.nix
@@ -1,10 +1,15 @@
-{ cabal, newtype, semigroupoids, semigroups, vectorSpace }:
+{ cabal, newtype, QuickCheck, semigroupoids, semigroups
+, vectorSpace
+}:
 
 cabal.mkDerivation (self: {
   pname = "active";
   version = "0.1.0.3";
   sha256 = "0jarc270z6raak1vz30jy2gl0pkj9a2x3ib5hq7vsl2ljbvbgyqi";
   buildDepends = [ newtype semigroupoids semigroups vectorSpace ];
+  testDepends = [
+    newtype QuickCheck semigroupoids semigroups vectorSpace
+  ];
   jailbreak = true;
   meta = {
     description = "Abstractions for animation";
diff --git a/pkgs/development/libraries/haskell/aeson/default.nix b/pkgs/development/libraries/haskell/aeson/default.nix
index b0f89619b1c..515cec37a99 100644
--- a/pkgs/development/libraries/haskell/aeson/default.nix
+++ b/pkgs/development/libraries/haskell/aeson/default.nix
@@ -1,5 +1,6 @@
 { cabal, attoparsec, blazeBuilder, deepseq, dlist, hashable, mtl
-, syb, text, time, unorderedContainers, vector
+, QuickCheck, syb, testFramework, testFrameworkQuickcheck2, text
+, time, unorderedContainers, vector
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +11,10 @@ cabal.mkDerivation (self: {
     attoparsec blazeBuilder deepseq dlist hashable mtl syb text time
     unorderedContainers vector
   ];
+  testDepends = [
+    attoparsec QuickCheck testFramework testFrameworkQuickcheck2 text
+    time
+  ];
   meta = {
     homepage = "https://github.com/bos/aeson";
     description = "Fast JSON parsing and encoding";
diff --git a/pkgs/development/libraries/haskell/async/2.0.1.3.nix b/pkgs/development/libraries/haskell/async/2.0.1.3.nix
index a0da6384e95..1b943208dea 100644
--- a/pkgs/development/libraries/haskell/async/2.0.1.3.nix
+++ b/pkgs/development/libraries/haskell/async/2.0.1.3.nix
@@ -1,10 +1,11 @@
-{ cabal, stm }:
+{ cabal, HUnit, stm, testFramework, testFrameworkHunit }:
 
 cabal.mkDerivation (self: {
   pname = "async";
   version = "2.0.1.3";
   sha256 = "1rbjr6xw5sp8npw17fxg0942kikssv2hyci2sy26r0na98483mkh";
   buildDepends = [ stm ];
+  testDepends = [ HUnit testFramework testFrameworkHunit ];
   meta = {
     homepage = "https://github.com/simonmar/async";
     description = "Run IO operations asynchronously and wait for their results";
diff --git a/pkgs/development/libraries/haskell/async/2.0.1.4.nix b/pkgs/development/libraries/haskell/async/2.0.1.4.nix
index c5caa55e97f..5dd76b4d6e0 100644
--- a/pkgs/development/libraries/haskell/async/2.0.1.4.nix
+++ b/pkgs/development/libraries/haskell/async/2.0.1.4.nix
@@ -1,10 +1,11 @@
-{ cabal, stm }:
+{ cabal, HUnit, stm, testFramework, testFrameworkHunit }:
 
 cabal.mkDerivation (self: {
   pname = "async";
   version = "2.0.1.4";
   sha256 = "1hi40bjwpl65mz7zj0sgh16bp9dwafbm5ysi2q8fzwwq5l0zxpa1";
   buildDepends = [ stm ];
+  testDepends = [ HUnit testFramework testFrameworkHunit ];
   meta = {
     homepage = "https://github.com/simonmar/async";
     description = "Run IO operations asynchronously and wait for their results";
diff --git a/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix b/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix
index 916f38f66c5..37af5eec0af 100644
--- a/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/attoparsec-conduit/default.nix
@@ -1,10 +1,12 @@
-{ cabal, attoparsec, conduit, text, transformers }:
+{ cabal, attoparsec, conduit, hspec, resourcet, text, transformers
+}:
 
 cabal.mkDerivation (self: {
   pname = "attoparsec-conduit";
   version = "1.0.0";
   sha256 = "1aw071qcwhxwpd6azhgaiia97rhj50rms4pysbc19iihmdih3ib8";
   buildDepends = [ attoparsec conduit text transformers ];
+  testDepends = [ attoparsec conduit hspec resourcet text ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
     description = "Consume attoparsec parsers via conduit";
diff --git a/pkgs/development/libraries/haskell/attoparsec/default.nix b/pkgs/development/libraries/haskell/attoparsec/default.nix
index fda3ae1474b..c352ce7ca8e 100644
--- a/pkgs/development/libraries/haskell/attoparsec/default.nix
+++ b/pkgs/development/libraries/haskell/attoparsec/default.nix
@@ -1,10 +1,15 @@
-{ cabal, deepseq, text }:
+{ cabal, deepseq, QuickCheck, testFramework
+, testFrameworkQuickcheck2, text
+}:
 
 cabal.mkDerivation (self: {
   pname = "attoparsec";
   version = "0.10.4.0";
   sha256 = "0inkcrl40j9kgcmmi0xkcszayqjd5yn7i9fyvv0ywfqwpl6lxf5n";
   buildDepends = [ deepseq text ];
+  testDepends = [
+    QuickCheck testFramework testFrameworkQuickcheck2 text
+  ];
   meta = {
     homepage = "https://github.com/bos/attoparsec";
     description = "Fast combinator parsing for bytestrings and text";
diff --git a/pkgs/development/libraries/haskell/base64-bytestring/default.nix b/pkgs/development/libraries/haskell/base64-bytestring/default.nix
index 5891131d7e8..67450dc8887 100644
--- a/pkgs/development/libraries/haskell/base64-bytestring/default.nix
+++ b/pkgs/development/libraries/haskell/base64-bytestring/default.nix
@@ -1,9 +1,15 @@
-{ cabal }:
+{ cabal, HUnit, QuickCheck, testFramework, testFrameworkHunit
+, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "base64-bytestring";
   version = "1.0.0.1";
   sha256 = "0l1v4ddjdsgi9nqzyzcxxj76rwar3lzx8gmwf2r54bqan3san9db";
+  testDepends = [
+    HUnit QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "https://github.com/bos/base64-bytestring";
     description = "Fast base64 encoding and decoding for ByteStrings";
diff --git a/pkgs/development/libraries/haskell/base64-conduit/default.nix b/pkgs/development/libraries/haskell/base64-conduit/default.nix
index c6d25384be2..3a2d044de64 100644
--- a/pkgs/development/libraries/haskell/base64-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/base64-conduit/default.nix
@@ -1,10 +1,14 @@
-{ cabal, base64Bytestring, conduit }:
+{ cabal, base64Bytestring, conduit, hspec, QuickCheck, transformers
+}:
 
 cabal.mkDerivation (self: {
   pname = "base64-conduit";
   version = "1.0.0";
   sha256 = "10wjgdixk5da48jpm2i91vy3ckdqpbpgba6hzn7ak6d3qac22m9q";
   buildDepends = [ base64Bytestring conduit ];
+  testDepends = [
+    base64Bytestring conduit hspec QuickCheck transformers
+  ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
     description = "Base64-encode and decode streams of bytes";
diff --git a/pkgs/development/libraries/haskell/binary/default.nix b/pkgs/development/libraries/haskell/binary/default.nix
index ef95d13809f..b4f205e41b2 100644
--- a/pkgs/development/libraries/haskell/binary/default.nix
+++ b/pkgs/development/libraries/haskell/binary/default.nix
@@ -1,9 +1,14 @@
-{ cabal }:
+{ cabal, QuickCheck, random, testFramework
+, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "binary";
   version = "0.6.4.0";
   sha256 = "0vq80fzhwil5bx4a2vbd3jvfh1awhg1pwxgvq3lvbi37yzl0ydgh";
+  testDepends = [
+    QuickCheck random testFramework testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "https://github.com/kolmodin/binary";
     description = "Binary serialisation for Haskell values using lazy ByteStrings";
diff --git a/pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix b/pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix
index 89ff67fac37..16c352b7a33 100644
--- a/pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-builder-conduit/default.nix
@@ -1,10 +1,15 @@
-{ cabal, blazeBuilder, conduit, text, transformers }:
+{ cabal, blazeBuilder, conduit, hspec, QuickCheck, text
+, transformers
+}:
 
 cabal.mkDerivation (self: {
   pname = "blaze-builder-conduit";
   version = "1.0.0";
   sha256 = "15q0b0k5dxrp9cw2b4qf9mmjwz1mmxrn3890df5rc9z6yajajrc6";
   buildDepends = [ blazeBuilder conduit text transformers ];
+  testDepends = [
+    blazeBuilder conduit hspec QuickCheck transformers
+  ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
     description = "Convert streams of builders to streams of bytestrings";
diff --git a/pkgs/development/libraries/haskell/blaze-html/default.nix b/pkgs/development/libraries/haskell/blaze-html/default.nix
index 44f0e0b0e23..59e0f718751 100644
--- a/pkgs/development/libraries/haskell/blaze-html/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-html/default.nix
@@ -1,10 +1,16 @@
-{ cabal, blazeBuilder, blazeMarkup, text }:
+{ cabal, blazeBuilder, blazeMarkup, HUnit, QuickCheck
+, testFramework, testFrameworkHunit, testFrameworkQuickcheck2, text
+}:
 
 cabal.mkDerivation (self: {
   pname = "blaze-html";
   version = "0.6.0.0";
   sha256 = "0n8jpmslcs29pfyb8jhp43dg4058ahd9y3kf2p2wr3r6b9yr5dll";
   buildDepends = [ blazeBuilder blazeMarkup text ];
+  testDepends = [
+    blazeBuilder blazeMarkup HUnit QuickCheck testFramework
+    testFrameworkHunit testFrameworkQuickcheck2 text
+  ];
   meta = {
     homepage = "http://jaspervdj.be/blaze";
     description = "A blazingly fast HTML combinator library for Haskell";
diff --git a/pkgs/development/libraries/haskell/blaze-markup/default.nix b/pkgs/development/libraries/haskell/blaze-markup/default.nix
index becd1a24ec6..afd607fe5e8 100644
--- a/pkgs/development/libraries/haskell/blaze-markup/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-markup/default.nix
@@ -1,10 +1,16 @@
-{ cabal, blazeBuilder, text }:
+{ cabal, blazeBuilder, HUnit, QuickCheck, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2, text
+}:
 
 cabal.mkDerivation (self: {
   pname = "blaze-markup";
   version = "0.5.1.4";
   sha256 = "0g316qhk7yv6y680w93613apfhm458a01g3jmq42yv4ndydkv4rr";
   buildDepends = [ blazeBuilder text ];
+  testDepends = [
+    blazeBuilder HUnit QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2 text
+  ];
   meta = {
     homepage = "http://jaspervdj.be/blaze";
     description = "A blazingly fast markup combinator library for Haskell";
diff --git a/pkgs/development/libraries/haskell/blaze-textual/default.nix b/pkgs/development/libraries/haskell/blaze-textual/default.nix
index 65f39c8cc08..ede82e5c2ed 100644
--- a/pkgs/development/libraries/haskell/blaze-textual/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-textual/default.nix
@@ -1,10 +1,16 @@
-{ cabal, blazeBuilder, text, time, vector }:
+{ cabal, blazeBuilder, doubleConversion, QuickCheck, testFramework
+, testFrameworkQuickcheck2, text, time, vector
+}:
 
 cabal.mkDerivation (self: {
   pname = "blaze-textual";
   version = "0.2.0.8";
   sha256 = "0zzqh53ywzz8ss58glp3i8is8gry5yqzvdjw4xh95fbbzcz4cgc7";
   buildDepends = [ blazeBuilder text time vector ];
+  testDepends = [
+    blazeBuilder doubleConversion QuickCheck testFramework
+    testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "http://github.com/bos/blaze-textual";
     description = "Fast rendering of common datatypes";
diff --git a/pkgs/development/libraries/haskell/bson/default.nix b/pkgs/development/libraries/haskell/bson/default.nix
index 20107eb1784..6b76aee47a1 100644
--- a/pkgs/development/libraries/haskell/bson/default.nix
+++ b/pkgs/development/libraries/haskell/bson/default.nix
@@ -1,5 +1,5 @@
-{ cabal, binary, cryptohash, dataBinaryIeee754, mtl, network, text
-, time
+{ cabal, binary, cryptohash, dataBinaryIeee754, mtl, network
+, QuickCheck, testFramework, testFrameworkQuickcheck2, text, time
 }:
 
 cabal.mkDerivation (self: {
@@ -9,6 +9,10 @@ cabal.mkDerivation (self: {
   buildDepends = [
     binary cryptohash dataBinaryIeee754 mtl network text time
   ];
+  testDepends = [
+    binary cryptohash dataBinaryIeee754 mtl network QuickCheck
+    testFramework testFrameworkQuickcheck2 text time
+  ];
   meta = {
     homepage = "http://github.com/selectel/bson-haskell";
     description = "BSON documents are JSON-like objects with a standard binary encoding";
diff --git a/pkgs/development/libraries/haskell/case-insensitive/default.nix b/pkgs/development/libraries/haskell/case-insensitive/default.nix
index 58e0ebbbe00..51425084e1c 100644
--- a/pkgs/development/libraries/haskell/case-insensitive/default.nix
+++ b/pkgs/development/libraries/haskell/case-insensitive/default.nix
@@ -1,10 +1,13 @@
-{ cabal, deepseq, hashable, text }:
+{ cabal, deepseq, hashable, HUnit, testFramework
+, testFrameworkHunit, text
+}:
 
 cabal.mkDerivation (self: {
   pname = "case-insensitive";
   version = "1.0";
   sha256 = "1x437b5yyh930a5dr642lvfdgpx12w4ms70whiw1ffjjhssb88zk";
   buildDepends = [ deepseq hashable text ];
+  testDepends = [ HUnit testFramework testFrameworkHunit text ];
   meta = {
     homepage = "https://github.com/basvandijk/case-insensitive";
     description = "Case insensitive string comparison";
diff --git a/pkgs/development/libraries/haskell/cipher-aes/default.nix b/pkgs/development/libraries/haskell/cipher-aes/default.nix
index bae23737585..ca2f3615929 100644
--- a/pkgs/development/libraries/haskell/cipher-aes/default.nix
+++ b/pkgs/development/libraries/haskell/cipher-aes/default.nix
@@ -1,9 +1,12 @@
-{ cabal }:
+{ cabal, QuickCheck, testFramework, testFrameworkQuickcheck2 }:
 
 cabal.mkDerivation (self: {
   pname = "cipher-aes";
   version = "0.1.7";
   sha256 = "1iai9c4rvxframylvc0xwx2nk6s0rsj4dc42wi334xyinilvfyng";
+  testDepends = [
+    QuickCheck testFramework testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-cipher-aes";
     description = "Fast AES cipher implementation with advanced mode of operations";
diff --git a/pkgs/development/libraries/haskell/cipher-rc4/default.nix b/pkgs/development/libraries/haskell/cipher-rc4/default.nix
index 234491cde36..7d3cacdd67a 100644
--- a/pkgs/development/libraries/haskell/cipher-rc4/default.nix
+++ b/pkgs/development/libraries/haskell/cipher-rc4/default.nix
@@ -1,9 +1,12 @@
-{ cabal }:
+{ cabal, QuickCheck, testFramework, testFrameworkQuickcheck2 }:
 
 cabal.mkDerivation (self: {
   pname = "cipher-rc4";
   version = "0.1.2";
   sha256 = "0nyrqms7h3hq236h03sjjjqdcxn3iz3fg4ifqj43f4nb8gv0ifb1";
+  testDepends = [
+    QuickCheck testFramework testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-cipher-rc4";
     description = "Fast RC4 cipher implementation";
diff --git a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
index 85a1fb7bdef..6af68223834 100644
--- a/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude-conduit/default.nix
@@ -1,5 +1,5 @@
-{ cabal, classyPrelude, conduit, monadControl, resourcet
-, transformers, void, xmlConduit
+{ cabal, classyPrelude, conduit, hspec, monadControl, QuickCheck
+, resourcet, transformers, void, xmlConduit
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
     classyPrelude conduit monadControl resourcet transformers void
     xmlConduit
   ];
+  testDepends = [ conduit hspec QuickCheck transformers ];
   meta = {
     homepage = "https://github.com/snoyberg/classy-prelude";
     description = "conduit instances for classy-prelude";
diff --git a/pkgs/development/libraries/haskell/classy-prelude/default.nix b/pkgs/development/libraries/haskell/classy-prelude/default.nix
index 01c26aab79f..4c2f076039e 100644
--- a/pkgs/development/libraries/haskell/classy-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/classy-prelude/default.nix
@@ -1,5 +1,5 @@
-{ cabal, basicPrelude, hashable, liftedBase, systemFilepath, text
-, transformers, unorderedContainers, vector
+{ cabal, basicPrelude, hashable, hspec, liftedBase, QuickCheck
+, systemFilepath, text, transformers, unorderedContainers, vector
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
     basicPrelude hashable liftedBase systemFilepath text transformers
     unorderedContainers vector
   ];
+  testDepends = [ hspec QuickCheck transformers ];
   meta = {
     homepage = "https://github.com/snoyberg/classy-prelude";
     description = "A typeclass-based Prelude";
diff --git a/pkgs/development/libraries/haskell/clientsession/default.nix b/pkgs/development/libraries/haskell/clientsession/default.nix
index 81ae5ebddb0..edbb079eec4 100644
--- a/pkgs/development/libraries/haskell/clientsession/default.nix
+++ b/pkgs/development/libraries/haskell/clientsession/default.nix
@@ -1,5 +1,5 @@
 { cabal, base64Bytestring, cereal, cipherAes, cprngAes, cryptoApi
-, entropy, skein, tagged
+, entropy, hspec, HUnit, QuickCheck, skein, tagged, transformers
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +10,7 @@ cabal.mkDerivation (self: {
     base64Bytestring cereal cipherAes cprngAes cryptoApi entropy skein
     tagged
   ];
+  testDepends = [ cereal hspec HUnit QuickCheck transformers ];
   meta = {
     homepage = "http://github.com/yesodweb/clientsession/tree/master";
     description = "Securely store session data in a client-side cookie";
diff --git a/pkgs/development/libraries/haskell/conduit/default.nix b/pkgs/development/libraries/haskell/conduit/default.nix
index 3ea60db5fb5..4dada245791 100644
--- a/pkgs/development/libraries/haskell/conduit/default.nix
+++ b/pkgs/development/libraries/haskell/conduit/default.nix
@@ -1,5 +1,5 @@
-{ cabal, liftedBase, monadControl, resourcet, text, transformers
-, transformersBase, void
+{ cabal, doctest, hspec, liftedBase, monadControl, QuickCheck
+, resourcet, text, transformers, transformersBase, void
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +10,9 @@ cabal.mkDerivation (self: {
     liftedBase monadControl resourcet text transformers
     transformersBase void
   ];
+  testDepends = [
+    doctest hspec QuickCheck resourcet text transformers void
+  ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
     description = "Streaming data processing library";
diff --git a/pkgs/development/libraries/haskell/crypto-conduit/default.nix b/pkgs/development/libraries/haskell/crypto-conduit/default.nix
index 29163f89737..69351a2a5aa 100644
--- a/pkgs/development/libraries/haskell/crypto-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-conduit/default.nix
@@ -1,10 +1,16 @@
-{ cabal, cereal, conduit, cryptoApi, transformers }:
+{ cabal, cereal, conduit, cryptoApi, cryptocipher, cryptohash
+, hspec, skein, transformers
+}:
 
 cabal.mkDerivation (self: {
   pname = "crypto-conduit";
   version = "0.5.0";
   sha256 = "0mlf2l784w0wyfjqsxzfdwmn1wb0z1s6mb8kdhw8x1z4a8gy9a92";
   buildDepends = [ cereal conduit cryptoApi transformers ];
+  testDepends = [
+    cereal conduit cryptoApi cryptocipher cryptohash hspec skein
+    transformers
+  ];
   meta = {
     homepage = "https://github.com/meteficha/crypto-conduit";
     description = "Conduit interface for cryptographic operations (from crypto-api)";
diff --git a/pkgs/development/libraries/haskell/crypto-numbers/default.nix b/pkgs/development/libraries/haskell/crypto-numbers/default.nix
index 70cd3f44252..af6985cd9ed 100644
--- a/pkgs/development/libraries/haskell/crypto-numbers/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-numbers/default.nix
@@ -1,10 +1,16 @@
-{ cabal, cryptoRandomApi, vector }:
+{ cabal, cryptoRandomApi, HUnit, QuickCheck, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2, vector
+}:
 
 cabal.mkDerivation (self: {
   pname = "crypto-numbers";
   version = "0.1.3";
   sha256 = "115lgnay3ly5r53flh3v5jygqks0rg1i8qmbvrqf9nkmnmw6a5x1";
   buildDepends = [ cryptoRandomApi vector ];
+  testDepends = [
+    cryptoRandomApi HUnit QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2 vector
+  ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-crypto-numbers";
     description = "Cryptographic numbers: functions and algorithms";
diff --git a/pkgs/development/libraries/haskell/crypto-pubkey/default.nix b/pkgs/development/libraries/haskell/crypto-pubkey/default.nix
index dc6d83a765d..b095b1ea5f4 100644
--- a/pkgs/development/libraries/haskell/crypto-pubkey/default.nix
+++ b/pkgs/development/libraries/haskell/crypto-pubkey/default.nix
@@ -1,5 +1,6 @@
 { cabal, cryptohash, cryptoNumbers, cryptoPubkeyTypes
-, cryptoRandomApi
+, cryptoRandomApi, HUnit, QuickCheck, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2
 }:
 
 cabal.mkDerivation (self: {
@@ -9,6 +10,10 @@ cabal.mkDerivation (self: {
   buildDepends = [
     cryptohash cryptoNumbers cryptoPubkeyTypes cryptoRandomApi
   ];
+  testDepends = [
+    cryptohash cryptoNumbers cryptoRandomApi HUnit QuickCheck
+    testFramework testFrameworkHunit testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-crypto-pubkey";
     description = "Public Key cryptography";
diff --git a/pkgs/development/libraries/haskell/cryptocipher/default.nix b/pkgs/development/libraries/haskell/cryptocipher/default.nix
index 275622d3cad..dba34752611 100644
--- a/pkgs/development/libraries/haskell/cryptocipher/default.nix
+++ b/pkgs/development/libraries/haskell/cryptocipher/default.nix
@@ -1,5 +1,6 @@
-{ cabal, cereal, cipherAes, cipherRc4, cpu, cryptoApi
-, cryptoPubkeyTypes, primitive, tagged, vector
+{ cabal, cereal, cipherAes, cipherRc4, cpu, cryptoApi, cryptohash
+, cryptoPubkeyTypes, entropy, primitive, QuickCheck, tagged
+, testFramework, testFrameworkQuickcheck2, vector
 }:
 
 cabal.mkDerivation (self: {
@@ -12,6 +13,10 @@ cabal.mkDerivation (self: {
     cereal cipherAes cipherRc4 cpu cryptoApi cryptoPubkeyTypes
     primitive tagged vector
   ];
+  testDepends = [
+    cryptoApi cryptohash entropy QuickCheck testFramework
+    testFrameworkQuickcheck2 vector
+  ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-cryptocipher";
     description = "Symmetrical block and stream ciphers";
diff --git a/pkgs/development/libraries/haskell/cryptohash/default.nix b/pkgs/development/libraries/haskell/cryptohash/default.nix
index 2dc0cad9772..81b361a2477 100644
--- a/pkgs/development/libraries/haskell/cryptohash/default.nix
+++ b/pkgs/development/libraries/haskell/cryptohash/default.nix
@@ -1,10 +1,16 @@
-{ cabal, cereal, cryptoApi, tagged }:
+{ cabal, cereal, cryptoApi, HUnit, QuickCheck, tagged
+, testFramework, testFrameworkHunit, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "cryptohash";
   version = "0.8.3";
   sha256 = "1fcqbbclii2hmbhi7h64v0nnbc34zzs107m3lqq38iiyy5fvqqv2";
   buildDepends = [ cereal cryptoApi tagged ];
+  testDepends = [
+    HUnit QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-cryptohash";
     description = "collection of crypto hashes, fast, pure and practical";
diff --git a/pkgs/development/libraries/haskell/css-text/default.nix b/pkgs/development/libraries/haskell/css-text/default.nix
index 9970d87fbe0..f59a80b2b65 100644
--- a/pkgs/development/libraries/haskell/css-text/default.nix
+++ b/pkgs/development/libraries/haskell/css-text/default.nix
@@ -1,10 +1,11 @@
-{ cabal, attoparsec, text }:
+{ cabal, attoparsec, hspec, HUnit, QuickCheck, text }:
 
 cabal.mkDerivation (self: {
   pname = "css-text";
   version = "0.1.1";
   sha256 = "10vb08rnfq987w7wrirw8ib1kzafxaaancswm4xpw46ha3rq1m0y";
   buildDepends = [ attoparsec text ];
+  testDepends = [ attoparsec hspec HUnit QuickCheck text ];
   meta = {
     homepage = "http://www.yesodweb.com/";
     description = "CSS parser and renderer";
diff --git a/pkgs/development/libraries/haskell/deepseq-th/default.nix b/pkgs/development/libraries/haskell/deepseq-th/default.nix
index 2af4bb9f3f1..228fcd28c78 100644
--- a/pkgs/development/libraries/haskell/deepseq-th/default.nix
+++ b/pkgs/development/libraries/haskell/deepseq-th/default.nix
@@ -5,6 +5,7 @@ cabal.mkDerivation (self: {
   version = "0.1.0.4";
   sha256 = "12wk8higrp12b22zzz1b4ar1q5h7flk22bp2rvswsqri2zkbi965";
   buildDepends = [ deepseq ];
+  testDepends = [ deepseq ];
   meta = {
     description = "Template Haskell based deriver for optimised NFData instances";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/diagrams/contrib.nix b/pkgs/development/libraries/haskell/diagrams/contrib.nix
index a25603453a7..3ecfe2db852 100644
--- a/pkgs/development/libraries/haskell/diagrams/contrib.nix
+++ b/pkgs/development/libraries/haskell/diagrams/contrib.nix
@@ -1,5 +1,6 @@
-{ cabal, colour, dataDefault, diagramsLib, forceLayout, lens, mtl
-, vectorSpace
+{ cabal, colour, dataDefault, diagramsLib, forceLayout, HUnit, lens
+, mtl, QuickCheck, testFramework, testFrameworkHunit
+, testFrameworkQuickcheck2, vectorSpace
 }:
 
 cabal.mkDerivation (self: {
@@ -9,6 +10,10 @@ cabal.mkDerivation (self: {
   buildDepends = [
     colour dataDefault diagramsLib forceLayout lens mtl vectorSpace
   ];
+  testDepends = [
+    diagramsLib HUnit QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "http://projects.haskell.org/diagrams/";
     description = "Collection of user contributions to diagrams EDSL";
diff --git a/pkgs/development/libraries/haskell/digestive-functors/default.nix b/pkgs/development/libraries/haskell/digestive-functors/default.nix
index 4ba8b16ec46..0b956680a84 100644
--- a/pkgs/development/libraries/haskell/digestive-functors/default.nix
+++ b/pkgs/development/libraries/haskell/digestive-functors/default.nix
@@ -1,10 +1,11 @@
-{ cabal, mtl, text }:
+{ cabal, HUnit, mtl, testFramework, testFrameworkHunit, text }:
 
 cabal.mkDerivation (self: {
   pname = "digestive-functors";
   version = "0.6.0.1";
   sha256 = "1ni1hfmpz14yvgjphwz64hqhg7xbhvvqbdnapspipplvnl0rcmhi";
   buildDepends = [ mtl text ];
+  testDepends = [ HUnit mtl testFramework testFrameworkHunit text ];
   meta = {
     homepage = "http://github.com/jaspervdj/digestive-functors";
     description = "A practical formlet library";
diff --git a/pkgs/development/libraries/haskell/distributed-process/default.nix b/pkgs/development/libraries/haskell/distributed-process/default.nix
index 1e83cbaa8d9..0427a937f84 100644
--- a/pkgs/development/libraries/haskell/distributed-process/default.nix
+++ b/pkgs/development/libraries/haskell/distributed-process/default.nix
@@ -1,6 +1,7 @@
-{ cabal, binary, dataAccessor, distributedStatic, mtl
-, networkTransport, random, rank1dynamic, stm, syb, time
-, transformers
+{ cabal, ansiTerminal, binary, dataAccessor, distributedStatic
+, HUnit, mtl, network, networkTransport, networkTransportTcp
+, random, rank1dynamic, stm, syb, testFramework, testFrameworkHunit
+, time, transformers
 }:
 
 cabal.mkDerivation (self: {
@@ -13,6 +14,11 @@ cabal.mkDerivation (self: {
     binary dataAccessor distributedStatic mtl networkTransport random
     rank1dynamic stm syb time transformers
   ];
+  testDepends = [
+    ansiTerminal binary distributedStatic HUnit network
+    networkTransport networkTransportTcp random stm testFramework
+    testFrameworkHunit
+  ];
   noHaddock = true;
   meta = {
     homepage = "http://github.com/haskell-distributed/distributed-process";
diff --git a/pkgs/development/libraries/haskell/distributive/default.nix b/pkgs/development/libraries/haskell/distributive/default.nix
index 6709569b054..bd8b64aa509 100644
--- a/pkgs/development/libraries/haskell/distributive/default.nix
+++ b/pkgs/development/libraries/haskell/distributive/default.nix
@@ -1,10 +1,11 @@
-{ cabal, transformers, transformersCompat }:
+{ cabal, doctest, filepath, transformers, transformersCompat }:
 
 cabal.mkDerivation (self: {
   pname = "distributive";
   version = "0.3";
   sha256 = "0z6vwak2n91vpx9ps9j1pbiw0zlh9jmds84yx1yqssbqx8npi32f";
   buildDepends = [ transformers transformersCompat ];
+  testDepends = [ doctest filepath ];
   meta = {
     homepage = "http://github.com/ekmett/distributive/";
     description = "Haskell 98 Distributive functors -- Dual to Traversable";
diff --git a/pkgs/development/libraries/haskell/doctest/default.nix b/pkgs/development/libraries/haskell/doctest/default.nix
index df92c4a6cf5..5dffb52ce1e 100644
--- a/pkgs/development/libraries/haskell/doctest/default.nix
+++ b/pkgs/development/libraries/haskell/doctest/default.nix
@@ -1,4 +1,6 @@
-{ cabal, deepseq, filepath, ghcPaths, syb, transformers }:
+{ cabal, baseCompat, deepseq, filepath, ghcPaths, hspec, HUnit
+, QuickCheck, setenv, silently, stringbuilder, syb, transformers
+}:
 
 cabal.mkDerivation (self: {
   pname = "doctest";
@@ -7,6 +9,10 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ deepseq filepath ghcPaths syb transformers ];
+  testDepends = [
+    baseCompat deepseq filepath ghcPaths hspec HUnit QuickCheck setenv
+    silently stringbuilder syb transformers
+  ];
   meta = {
     homepage = "https://github.com/sol/doctest-haskell#readme";
     description = "Test interactive Haskell examples";
diff --git a/pkgs/development/libraries/haskell/double-conversion/default.nix b/pkgs/development/libraries/haskell/double-conversion/default.nix
index 878eba660a0..cad61e52ee0 100644
--- a/pkgs/development/libraries/haskell/double-conversion/default.nix
+++ b/pkgs/development/libraries/haskell/double-conversion/default.nix
@@ -1,10 +1,11 @@
-{ cabal, text }:
+{ cabal, testFramework, testFrameworkQuickcheck2, text }:
 
 cabal.mkDerivation (self: {
   pname = "double-conversion";
   version = "0.2.0.6";
   sha256 = "1c6hy0ghdqf44fvhdpdxjbcr0ahimw283x5fnvjxja36i71qshjp";
   buildDepends = [ text ];
+  testDepends = [ testFramework testFrameworkQuickcheck2 text ];
   meta = {
     homepage = "https://github.com/bos/double-conversion";
     description = "Fast conversion between double precision floating point and text";
diff --git a/pkgs/development/libraries/haskell/email-validate/default.nix b/pkgs/development/libraries/haskell/email-validate/default.nix
index 482fd766487..3ba05926179 100644
--- a/pkgs/development/libraries/haskell/email-validate/default.nix
+++ b/pkgs/development/libraries/haskell/email-validate/default.nix
@@ -1,10 +1,16 @@
-{ cabal, attoparsec }:
+{ cabal, attoparsec, HUnit, QuickCheck, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "email-validate";
   version = "1.0.0";
   sha256 = "0sj1cvn9ap0m8d4cg4cqavvmkd74vp86lyyra9g6f17815sxdbsg";
   buildDepends = [ attoparsec ];
+  testDepends = [
+    HUnit QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "http://porg.es/blog/email-address-validation-simpler-faster-more-correct";
     description = "Validating an email address string against RFC 5322";
diff --git a/pkgs/development/libraries/haskell/exception-transformers/default.nix b/pkgs/development/libraries/haskell/exception-transformers/default.nix
index 5c4a9402020..a4d0cfd247a 100644
--- a/pkgs/development/libraries/haskell/exception-transformers/default.nix
+++ b/pkgs/development/libraries/haskell/exception-transformers/default.nix
@@ -1,10 +1,11 @@
-{ cabal, stm, transformers }:
+{ cabal, HUnit, stm, transformers }:
 
 cabal.mkDerivation (self: {
   pname = "exception-transformers";
   version = "0.3.0.3";
   sha256 = "0z3z5pppaqqbndd4fgv1czr8f9f4a8r86bwc3bcv88yf7y8cfbwz";
   buildDepends = [ stm transformers ];
+  testDepends = [ HUnit transformers ];
   meta = {
     homepage = "http://www.eecs.harvard.edu/~mainland/";
     description = "Type classes and monads for unchecked extensible exceptions";
diff --git a/pkgs/development/libraries/haskell/fast-logger/default.nix b/pkgs/development/libraries/haskell/fast-logger/default.nix
index e266aa15ff8..c9544b2c1f6 100644
--- a/pkgs/development/libraries/haskell/fast-logger/default.nix
+++ b/pkgs/development/libraries/haskell/fast-logger/default.nix
@@ -1,10 +1,12 @@
-{ cabal, blazeBuilder, dateCache, filepath, text, unixTime }:
+{ cabal, blazeBuilder, dateCache, filepath, hspec, text, unixTime
+}:
 
 cabal.mkDerivation (self: {
   pname = "fast-logger";
   version = "0.3.1";
   sha256 = "0sjn3vad0fbchv1fhap71wfnihlwnfhk6p9h9hpnbr0i4b32f1ks";
   buildDepends = [ blazeBuilder dateCache filepath text unixTime ];
+  testDepends = [ hspec ];
   meta = {
     description = "A fast logging system";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/file-embed/default.nix b/pkgs/development/libraries/haskell/file-embed/default.nix
index 119d9d185e5..145d3c1c203 100644
--- a/pkgs/development/libraries/haskell/file-embed/default.nix
+++ b/pkgs/development/libraries/haskell/file-embed/default.nix
@@ -1,10 +1,11 @@
-{ cabal, filepath }:
+{ cabal, filepath, HUnit }:
 
 cabal.mkDerivation (self: {
   pname = "file-embed";
   version = "0.0.4.7";
   sha256 = "1hn08499kay0y6ik5z1s58s8r9h1nzf116avgi6ia4b565wpzkvi";
   buildDepends = [ filepath ];
+  testDepends = [ filepath HUnit ];
   meta = {
     homepage = "https://github.com/snoyberg/file-embed";
     description = "Use Template Haskell to embed file contents directly";
diff --git a/pkgs/development/libraries/haskell/filesystem-conduit/default.nix b/pkgs/development/libraries/haskell/filesystem-conduit/default.nix
index 681ee682073..46ae27fc090 100644
--- a/pkgs/development/libraries/haskell/filesystem-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/filesystem-conduit/default.nix
@@ -1,4 +1,5 @@
-{ cabal, conduit, systemFileio, systemFilepath, text, transformers
+{ cabal, blazeBuilder, conduit, hspec, QuickCheck, systemFileio
+, systemFilepath, text, transformers
 }:
 
 cabal.mkDerivation (self: {
@@ -8,6 +9,9 @@ cabal.mkDerivation (self: {
   buildDepends = [
     conduit systemFileio systemFilepath text transformers
   ];
+  testDepends = [
+    blazeBuilder conduit hspec QuickCheck text transformers
+  ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
     description = "Use system-filepath data types with conduits";
diff --git a/pkgs/development/libraries/haskell/fsnotify/default.nix b/pkgs/development/libraries/haskell/fsnotify/default.nix
index 80b6760a3b7..142b513e592 100644
--- a/pkgs/development/libraries/haskell/fsnotify/default.nix
+++ b/pkgs/development/libraries/haskell/fsnotify/default.nix
@@ -1,10 +1,16 @@
-{ cabal, hinotify, systemFileio, systemFilepath, text, time }:
+{ cabal, Cabal, Glob, hinotify, hspec, QuickCheck, random
+, systemFileio, systemFilepath, text, time, uniqueid
+}:
 
 cabal.mkDerivation (self: {
   pname = "fsnotify";
   version = "0.0.6";
   sha256 = "0ib6ansj3vaq9hxxbsq5jw14w2b61wp4jfahzb3c3x46mdb1bqw5";
   buildDepends = [ hinotify systemFileio systemFilepath text time ];
+  testDepends = [
+    Cabal Glob hinotify hspec QuickCheck random systemFileio
+    systemFilepath text time uniqueid
+  ];
   meta = {
     description = "Cross platform library for file creation, modification, and deletion notification";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/ghc-events/default.nix b/pkgs/development/libraries/haskell/ghc-events/default.nix
index 7eb49668e3c..1c12e5dbb0b 100644
--- a/pkgs/development/libraries/haskell/ghc-events/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-events/default.nix
@@ -7,6 +7,7 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ binary mtl ];
+  testDepends = [ binary mtl ];
   meta = {
     description = "Library and tool for parsing .eventlog files from GHC";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/graphviz/default.nix b/pkgs/development/libraries/haskell/graphviz/default.nix
index 609863e808f..9d370993a22 100644
--- a/pkgs/development/libraries/haskell/graphviz/default.nix
+++ b/pkgs/development/libraries/haskell/graphviz/default.nix
@@ -1,5 +1,5 @@
-{ cabal, colour, dlist, fgl, filepath, polyparse, temporary, text
-, transformers, wlPprintText
+{ cabal, colour, dlist, fgl, filepath, polyparse, QuickCheck
+, temporary, text, transformers, wlPprintText
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +10,10 @@ cabal.mkDerivation (self: {
     colour dlist fgl filepath polyparse temporary text transformers
     wlPprintText
   ];
+  testDepends = [
+    colour dlist fgl filepath polyparse QuickCheck temporary text
+    transformers wlPprintText
+  ];
   meta = {
     homepage = "http://projects.haskell.org/graphviz/";
     description = "Bindings to Graphviz for graph visualisation";
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index 68b79bdcc3b..59a32b0d290 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -1,7 +1,8 @@
 { cabal, binary, blazeHtml, blazeMarkup, citeprocHs, cmdargs
-, cryptohash, deepseq, filepath, httpConduit, httpTypes, lrucache
-, mtl, pandoc, parsec, random, regexBase, regexTdfa, snapCore
-, snapServer, tagsoup, text, time
+, cryptohash, deepseq, filepath, httpConduit, httpTypes, HUnit
+, lrucache, mtl, pandoc, parsec, QuickCheck, random, regexBase
+, regexTdfa, snapCore, snapServer, tagsoup, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2, text, time
 }:
 
 cabal.mkDerivation (self: {
@@ -15,6 +16,12 @@ cabal.mkDerivation (self: {
     filepath httpConduit httpTypes lrucache mtl pandoc parsec random
     regexBase regexTdfa snapCore snapServer tagsoup text time
   ];
+  testDepends = [
+    binary blazeHtml blazeMarkup citeprocHs cmdargs cryptohash deepseq
+    filepath httpConduit httpTypes HUnit lrucache mtl pandoc parsec
+    QuickCheck random regexBase regexTdfa tagsoup testFramework
+    testFrameworkHunit testFrameworkQuickcheck2 text time
+  ];
   jailbreak = true;
   meta = {
     homepage = "http://jaspervdj.be/hakyll";
diff --git a/pkgs/development/libraries/haskell/hamlet/default.nix b/pkgs/development/libraries/haskell/hamlet/default.nix
index 28881da84c3..7b61aee26df 100644
--- a/pkgs/development/libraries/haskell/hamlet/default.nix
+++ b/pkgs/development/libraries/haskell/hamlet/default.nix
@@ -1,5 +1,5 @@
-{ cabal, blazeBuilder, blazeHtml, blazeMarkup, failure, parsec
-, shakespeare, text
+{ cabal, blazeBuilder, blazeHtml, blazeMarkup, failure, hspec
+, HUnit, parsec, shakespeare, text
 }:
 
 cabal.mkDerivation (self: {
@@ -9,6 +9,7 @@ cabal.mkDerivation (self: {
   buildDepends = [
     blazeBuilder blazeHtml blazeMarkup failure parsec shakespeare text
   ];
+  testDepends = [ blazeHtml blazeMarkup hspec HUnit parsec text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
     description = "Haml-like template files that are compile-time checked";
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-server.nix b/pkgs/development/libraries/haskell/happstack/happstack-server.nix
index 3a0b9ab59b9..dba052a0fc1 100644
--- a/pkgs/development/libraries/haskell/happstack/happstack-server.nix
+++ b/pkgs/development/libraries/haskell/happstack/happstack-server.nix
@@ -1,7 +1,8 @@
 { cabal, base64Bytestring, blazeHtml, extensibleExceptions
-, filepath, hslogger, html, monadControl, mtl, network, parsec
-, sendfile, syb, systemFilepath, text, threads, time, timeCompat
-, transformers, transformersBase, utf8String, xhtml, zlib
+, filepath, hslogger, html, HUnit, monadControl, mtl, network
+, parsec, sendfile, syb, systemFilepath, text, threads, time
+, timeCompat, transformers, transformersBase, utf8String, xhtml
+, zlib
 }:
 
 cabal.mkDerivation (self: {
@@ -14,6 +15,7 @@ cabal.mkDerivation (self: {
     text threads time timeCompat transformers transformersBase
     utf8String xhtml zlib
   ];
+  testDepends = [ HUnit parsec zlib ];
   meta = {
     homepage = "http://happstack.com";
     description = "Web related tools and services";
diff --git a/pkgs/development/libraries/haskell/hashable/1.1.2.5.nix b/pkgs/development/libraries/haskell/hashable/1.1.2.5.nix
index 96fe7ae0eb1..ffb3f98e8b3 100644
--- a/pkgs/development/libraries/haskell/hashable/1.1.2.5.nix
+++ b/pkgs/development/libraries/haskell/hashable/1.1.2.5.nix
@@ -1,10 +1,15 @@
-{ cabal, text }:
+{ cabal, QuickCheck, random, testFramework
+, testFrameworkQuickcheck2, text
+}:
 
 cabal.mkDerivation (self: {
   pname = "hashable";
   version = "1.1.2.5";
   sha256 = "0gbiaj5ck2bvvinndp2pg7qsm2h2izbnz9wi97dbm7i8r4qd9d9z";
   buildDepends = [ text ];
+  testDepends = [
+    QuickCheck random testFramework testFrameworkQuickcheck2 text
+  ];
   meta = {
     homepage = "http://github.com/tibbe/hashable";
     description = "A class for types that can be converted to a hash value";
diff --git a/pkgs/development/libraries/haskell/hastache/default.nix b/pkgs/development/libraries/haskell/hastache/default.nix
index ff8aa25bd2d..15d32de346d 100644
--- a/pkgs/development/libraries/haskell/hastache/default.nix
+++ b/pkgs/development/libraries/haskell/hastache/default.nix
@@ -1,4 +1,4 @@
-{ cabal, blazeBuilder, filepath, ieee754, mtl, syb, text
+{ cabal, blazeBuilder, filepath, HUnit, ieee754, mtl, syb, text
 , transformers, utf8String
 }:
 
@@ -9,6 +9,7 @@ cabal.mkDerivation (self: {
   buildDepends = [
     blazeBuilder filepath ieee754 mtl syb text transformers utf8String
   ];
+  testDepends = [ HUnit mtl syb text ];
   meta = {
     homepage = "http://github.com/lymar/hastache";
     description = "Haskell implementation of Mustache templates";
diff --git a/pkgs/development/libraries/haskell/hjsmin/default.nix b/pkgs/development/libraries/haskell/hjsmin/default.nix
index 6538e17c41a..9551581dadf 100644
--- a/pkgs/development/libraries/haskell/hjsmin/default.nix
+++ b/pkgs/development/libraries/haskell/hjsmin/default.nix
@@ -1,10 +1,16 @@
-{ cabal, blazeBuilder, languageJavascript, text }:
+{ cabal, blazeBuilder, Cabal, HUnit, languageJavascript, QuickCheck
+, testFramework, testFrameworkHunit, text
+}:
 
 cabal.mkDerivation (self: {
   pname = "hjsmin";
   version = "0.1.4.1";
   sha256 = "0r73hd6kn37mdbm2i3g6v3qqm696kyflqs6ajq68qr5sr62sjb1a";
   buildDepends = [ blazeBuilder languageJavascript text ];
+  testDepends = [
+    blazeBuilder Cabal HUnit languageJavascript QuickCheck
+    testFramework testFrameworkHunit text
+  ];
   meta = {
     homepage = "http://github.com/alanz/hjsmin";
     description = "Haskell implementation of a javascript minifier";
diff --git a/pkgs/development/libraries/haskell/hsemail/default.nix b/pkgs/development/libraries/haskell/hsemail/default.nix
index bffe1ad5809..3880537e7ea 100644
--- a/pkgs/development/libraries/haskell/hsemail/default.nix
+++ b/pkgs/development/libraries/haskell/hsemail/default.nix
@@ -1,10 +1,11 @@
-{ cabal, mtl, parsec }:
+{ cabal, doctest, hspec, mtl, parsec }:
 
 cabal.mkDerivation (self: {
   pname = "hsemail";
   version = "1.7.5";
   sha256 = "0ls6y48bndwgb7ng29wxim4h36rs6b07dqi6ic4hqgbb7lg6fma4";
   buildDepends = [ mtl parsec ];
+  testDepends = [ doctest hspec parsec ];
   meta = {
     homepage = "http://gitorious.org/hsemail";
     description = "Internet Message Parsers";
diff --git a/pkgs/development/libraries/haskell/hspec-expectations/default.nix b/pkgs/development/libraries/haskell/hspec-expectations/default.nix
index e7d5756b759..4b84ad62784 100644
--- a/pkgs/development/libraries/haskell/hspec-expectations/default.nix
+++ b/pkgs/development/libraries/haskell/hspec-expectations/default.nix
@@ -1,10 +1,11 @@
-{ cabal, HUnit }:
+{ cabal, hspec, HUnit, markdownUnlit, silently }:
 
 cabal.mkDerivation (self: {
   pname = "hspec-expectations";
   version = "0.3.0.3";
   sha256 = "1ppcbfmcgrd1lwswa293fxwny6khhg4blygfbcsawrvgc5ji0q74";
   buildDepends = [ HUnit ];
+  testDepends = [ hspec HUnit markdownUnlit silently ];
   meta = {
     homepage = "https://github.com/sol/hspec-expectations#readme";
     description = "Catchy combinators for HUnit";
diff --git a/pkgs/development/libraries/haskell/hspec/default.nix b/pkgs/development/libraries/haskell/hspec/default.nix
index 4c897f20ef7..949874bfa91 100644
--- a/pkgs/development/libraries/haskell/hspec/default.nix
+++ b/pkgs/development/libraries/haskell/hspec/default.nix
@@ -1,5 +1,6 @@
-{ cabal, ansiTerminal, filepath, hspecExpectations, HUnit
-, QuickCheck, setenv, silently, time, transformers
+{ cabal, ansiTerminal, doctest, filepath, ghcPaths
+, hspecExpectations, hspecMeta, HUnit, QuickCheck, setenv, silently
+, time, transformers
 }:
 
 cabal.mkDerivation (self: {
@@ -12,6 +13,10 @@ cabal.mkDerivation (self: {
     ansiTerminal filepath hspecExpectations HUnit QuickCheck setenv
     silently time transformers
   ];
+  testDepends = [
+    ansiTerminal doctest filepath ghcPaths hspecExpectations hspecMeta
+    HUnit QuickCheck setenv silently time transformers
+  ];
   meta = {
     homepage = "http://hspec.github.com/";
     description = "Behavior-Driven Development for Haskell";
diff --git a/pkgs/development/libraries/haskell/html-conduit/default.nix b/pkgs/development/libraries/haskell/html-conduit/default.nix
index ff4b03c1e6a..eaf1754b622 100644
--- a/pkgs/development/libraries/haskell/html-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/html-conduit/default.nix
@@ -1,5 +1,6 @@
-{ cabal, conduit, filesystemConduit, resourcet, systemFilepath
-, tagstreamConduit, text, transformers, xmlConduit, xmlTypes
+{ cabal, conduit, filesystemConduit, hspec, HUnit, resourcet
+, systemFilepath, tagstreamConduit, text, transformers, xmlConduit
+, xmlTypes
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +11,7 @@ cabal.mkDerivation (self: {
     conduit filesystemConduit resourcet systemFilepath tagstreamConduit
     text transformers xmlConduit xmlTypes
   ];
+  testDepends = [ hspec HUnit xmlConduit ];
   meta = {
     homepage = "https://github.com/snoyberg/xml";
     description = "Parse HTML documents using xml-conduit datatypes";
diff --git a/pkgs/development/libraries/haskell/http-conduit/default.nix b/pkgs/development/libraries/haskell/http-conduit/default.nix
index ebb44f1512b..5ff4b4cd95e 100644
--- a/pkgs/development/libraries/haskell/http-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/http-conduit/default.nix
@@ -1,10 +1,10 @@
 { cabal, asn1Data, attoparsec, attoparsecConduit, base64Bytestring
 , blazeBuilder, blazeBuilderConduit, caseInsensitive, certificate
 , conduit, cookie, cprngAes, dataDefault, deepseq, failure
-, filepath, httpTypes, liftedBase, mimeTypes, monadControl, mtl
-, network, random, regexCompat, resourcet, socks, text, time, tls
-, tlsExtra, transformers, transformersBase, utf8String, void
-, zlibConduit
+, filepath, hspec, httpTypes, HUnit, liftedBase, mimeTypes
+, monadControl, mtl, network, networkConduit, random, regexCompat
+, resourcet, socks, text, time, tls, tlsExtra, transformers
+, transformersBase, utf8String, void, wai, warp, zlibConduit
 }:
 
 cabal.mkDerivation (self: {
@@ -19,6 +19,14 @@ cabal.mkDerivation (self: {
     socks text time tls tlsExtra transformers transformersBase
     utf8String void zlibConduit
   ];
+  testDepends = [
+    asn1Data attoparsec attoparsecConduit base64Bytestring blazeBuilder
+    blazeBuilderConduit caseInsensitive certificate conduit cookie
+    cprngAes dataDefault deepseq failure filepath hspec httpTypes HUnit
+    liftedBase mimeTypes monadControl mtl network networkConduit random
+    regexCompat resourcet socks text time tls tlsExtra transformers
+    transformersBase utf8String void wai warp zlibConduit
+  ];
   meta = {
     homepage = "http://www.yesodweb.com/book/http-conduit";
     description = "HTTP client package with conduit interface and HTTPS support";
diff --git a/pkgs/development/libraries/haskell/http-date/default.nix b/pkgs/development/libraries/haskell/http-date/default.nix
index 58d4dd7ecbf..3571c160f6b 100644
--- a/pkgs/development/libraries/haskell/http-date/default.nix
+++ b/pkgs/development/libraries/haskell/http-date/default.nix
@@ -1,10 +1,11 @@
-{ cabal, attoparsec }:
+{ cabal, attoparsec, doctest, hspec, time }:
 
 cabal.mkDerivation (self: {
   pname = "http-date";
   version = "0.0.4";
   sha256 = "1pbm066i1cpa3z2kfsqpva0qixnx87s76dpafz3wf6dkaqj8n8i5";
   buildDepends = [ attoparsec ];
+  testDepends = [ doctest hspec time ];
   meta = {
     description = "HTTP Date parser/formatter";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix b/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix
index 618438e927f..39091256ec0 100644
--- a/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix
+++ b/pkgs/development/libraries/haskell/http-reverse-proxy/default.nix
@@ -1,6 +1,7 @@
 { cabal, blazeBuilder, caseInsensitive, classyPrelude, conduit
-, dataDefault, httpConduit, httpTypes, liftedBase, monadControl
-, network, networkConduit, text, wai, warp, word8
+, dataDefault, hspec, httpConduit, httpTypes, liftedBase
+, monadControl, network, networkConduit, text, transformers, wai
+, warp, word8
 }:
 
 cabal.mkDerivation (self: {
@@ -12,6 +13,10 @@ cabal.mkDerivation (self: {
     httpConduit httpTypes liftedBase monadControl network
     networkConduit text wai warp word8
   ];
+  testDepends = [
+    blazeBuilder conduit hspec httpConduit httpTypes liftedBase network
+    networkConduit transformers wai warp
+  ];
   meta = {
     homepage = "https://github.com/fpco/http-reverse-proxy";
     description = "Reverse proxy HTTP requests, either over raw sockets or with WAI";
diff --git a/pkgs/development/libraries/haskell/http-types/default.nix b/pkgs/development/libraries/haskell/http-types/default.nix
index d0837d21bff..c4c064fbf81 100644
--- a/pkgs/development/libraries/haskell/http-types/default.nix
+++ b/pkgs/development/libraries/haskell/http-types/default.nix
@@ -1,10 +1,11 @@
-{ cabal, blazeBuilder, caseInsensitive, text }:
+{ cabal, blazeBuilder, caseInsensitive, hspec, QuickCheck, text }:
 
 cabal.mkDerivation (self: {
   pname = "http-types";
   version = "0.8.0";
   sha256 = "14d1gzgwhinkwx3lmc6hvqj6ivjrvy4m6fm2walnyk1zv24zli75";
   buildDepends = [ blazeBuilder caseInsensitive text ];
+  testDepends = [ blazeBuilder hspec QuickCheck text ];
   meta = {
     homepage = "https://github.com/aristidb/http-types";
     description = "Generic HTTP types for Haskell (for both client and server code)";
diff --git a/pkgs/development/libraries/haskell/io-choice/default.nix b/pkgs/development/libraries/haskell/io-choice/default.nix
index f8b1f1d51a4..cdf269b0d3c 100644
--- a/pkgs/development/libraries/haskell/io-choice/default.nix
+++ b/pkgs/development/libraries/haskell/io-choice/default.nix
@@ -1,4 +1,5 @@
-{ cabal, liftedBase, monadControl, transformers, transformersBase
+{ cabal, hspec, liftedBase, monadControl, transformers
+, transformersBase
 }:
 
 cabal.mkDerivation (self: {
@@ -8,6 +9,7 @@ cabal.mkDerivation (self: {
   buildDepends = [
     liftedBase monadControl transformers transformersBase
   ];
+  testDepends = [ hspec liftedBase monadControl transformers ];
   meta = {
     description = "Choice for IO and lifted IO";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/iproute/default.nix b/pkgs/development/libraries/haskell/iproute/default.nix
index c342f80a6c2..1ec2b659f0c 100644
--- a/pkgs/development/libraries/haskell/iproute/default.nix
+++ b/pkgs/development/libraries/haskell/iproute/default.nix
@@ -1,10 +1,15 @@
-{ cabal, appar, byteorder, network }:
+{ cabal, appar, byteorder, doctest, hspec, network, QuickCheck
+, Safe
+}:
 
 cabal.mkDerivation (self: {
   pname = "iproute";
   version = "1.2.10";
   sha256 = "1ni91llvq1mfdsjmw1laqhk964y4vlpyk5s25j8klsfn27mq6c68";
   buildDepends = [ appar byteorder network ];
+  testDepends = [
+    appar byteorder doctest hspec network QuickCheck Safe
+  ];
   meta = {
     homepage = "http://www.mew.org/~kazu/proj/iproute/";
     description = "IP Routing Table";
diff --git a/pkgs/development/libraries/haskell/language-c-quote/default.nix b/pkgs/development/libraries/haskell/language-c-quote/default.nix
index fc569f996a8..fc8c15edf57 100644
--- a/pkgs/development/libraries/haskell/language-c-quote/default.nix
+++ b/pkgs/development/libraries/haskell/language-c-quote/default.nix
@@ -1,5 +1,6 @@
 { cabal, alex, exceptionMtl, exceptionTransformers, filepath, happy
-, haskellSrcMeta, mainlandPretty, mtl, srcloc, syb, symbol
+, haskellSrcMeta, HUnit, mainlandPretty, mtl, srcloc, syb, symbol
+, testFramework, testFrameworkHunit
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +11,9 @@ cabal.mkDerivation (self: {
     exceptionMtl exceptionTransformers filepath haskellSrcMeta
     mainlandPretty mtl srcloc syb symbol
   ];
+  testDepends = [
+    HUnit srcloc symbol testFramework testFrameworkHunit
+  ];
   buildTools = [ alex happy ];
   jailbreak = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/language-javascript/default.nix b/pkgs/development/libraries/haskell/language-javascript/default.nix
index e05b93655e4..4571b869e3b 100644
--- a/pkgs/development/libraries/haskell/language-javascript/default.nix
+++ b/pkgs/development/libraries/haskell/language-javascript/default.nix
@@ -1,10 +1,16 @@
-{ cabal, blazeBuilder, happy, mtl, utf8Light, utf8String }:
+{ cabal, blazeBuilder, Cabal, happy, HUnit, mtl, QuickCheck
+, testFramework, testFrameworkHunit, utf8Light, utf8String
+}:
 
 cabal.mkDerivation (self: {
   pname = "language-javascript";
   version = "0.5.7";
   sha256 = "0mndz0bqxkayzm7g92cvai9ahb9msr99syp9djhaya1d45595ad3";
   buildDepends = [ blazeBuilder mtl utf8Light utf8String ];
+  testDepends = [
+    blazeBuilder Cabal HUnit mtl QuickCheck testFramework
+    testFrameworkHunit utf8Light utf8String
+  ];
   buildTools = [ happy ];
   meta = {
     homepage = "http://github.com/alanz/language-javascript";
diff --git a/pkgs/development/libraries/haskell/largeword/default.nix b/pkgs/development/libraries/haskell/largeword/default.nix
index 991213067f6..aa3cd5fcdf6 100644
--- a/pkgs/development/libraries/haskell/largeword/default.nix
+++ b/pkgs/development/libraries/haskell/largeword/default.nix
@@ -1,9 +1,15 @@
-{ cabal }:
+{ cabal, HUnit, QuickCheck, testFramework, testFrameworkHunit
+, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "largeword";
   version = "1.0.4";
   sha256 = "19nrzbbbmsvxdhfhh6wc53lbk0xyjvbcwvjw0snym666j1w2b2l5";
+  testDepends = [
+    HUnit QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "https://github.com/idontgetoutmuch/largeword";
     description = "Provides Word128, Word192 and Word256 and a way of producing other large words if required";
diff --git a/pkgs/development/libraries/haskell/leksah/leksah-server.nix b/pkgs/development/libraries/haskell/leksah/leksah-server.nix
index cfcc69641b5..1a907a384f1 100644
--- a/pkgs/development/libraries/haskell/leksah/leksah-server.nix
+++ b/pkgs/development/libraries/haskell/leksah/leksah-server.nix
@@ -1,6 +1,6 @@
 { cabal, attoparsec, attoparsecEnumerator, binary, binaryShared
-, Cabal, deepseq, enumerator, filepath, haddock, hslogger, ltk
-, network, parsec, processLeksah, strict, time, transformers
+, Cabal, deepseq, enumerator, filepath, haddock, hslogger, HUnit
+, ltk, network, parsec, processLeksah, strict, time, transformers
 }:
 
 cabal.mkDerivation (self: {
@@ -14,6 +14,7 @@ cabal.mkDerivation (self: {
     enumerator filepath haddock hslogger ltk network parsec
     processLeksah strict time transformers
   ];
+  testDepends = [ enumerator hslogger HUnit transformers ];
   meta = {
     homepage = "http://leksah.org";
     description = "Metadata collection for leksah";
diff --git a/pkgs/development/libraries/haskell/lens/default.nix b/pkgs/development/libraries/haskell/lens/default.nix
index b5f8851796e..bba84668958 100644
--- a/pkgs/development/libraries/haskell/lens/default.nix
+++ b/pkgs/development/libraries/haskell/lens/default.nix
@@ -1,9 +1,11 @@
 { cabal, bifunctors, comonad, comonadsFd, comonadTransformers
-, contravariant, distributive, filepath, genericDeriving, hashable
-, MonadCatchIOTransformers, mtl, parallel, profunctorExtras
-, profunctors, reflection, semigroupoids, semigroups, split, tagged
-, text, transformers, transformersCompat, unorderedContainers
-, vector, void
+, contravariant, deepseq, distributive, doctest, filepath
+, genericDeriving, hashable, HUnit, MonadCatchIOTransformers, mtl
+, nats, parallel, profunctorExtras, profunctors, QuickCheck
+, reflection, semigroupoids, semigroups, simpleReflect, split
+, tagged, testFramework, testFrameworkHunit
+, testFrameworkQuickcheck2, testFrameworkTh, text, transformers
+, transformersCompat, unorderedContainers, vector, void
 }:
 
 cabal.mkDerivation (self: {
@@ -17,6 +19,12 @@ cabal.mkDerivation (self: {
     reflection semigroupoids semigroups split tagged text transformers
     transformersCompat unorderedContainers vector void
   ];
+  testDepends = [
+    deepseq doctest filepath genericDeriving HUnit mtl nats parallel
+    QuickCheck semigroups simpleReflect split testFramework
+    testFrameworkHunit testFrameworkQuickcheck2 testFrameworkTh text
+    transformers unorderedContainers vector
+  ];
   meta = {
     homepage = "http://github.com/ekmett/lens/";
     description = "Lenses, Folds and Traversals";
diff --git a/pkgs/development/libraries/haskell/libmpd/default.nix b/pkgs/development/libraries/haskell/libmpd/default.nix
index fc77388727f..7402d6f31db 100644
--- a/pkgs/development/libraries/haskell/libmpd/default.nix
+++ b/pkgs/development/libraries/haskell/libmpd/default.nix
@@ -1,10 +1,15 @@
-{ cabal, filepath, mtl, network, text, time, utf8String }:
+{ cabal, dataDefault, filepath, hspec, HUnit, mtl, network
+, QuickCheck, text, time, utf8String
+}:
 
 cabal.mkDerivation (self: {
   pname = "libmpd";
   version = "0.8.0.2";
   sha256 = "1phlbb5lsapw2hb0db7906ddlmvnpyk1xbgxvl9zp9zfd0sn40aj";
   buildDepends = [ filepath mtl network text time utf8String ];
+  testDepends = [
+    dataDefault hspec HUnit mtl network QuickCheck text time utf8String
+  ];
   meta = {
     homepage = "http://github.com/joachifm/libmpd-haskell";
     description = "An MPD client library";
diff --git a/pkgs/development/libraries/haskell/lifted-base/default.nix b/pkgs/development/libraries/haskell/lifted-base/default.nix
index fbb09db9bb8..1d675e88d87 100644
--- a/pkgs/development/libraries/haskell/lifted-base/default.nix
+++ b/pkgs/development/libraries/haskell/lifted-base/default.nix
@@ -1,4 +1,6 @@
-{ cabal, baseUnicodeSymbols, monadControl, transformersBase }:
+{ cabal, baseUnicodeSymbols, HUnit, monadControl, testFramework
+, testFrameworkHunit, transformers, transformersBase
+}:
 
 cabal.mkDerivation (self: {
   pname = "lifted-base";
@@ -7,6 +9,10 @@ cabal.mkDerivation (self: {
   buildDepends = [
     baseUnicodeSymbols monadControl transformersBase
   ];
+  testDepends = [
+    HUnit monadControl testFramework testFrameworkHunit transformers
+    transformersBase
+  ];
   meta = {
     homepage = "https://github.com/basvandijk/lifted-base";
     description = "lifted IO operations from the base library";
diff --git a/pkgs/development/libraries/haskell/math-functions/default.nix b/pkgs/development/libraries/haskell/math-functions/default.nix
index 158feeee18a..2e29269a9fd 100644
--- a/pkgs/development/libraries/haskell/math-functions/default.nix
+++ b/pkgs/development/libraries/haskell/math-functions/default.nix
@@ -1,10 +1,16 @@
-{ cabal, erf, vector }:
+{ cabal, erf, HUnit, ieee754, QuickCheck, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2, vector
+}:
 
 cabal.mkDerivation (self: {
   pname = "math-functions";
   version = "0.1.3.0";
   sha256 = "06wxr8fbhmsgkpyx2vimx9l6apk0p27mwrxrvbjk0b7m9vsg3ay5";
   buildDepends = [ erf vector ];
+  testDepends = [
+    HUnit ieee754 QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2 vector
+  ];
   meta = {
     homepage = "https://github.com/bos/math-functions";
     description = "Special functions and Chebyshev polynomials";
diff --git a/pkgs/development/libraries/haskell/minimorph/default.nix b/pkgs/development/libraries/haskell/minimorph/default.nix
index 54fc100b7dd..06dcfaa1139 100644
--- a/pkgs/development/libraries/haskell/minimorph/default.nix
+++ b/pkgs/development/libraries/haskell/minimorph/default.nix
@@ -1,10 +1,11 @@
-{ cabal, text }:
+{ cabal, HUnit, testFramework, testFrameworkHunit, text }:
 
 cabal.mkDerivation (self: {
   pname = "minimorph";
   version = "0.1.4.0";
   sha256 = "16ri9hfriszrgqcm111b1pp5x65s034hrc35kjz5qax32mnc9rn6";
   buildDepends = [ text ];
+  testDepends = [ HUnit testFramework testFrameworkHunit text ];
   meta = {
     homepage = "http://darcsden.com/kowey/minimorph";
     description = "English spelling functions with an emphasis on simplicity";
diff --git a/pkgs/development/libraries/haskell/miniutter/default.nix b/pkgs/development/libraries/haskell/miniutter/default.nix
index b06ee1363c8..22018087226 100644
--- a/pkgs/development/libraries/haskell/miniutter/default.nix
+++ b/pkgs/development/libraries/haskell/miniutter/default.nix
@@ -1,10 +1,12 @@
-{ cabal, minimorph, text }:
+{ cabal, HUnit, minimorph, testFramework, testFrameworkHunit, text
+}:
 
 cabal.mkDerivation (self: {
   pname = "miniutter";
   version = "0.4.0";
   sha256 = "1l275aad8svrqp22jv9s0mmlam7wbdlf6m4m97658rm8ks4j2mbx";
   buildDepends = [ minimorph text ];
+  testDepends = [ HUnit testFramework testFrameworkHunit text ];
   meta = {
     homepage = "https://github.com/Mikolaj/miniutter";
     description = "Simple English clause creation from arbitrary words";
diff --git a/pkgs/development/libraries/haskell/monad-par/0.3.4.nix b/pkgs/development/libraries/haskell/monad-par/0.3.4.nix
index 8407daef642..f22ae9e106f 100644
--- a/pkgs/development/libraries/haskell/monad-par/0.3.4.nix
+++ b/pkgs/development/libraries/haskell/monad-par/0.3.4.nix
@@ -1,5 +1,7 @@
-{ cabal, abstractDeque, abstractPar, deepseq, monadParExtras, mtl
-, mwcRandom, parallel
+{ cabal, abstractDeque, abstractPar, deepseq, HUnit, monadParExtras
+, mtl, mwcRandom, parallel, QuickCheck, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2, testFrameworkTh
+, time
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +12,11 @@ cabal.mkDerivation (self: {
     abstractDeque abstractPar deepseq monadParExtras mtl mwcRandom
     parallel
   ];
+  testDepends = [
+    abstractDeque abstractPar deepseq HUnit monadParExtras mtl
+    mwcRandom QuickCheck testFramework testFrameworkHunit
+    testFrameworkQuickcheck2 testFrameworkTh time
+  ];
   meta = {
     homepage = "https://github.com/simonmar/monad-par";
     description = "A library for parallel programming based on a monad";
diff --git a/pkgs/development/libraries/haskell/mwc-random/default.nix b/pkgs/development/libraries/haskell/mwc-random/default.nix
index 1e2d56147c3..d20f4f061e4 100644
--- a/pkgs/development/libraries/haskell/mwc-random/default.nix
+++ b/pkgs/development/libraries/haskell/mwc-random/default.nix
@@ -1,10 +1,16 @@
-{ cabal, primitive, time, vector }:
+{ cabal, HUnit, primitive, QuickCheck, statistics, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2, time, vector
+}:
 
 cabal.mkDerivation (self: {
   pname = "mwc-random";
   version = "0.12.0.1";
   sha256 = "1sq4yxi231ka8rzwsihqziibs7amvl27ycr018wymm3yz36vsy7c";
   buildDepends = [ primitive time vector ];
+  testDepends = [
+    HUnit QuickCheck statistics testFramework testFrameworkHunit
+    testFrameworkQuickcheck2 vector
+  ];
   meta = {
     homepage = "https://github.com/bos/mwc-random";
     description = "Fast, high quality pseudo random number generation";
diff --git a/pkgs/development/libraries/haskell/network-conduit/default.nix b/pkgs/development/libraries/haskell/network-conduit/default.nix
index 67d44bd1ebb..032592f974b 100644
--- a/pkgs/development/libraries/haskell/network-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/network-conduit/default.nix
@@ -8,6 +8,7 @@ cabal.mkDerivation (self: {
   buildDepends = [
     conduit liftedBase monadControl network transformers
   ];
+  testDepends = [ conduit ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
     description = "Stream socket data using conduits";
diff --git a/pkgs/development/libraries/haskell/network-transport-tcp/default.nix b/pkgs/development/libraries/haskell/network-transport-tcp/default.nix
index fb313005bda..840712e3416 100644
--- a/pkgs/development/libraries/haskell/network-transport-tcp/default.nix
+++ b/pkgs/development/libraries/haskell/network-transport-tcp/default.nix
@@ -1,10 +1,20 @@
-{ cabal, dataAccessor, network, networkTransport }:
+{ cabal, dataAccessor, dataAccessorTransformers, HUnit
+, lockfreeQueue, mtl, network, networkTransport
+, networkTransportTests, QuickCheck, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2, transformers
+}:
 
 cabal.mkDerivation (self: {
   pname = "network-transport-tcp";
   version = "0.3.1";
   sha256 = "15i4qbx1s3dxaixn6kd2z1hsymfvpqzf4jpqd3mcbpjlgrn6craf";
   buildDepends = [ dataAccessor network networkTransport ];
+  testDepends = [
+    dataAccessor dataAccessorTransformers HUnit lockfreeQueue mtl
+    network networkTransport networkTransportTests QuickCheck
+    testFramework testFrameworkHunit testFrameworkQuickcheck2
+    transformers
+  ];
   meta = {
     homepage = "http://github.com/haskell-distributed/distributed-process";
     description = "TCP instantiation of Network.Transport";
diff --git a/pkgs/development/libraries/haskell/network/2.3.0.13.nix b/pkgs/development/libraries/haskell/network/2.3.0.13.nix
index 29452da7b2e..557dea081fd 100644
--- a/pkgs/development/libraries/haskell/network/2.3.0.13.nix
+++ b/pkgs/development/libraries/haskell/network/2.3.0.13.nix
@@ -1,10 +1,11 @@
-{ cabal, parsec }:
+{ cabal, HUnit, parsec, testFramework, testFrameworkHunit }:
 
 cabal.mkDerivation (self: {
   pname = "network";
   version = "2.3.0.13";
   sha256 = "0xw53czvcw8k49aqxmchc1rcd6pyxp4icwgp64625fnm3l4yjiq7";
   buildDepends = [ parsec ];
+  testDepends = [ HUnit testFramework testFrameworkHunit ];
   meta = {
     homepage = "http://github.com/haskell/network";
     description = "Low-level networking interface";
diff --git a/pkgs/development/libraries/haskell/network/2.3.1.0.nix b/pkgs/development/libraries/haskell/network/2.3.1.0.nix
index 28fa50d8342..dc0c1811e59 100644
--- a/pkgs/development/libraries/haskell/network/2.3.1.0.nix
+++ b/pkgs/development/libraries/haskell/network/2.3.1.0.nix
@@ -1,10 +1,11 @@
-{ cabal, parsec }:
+{ cabal, HUnit, parsec, testFramework, testFrameworkHunit }:
 
 cabal.mkDerivation (self: {
   pname = "network";
   version = "2.3.1.0";
   sha256 = "1fp25wkl5cc4kx0jv5w02b7pzgqadjg1yrknzzwsqxc5s3cpyz6l";
   buildDepends = [ parsec ];
+  testDepends = [ HUnit testFramework testFrameworkHunit ];
   meta = {
     homepage = "http://github.com/haskell/network";
     description = "Low-level networking interface";
diff --git a/pkgs/development/libraries/haskell/network/2.4.1.2.nix b/pkgs/development/libraries/haskell/network/2.4.1.2.nix
index 4009bbd9464..6f245cf1840 100644
--- a/pkgs/development/libraries/haskell/network/2.4.1.2.nix
+++ b/pkgs/development/libraries/haskell/network/2.4.1.2.nix
@@ -1,10 +1,15 @@
-{ cabal, parsec }:
+{ cabal, HUnit, parsec, testFramework, testFrameworkHunit
+, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "network";
   version = "2.4.1.2";
   sha256 = "0f7ykdv7xbsr5m3h2ml0hw3nlbnq785m0gr624pwk2s289jwakdh";
   buildDepends = [ parsec ];
+  testDepends = [
+    HUnit testFramework testFrameworkHunit testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "https://github.com/haskell/network";
     description = "Low-level networking interface";
diff --git a/pkgs/development/libraries/haskell/numbers/default.nix b/pkgs/development/libraries/haskell/numbers/default.nix
index d1485b7cf1f..002f68eded7 100644
--- a/pkgs/development/libraries/haskell/numbers/default.nix
+++ b/pkgs/development/libraries/haskell/numbers/default.nix
@@ -1,9 +1,12 @@
-{ cabal }:
+{ cabal, QuickCheck, testFramework, testFrameworkQuickcheck2 }:
 
 cabal.mkDerivation (self: {
   pname = "numbers";
   version = "3000.1.0.1";
   sha256 = "0r2s47nfdxasnp8j7giwpxls9v48f6ld0gc2hg2p7y2ar5xfrcc4";
+  testDepends = [
+    QuickCheck testFramework testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "https://github.com/DanBurton/numbers";
     description = "Various number types";
diff --git a/pkgs/development/libraries/haskell/optparse-applicative/default.nix b/pkgs/development/libraries/haskell/optparse-applicative/default.nix
index 3e04a33990e..46f530b8cd4 100644
--- a/pkgs/development/libraries/haskell/optparse-applicative/default.nix
+++ b/pkgs/development/libraries/haskell/optparse-applicative/default.nix
@@ -1,10 +1,15 @@
-{ cabal, transformers }:
+{ cabal, HUnit, testFramework, testFrameworkHunit
+, testFrameworkThPrime, transformers
+}:
 
 cabal.mkDerivation (self: {
   pname = "optparse-applicative";
   version = "0.5.2.1";
   sha256 = "0w4mk851mx8dch8lnck0g82asmzrsc47xrf34jygh0f6v4kbj40i";
   buildDepends = [ transformers ];
+  testDepends = [
+    HUnit testFramework testFrameworkHunit testFrameworkThPrime
+  ];
   meta = {
     homepage = "https://github.com/pcapriotti/optparse-applicative";
     description = "Utilities and combinators for parsing command line options";
diff --git a/pkgs/development/libraries/haskell/path-pieces/default.nix b/pkgs/development/libraries/haskell/path-pieces/default.nix
index 5abc6309146..14b9f8d7081 100644
--- a/pkgs/development/libraries/haskell/path-pieces/default.nix
+++ b/pkgs/development/libraries/haskell/path-pieces/default.nix
@@ -1,10 +1,11 @@
-{ cabal, text, time }:
+{ cabal, fileLocation, hspec, HUnit, QuickCheck, text, time }:
 
 cabal.mkDerivation (self: {
   pname = "path-pieces";
   version = "0.1.2";
   sha256 = "1cxsa8lq1f2jf86iv6f17nraiav8k2vzjxln1y7z45qhcp1sbbaa";
   buildDepends = [ text time ];
+  testDepends = [ fileLocation hspec HUnit QuickCheck text ];
   meta = {
     description = "Components of paths";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/pem/default.nix b/pkgs/development/libraries/haskell/pem/default.nix
index b82dc4ed83d..16b47a9c8ae 100644
--- a/pkgs/development/libraries/haskell/pem/default.nix
+++ b/pkgs/development/libraries/haskell/pem/default.nix
@@ -1,10 +1,15 @@
-{ cabal, attoparsec, base64Bytestring, cereal, mtl }:
+{ cabal, attoparsec, base64Bytestring, cereal, mtl, QuickCheck
+, testFramework, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "pem";
   version = "0.1.2";
   sha256 = "1p2sw36b9w6lf53jzj86ibyy9a48fjd786mx3x8mvc5lczx8v78m";
   buildDepends = [ attoparsec base64Bytestring cereal mtl ];
+  testDepends = [
+    QuickCheck testFramework testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-pem";
     description = "Privacy Enhanced Mail (PEM) format reader and writer";
diff --git a/pkgs/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix
index 2816a38c413..117a63618d4 100644
--- a/pkgs/development/libraries/haskell/persistent-template/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -1,10 +1,13 @@
-{ cabal, aeson, monadControl, persistent, text, transformers }:
+{ cabal, aeson, hspec, monadControl, persistent, QuickCheck, text
+, transformers
+}:
 
 cabal.mkDerivation (self: {
   pname = "persistent-template";
   version = "1.1.2.4";
   sha256 = "0fsqyv5r6h356shmah6bs75fzds0fsmyizbnvj5ywzhc003jv5h9";
   buildDepends = [ aeson monadControl persistent text transformers ];
+  testDepends = [ aeson hspec persistent QuickCheck text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/persistent";
     description = "Type-safe, non-relational, multi-backend persistence";
diff --git a/pkgs/development/libraries/haskell/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index f7812a2692d..036deebae20 100644
--- a/pkgs/development/libraries/haskell/persistent/default.nix
+++ b/pkgs/development/libraries/haskell/persistent/default.nix
@@ -1,7 +1,8 @@
 { cabal, aeson, attoparsec, base64Bytestring, blazeHtml
-, blazeMarkup, conduit, liftedBase, monadControl, monadLogger
-, pathPieces, poolConduit, resourcet, silently, sqlite, text, time
-, transformers, transformersBase, unorderedContainers, vector
+, blazeMarkup, conduit, hspec, liftedBase, monadControl
+, monadLogger, pathPieces, poolConduit, resourcet, silently, sqlite
+, text, time, transformers, transformersBase, unorderedContainers
+, vector
 }:
 
 cabal.mkDerivation (self: {
@@ -14,6 +15,7 @@ cabal.mkDerivation (self: {
     resourcet silently text time transformers transformersBase
     unorderedContainers vector
   ];
+  testDepends = [ hspec text ];
   extraLibraries = [ sqlite ];
   meta = {
     homepage = "http://www.yesodweb.com/book/persistent";
diff --git a/pkgs/development/libraries/haskell/postgresql-simple/default.nix b/pkgs/development/libraries/haskell/postgresql-simple/default.nix
index 3e3a1b7dbfd..29c74d84015 100644
--- a/pkgs/development/libraries/haskell/postgresql-simple/default.nix
+++ b/pkgs/development/libraries/haskell/postgresql-simple/default.nix
@@ -1,5 +1,6 @@
-{ cabal, attoparsec, blazeBuilder, blazeTextual, postgresqlLibpq
-, text, time, transformers, vector
+{ cabal, attoparsec, base16Bytestring, blazeBuilder, blazeTextual
+, cryptohash, HUnit, postgresqlLibpq, text, time, transformers
+, vector
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +11,7 @@ cabal.mkDerivation (self: {
     attoparsec blazeBuilder blazeTextual postgresqlLibpq text time
     transformers vector
   ];
+  testDepends = [ base16Bytestring cryptohash HUnit text time ];
   meta = {
     description = "Mid-Level PostgreSQL client library";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/project-template/default.nix b/pkgs/development/libraries/haskell/project-template/default.nix
index 541fa2026d9..fa60370f1f5 100644
--- a/pkgs/development/libraries/haskell/project-template/default.nix
+++ b/pkgs/development/libraries/haskell/project-template/default.nix
@@ -1,5 +1,6 @@
 { cabal, base64Bytestring, base64Conduit, classyPrelude, conduit
-, mtl, resourcet, systemFileio, systemFilepath, text, transformers
+, hspec, mtl, QuickCheck, resourcet, systemFileio, systemFilepath
+, text, transformers
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +11,10 @@ cabal.mkDerivation (self: {
     base64Bytestring base64Conduit classyPrelude conduit mtl resourcet
     systemFileio systemFilepath text transformers
   ];
+  testDepends = [
+    base64Bytestring classyPrelude conduit hspec QuickCheck
+    transformers
+  ];
   meta = {
     homepage = "https://github.com/fpco/haskell-ide";
     description = "Specify Haskell project templates and generate files";
diff --git a/pkgs/development/libraries/haskell/publicsuffixlist/default.nix b/pkgs/development/libraries/haskell/publicsuffixlist/default.nix
index 53b7062cd0d..1f38962ddd3 100644
--- a/pkgs/development/libraries/haskell/publicsuffixlist/default.nix
+++ b/pkgs/development/libraries/haskell/publicsuffixlist/default.nix
@@ -1,10 +1,11 @@
-{ cabal, cereal, dataDefault, text, utf8String }:
+{ cabal, cereal, dataDefault, HUnit, idna, text, utf8String }:
 
 cabal.mkDerivation (self: {
   pname = "publicsuffixlist";
   version = "0.0.3";
   sha256 = "1drsm1zp30629rzy0693ggzcx46b7ydzzafmf07mjanmn1kyyqci";
   buildDepends = [ cereal dataDefault text utf8String ];
+  testDepends = [ cereal dataDefault HUnit idna text utf8String ];
   meta = {
     homepage = "https://github.com/litherum/publicsuffixlist";
     description = "Is a given string a domain suffix?";
diff --git a/pkgs/development/libraries/haskell/reactive-banana/default.nix b/pkgs/development/libraries/haskell/reactive-banana/default.nix
index ef4016d003d..8d62f67a128 100644
--- a/pkgs/development/libraries/haskell/reactive-banana/default.nix
+++ b/pkgs/development/libraries/haskell/reactive-banana/default.nix
@@ -1,10 +1,16 @@
-{ cabal, hashable, transformers, unorderedContainers, vault }:
+{ cabal, hashable, HUnit, testFramework, testFrameworkHunit
+, transformers, unorderedContainers, vault
+}:
 
 cabal.mkDerivation (self: {
   pname = "reactive-banana";
   version = "0.7.1.1";
   sha256 = "0d4dqpzglzkygy2hhn1j1c7vk2782mk66f8aqaadkyhijn7kc6i5";
   buildDepends = [ hashable transformers unorderedContainers vault ];
+  testDepends = [
+    hashable HUnit testFramework testFrameworkHunit transformers
+    unorderedContainers vault
+  ];
   meta = {
     homepage = "http://haskell.org/haskellwiki/Reactive-banana";
     description = "Practical library for functional reactive programming (FRP)";
diff --git a/pkgs/development/libraries/haskell/resourcet/default.nix b/pkgs/development/libraries/haskell/resourcet/default.nix
index f657f4e0ca5..35b7fec3276 100644
--- a/pkgs/development/libraries/haskell/resourcet/default.nix
+++ b/pkgs/development/libraries/haskell/resourcet/default.nix
@@ -1,4 +1,4 @@
-{ cabal, liftedBase, monadControl, mtl, transformers
+{ cabal, hspec, liftedBase, monadControl, mtl, transformers
 , transformersBase
 }:
 
@@ -9,6 +9,7 @@ cabal.mkDerivation (self: {
   buildDepends = [
     liftedBase monadControl mtl transformers transformersBase
   ];
+  testDepends = [ hspec liftedBase transformers ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
     description = "Deterministic allocation and freeing of scarce resources";
diff --git a/pkgs/development/libraries/haskell/setenv/default.nix b/pkgs/development/libraries/haskell/setenv/default.nix
index 8ce0b125416..fd94874e364 100644
--- a/pkgs/development/libraries/haskell/setenv/default.nix
+++ b/pkgs/development/libraries/haskell/setenv/default.nix
@@ -1,9 +1,10 @@
-{ cabal }:
+{ cabal, hspec, QuickCheck }:
 
 cabal.mkDerivation (self: {
   pname = "setenv";
   version = "0.1.0";
   sha256 = "04w42bpfbrs5crjp19zzi9dg61xpz4wvmjs2vc7q7qxblyhdfdsy";
+  testDepends = [ hspec QuickCheck ];
   meta = {
     description = "A cross-platform library for setting environment variables";
     license = self.stdenv.lib.licenses.mit;
diff --git a/pkgs/development/libraries/haskell/shakespeare-css/default.nix b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
index 5016b816ff7..56174254c21 100644
--- a/pkgs/development/libraries/haskell/shakespeare-css/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
@@ -1,10 +1,11 @@
-{ cabal, parsec, shakespeare, text, transformers }:
+{ cabal, hspec, HUnit, parsec, shakespeare, text, transformers }:
 
 cabal.mkDerivation (self: {
   pname = "shakespeare-css";
   version = "1.0.3";
   sha256 = "0zk4nb4v9x04vkkgbzqanfpqgw9pqinf76l7d85fzclfgwacd0bz";
   buildDepends = [ parsec shakespeare text transformers ];
+  testDepends = [ hspec HUnit shakespeare text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
     description = "Stick your haskell variables into css at compile time";
diff --git a/pkgs/development/libraries/haskell/shakespeare-js/default.nix b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
index 01bf73fd501..55bf276d1f8 100644
--- a/pkgs/development/libraries/haskell/shakespeare-js/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
@@ -1,10 +1,11 @@
-{ cabal, aeson, shakespeare, text }:
+{ cabal, aeson, hspec, HUnit, shakespeare, text }:
 
 cabal.mkDerivation (self: {
   pname = "shakespeare-js";
   version = "1.1.2";
   sha256 = "0iwajn0d0yngzp10j9qbb2gpq1g7r390yqd7pj5dri35rjc6mr8n";
   buildDepends = [ aeson shakespeare text ];
+  testDepends = [ aeson hspec HUnit shakespeare text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
     description = "Stick your haskell variables into javascript/coffeescript at compile time";
diff --git a/pkgs/development/libraries/haskell/shakespeare-text/default.nix b/pkgs/development/libraries/haskell/shakespeare-text/default.nix
index 4e9516d107c..d4cc135cc62 100644
--- a/pkgs/development/libraries/haskell/shakespeare-text/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare-text/default.nix
@@ -1,10 +1,11 @@
-{ cabal, shakespeare, text }:
+{ cabal, hspec, HUnit, shakespeare, text }:
 
 cabal.mkDerivation (self: {
   pname = "shakespeare-text";
   version = "1.0.0.5";
   sha256 = "176yzx43sh0fnxpszn8kximd6i96yf2s374z55kvc1kspf7jk736";
   buildDepends = [ shakespeare text ];
+  testDepends = [ hspec HUnit text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
     description = "Interpolation with quasi-quotation: put variables strings";
diff --git a/pkgs/development/libraries/haskell/shakespeare/default.nix b/pkgs/development/libraries/haskell/shakespeare/default.nix
index 0e04ff4fd44..d38002eebda 100644
--- a/pkgs/development/libraries/haskell/shakespeare/default.nix
+++ b/pkgs/development/libraries/haskell/shakespeare/default.nix
@@ -1,10 +1,11 @@
-{ cabal, parsec, text }:
+{ cabal, hspec, parsec, text }:
 
 cabal.mkDerivation (self: {
   pname = "shakespeare";
   version = "1.0.3.1";
   sha256 = "08w1g19k9v9dvdy45j32kdic8vjhc10ad4g20q5ya0id4cd13qfs";
   buildDepends = [ parsec text ];
+  testDepends = [ hspec parsec text ];
   meta = {
     homepage = "http://www.yesodweb.com/book/shakespearean-templates";
     description = "A toolkit for making compile-time interpolated templates";
diff --git a/pkgs/development/libraries/haskell/shelly/default.nix b/pkgs/development/libraries/haskell/shelly/default.nix
index 15245bfe0bc..325021c1cca 100644
--- a/pkgs/development/libraries/haskell/shelly/default.nix
+++ b/pkgs/development/libraries/haskell/shelly/default.nix
@@ -1,4 +1,5 @@
-{ cabal, mtl, systemFileio, systemFilepath, text, time, unixCompat
+{ cabal, hspec, HUnit, mtl, systemFileio, systemFilepath, text
+, time, unixCompat
 }:
 
 cabal.mkDerivation (self: {
@@ -8,6 +9,9 @@ cabal.mkDerivation (self: {
   buildDepends = [
     mtl systemFileio systemFilepath text time unixCompat
   ];
+  testDepends = [
+    hspec HUnit mtl systemFileio systemFilepath text time unixCompat
+  ];
   meta = {
     homepage = "https://github.com/yesodweb/Shelly.hs";
     description = "shell-like (systems) programming in Haskell";
diff --git a/pkgs/development/libraries/haskell/silently/default.nix b/pkgs/development/libraries/haskell/silently/default.nix
index c8223cecac4..fcd7a0a872a 100644
--- a/pkgs/development/libraries/haskell/silently/default.nix
+++ b/pkgs/development/libraries/haskell/silently/default.nix
@@ -1,10 +1,11 @@
-{ cabal, deepseq }:
+{ cabal, deepseq, nanospec }:
 
 cabal.mkDerivation (self: {
   pname = "silently";
   version = "1.2.4.1";
   sha256 = "035dw3zg680ykyz5rqkkrjn51wkznbc4jb45a8l2gh3vgqzgbf52";
   buildDepends = [ deepseq ];
+  testDepends = [ deepseq nanospec ];
   meta = {
     homepage = "https://github.com/trystan/silently";
     description = "Prevent or capture writing to stdout and other handles";
diff --git a/pkgs/development/libraries/haskell/simple-sendfile/default.nix b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
index 7ecd70f25f7..9ad2bd4405b 100644
--- a/pkgs/development/libraries/haskell/simple-sendfile/default.nix
+++ b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
@@ -1,10 +1,11 @@
-{ cabal, network }:
+{ cabal, conduit, hspec, HUnit, network, networkConduit }:
 
 cabal.mkDerivation (self: {
   pname = "simple-sendfile";
   version = "0.2.11";
   sha256 = "1q9m9lxv9jfkn6a1lf07jcl4li3n5996df1qrfkfjq2n0bvn4qfj";
   buildDepends = [ network ];
+  testDepends = [ conduit hspec HUnit network networkConduit ];
   meta = {
     description = "Cross platform library for the sendfile system call";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/skein/default.nix b/pkgs/development/libraries/haskell/skein/default.nix
index cc910711768..7fdb7e3a1dc 100644
--- a/pkgs/development/libraries/haskell/skein/default.nix
+++ b/pkgs/development/libraries/haskell/skein/default.nix
@@ -1,10 +1,11 @@
-{ cabal, cereal, cryptoApi, tagged }:
+{ cabal, cereal, cryptoApi, filepath, hspec, tagged }:
 
 cabal.mkDerivation (self: {
   pname = "skein";
   version = "0.1.0.12";
   sha256 = "1nx0ad0y7zmljc7phwin2aph6frs70hvz3di8q52kzpi5m1h3g3a";
   buildDepends = [ cereal cryptoApi tagged ];
+  testDepends = [ cereal cryptoApi filepath hspec tagged ];
   meta = {
     homepage = "https://github.com/meteficha/skein";
     description = "Skein, a family of cryptographic hash functions. Includes Skein-MAC as well.";
diff --git a/pkgs/development/libraries/haskell/split/0.2.1.1.nix b/pkgs/development/libraries/haskell/split/0.2.1.1.nix
index e106b2687f5..0fb28b53ac9 100644
--- a/pkgs/development/libraries/haskell/split/0.2.1.1.nix
+++ b/pkgs/development/libraries/haskell/split/0.2.1.1.nix
@@ -1,9 +1,10 @@
-{ cabal }:
+{ cabal, QuickCheck }:
 
 cabal.mkDerivation (self: {
   pname = "split";
   version = "0.2.1.1";
   sha256 = "1zzp4dwf846s74a4lhw2gf4awsk9iblhl5zcg2zccgv1lr4w2dmz";
+  testDepends = [ QuickCheck ];
   meta = {
     description = "Combinator library for splitting lists";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/split/0.2.1.2.nix b/pkgs/development/libraries/haskell/split/0.2.1.2.nix
index e88f478f976..e98e36fe655 100644
--- a/pkgs/development/libraries/haskell/split/0.2.1.2.nix
+++ b/pkgs/development/libraries/haskell/split/0.2.1.2.nix
@@ -1,9 +1,10 @@
-{ cabal }:
+{ cabal, QuickCheck }:
 
 cabal.mkDerivation (self: {
   pname = "split";
   version = "0.2.1.2";
   sha256 = "0wjw4j9wgk66h7filzfh0py9b0wwmaynvwqvd6kinxgms86fpvyi";
+  testDepends = [ QuickCheck ];
   meta = {
     description = "Combinator library for splitting lists";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/statistics/default.nix b/pkgs/development/libraries/haskell/statistics/default.nix
index de1fd4533ef..923cdf879a5 100644
--- a/pkgs/development/libraries/haskell/statistics/default.nix
+++ b/pkgs/development/libraries/haskell/statistics/default.nix
@@ -1,5 +1,7 @@
-{ cabal, deepseq, erf, mathFunctions, monadPar, mwcRandom
-, primitive, vector, vectorAlgorithms
+{ cabal, deepseq, erf, HUnit, ieee754, mathFunctions, monadPar
+, mwcRandom, primitive, QuickCheck, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2, vector
+, vectorAlgorithms
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +12,10 @@ cabal.mkDerivation (self: {
     deepseq erf mathFunctions monadPar mwcRandom primitive vector
     vectorAlgorithms
   ];
+  testDepends = [
+    erf HUnit ieee754 mathFunctions primitive QuickCheck testFramework
+    testFrameworkHunit testFrameworkQuickcheck2 vector vectorAlgorithms
+  ];
   meta = {
     homepage = "https://github.com/bos/statistics";
     description = "A library of statistical types, data, and functions";
diff --git a/pkgs/development/libraries/haskell/stylish-haskell/default.nix b/pkgs/development/libraries/haskell/stylish-haskell/default.nix
index 1ca325cbf17..18105124962 100644
--- a/pkgs/development/libraries/haskell/stylish-haskell/default.nix
+++ b/pkgs/development/libraries/haskell/stylish-haskell/default.nix
@@ -1,5 +1,5 @@
-{ cabal, aeson, cmdargs, filepath, haskellSrcExts, mtl, strict, syb
-, yaml
+{ cabal, aeson, cmdargs, filepath, haskellSrcExts, HUnit, mtl
+, strict, syb, testFramework, testFrameworkHunit, yaml
 }:
 
 cabal.mkDerivation (self: {
@@ -11,6 +11,10 @@ cabal.mkDerivation (self: {
   buildDepends = [
     aeson cmdargs filepath haskellSrcExts mtl strict syb yaml
   ];
+  testDepends = [
+    aeson cmdargs filepath haskellSrcExts HUnit mtl syb testFramework
+    testFrameworkHunit yaml
+  ];
   meta = {
     homepage = "https://github.com/jaspervdj/stylish-haskell";
     description = "Haskell code prettifier";
diff --git a/pkgs/development/libraries/haskell/tagstream-conduit/default.nix b/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
index 38f4375becd..1b290bd310b 100644
--- a/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/tagstream-conduit/default.nix
@@ -1,5 +1,6 @@
 { cabal, attoparsec, attoparsecConduit, blazeBuilder
-, blazeBuilderConduit, caseInsensitive, conduit, text, transformers
+, blazeBuilderConduit, caseInsensitive, conduit, hspec, HUnit
+, QuickCheck, text, transformers
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +11,7 @@ cabal.mkDerivation (self: {
     attoparsec attoparsecConduit blazeBuilder blazeBuilderConduit
     caseInsensitive conduit text transformers
   ];
+  testDepends = [ conduit hspec HUnit QuickCheck text ];
   meta = {
     homepage = "http://github.com/yihuang/tagstream-conduit";
     description = "streamlined html tag parser";
diff --git a/pkgs/development/libraries/haskell/text/0.11.1.13.nix b/pkgs/development/libraries/haskell/text/0.11.1.13.nix
index edf109a79cf..aaf278a0a69 100644
--- a/pkgs/development/libraries/haskell/text/0.11.1.13.nix
+++ b/pkgs/development/libraries/haskell/text/0.11.1.13.nix
@@ -1,10 +1,16 @@
-{ cabal, deepseq }:
+{ cabal, deepseq, HUnit, QuickCheck, random, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "text";
   version = "0.11.1.13";
   sha256 = "0lbc4yfqpydps0rd1qjymnnhp87sl9w7n1f5vd5lsixby93zjv2f";
   buildDepends = [ deepseq ];
+  testDepends = [
+    deepseq HUnit QuickCheck random testFramework testFrameworkHunit
+    testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "https://github.com/bos/text";
     description = "An efficient packed Unicode text type";
diff --git a/pkgs/development/libraries/haskell/text/0.11.2.0.nix b/pkgs/development/libraries/haskell/text/0.11.2.0.nix
index 213464f3f19..870438ea31f 100644
--- a/pkgs/development/libraries/haskell/text/0.11.2.0.nix
+++ b/pkgs/development/libraries/haskell/text/0.11.2.0.nix
@@ -1,10 +1,16 @@
-{ cabal, deepseq }:
+{ cabal, deepseq, HUnit, QuickCheck, random, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "text";
   version = "0.11.2.0";
   sha256 = "1fx5302m41awzbms410x3gcixsck36rl7i1ma7pz6l5d1pmi538p";
   buildDepends = [ deepseq ];
+  testDepends = [
+    deepseq HUnit QuickCheck random testFramework testFrameworkHunit
+    testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "https://github.com/bos/text";
     description = "An efficient packed Unicode text type";
diff --git a/pkgs/development/libraries/haskell/text/0.11.2.3.nix b/pkgs/development/libraries/haskell/text/0.11.2.3.nix
index e1f0c6ea72d..a7089c94cfb 100644
--- a/pkgs/development/libraries/haskell/text/0.11.2.3.nix
+++ b/pkgs/development/libraries/haskell/text/0.11.2.3.nix
@@ -1,10 +1,16 @@
-{ cabal, deepseq }:
+{ cabal, deepseq, HUnit, QuickCheck, random, testFramework
+, testFrameworkHunit, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "text";
   version = "0.11.2.3";
   sha256 = "0jrl3qbi91gkcnws9crsa59jsmmbjy91fwvl07qka9m48nq3f9rm";
   buildDepends = [ deepseq ];
+  testDepends = [
+    deepseq HUnit QuickCheck random testFramework testFrameworkHunit
+    testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "https://github.com/bos/text";
     description = "An efficient packed Unicode text type";
diff --git a/pkgs/development/libraries/haskell/threads/default.nix b/pkgs/development/libraries/haskell/threads/default.nix
index 8f5008032f6..a3327e88ba6 100644
--- a/pkgs/development/libraries/haskell/threads/default.nix
+++ b/pkgs/development/libraries/haskell/threads/default.nix
@@ -1,10 +1,16 @@
-{ cabal, baseUnicodeSymbols, stm }:
+{ cabal, baseUnicodeSymbols, concurrentExtra, HUnit, stm
+, testFramework, testFrameworkHunit
+}:
 
 cabal.mkDerivation (self: {
   pname = "threads";
   version = "0.5.0.1";
   sha256 = "0amyaxa70q6v021nab6v3cfqc40mwj5dr2fwla9d4bm6ppmq6lyy";
   buildDepends = [ baseUnicodeSymbols stm ];
+  testDepends = [
+    baseUnicodeSymbols concurrentExtra HUnit stm testFramework
+    testFrameworkHunit
+  ];
   meta = {
     homepage = "https://github.com/basvandijk/threads";
     description = "Fork threads and wait for their result";
diff --git a/pkgs/development/libraries/haskell/time/1.4.0.2.nix b/pkgs/development/libraries/haskell/time/1.4.0.2.nix
index ce429c8d602..62232d1aa5a 100644
--- a/pkgs/development/libraries/haskell/time/1.4.0.2.nix
+++ b/pkgs/development/libraries/haskell/time/1.4.0.2.nix
@@ -1,10 +1,15 @@
-{ cabal, deepseq }:
+{ cabal, Cabal, deepseq, QuickCheck, testFramework
+, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "time";
   version = "1.4.0.2";
   sha256 = "0p4ncankr9968lp4fnbq6pc5xwv2198gxhbds656da9jbv74w7j8";
   buildDepends = [ deepseq ];
+  testDepends = [
+    Cabal deepseq QuickCheck testFramework testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "http://semantic.org/TimeLib/";
     description = "A time library";
diff --git a/pkgs/development/libraries/haskell/tls/default.nix b/pkgs/development/libraries/haskell/tls/default.nix
index af7b4c57bb7..a935b8ad4d5 100644
--- a/pkgs/development/libraries/haskell/tls/default.nix
+++ b/pkgs/development/libraries/haskell/tls/default.nix
@@ -1,5 +1,6 @@
-{ cabal, cereal, certificate, cryptohash, cryptoPubkey
-, cryptoRandomApi, mtl, network
+{ cabal, cereal, certificate, cprngAes, cryptohash, cryptoPubkey
+, cryptoRandomApi, mtl, network, QuickCheck, testFramework
+, testFrameworkQuickcheck2, time
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +11,10 @@ cabal.mkDerivation (self: {
     cereal certificate cryptohash cryptoPubkey cryptoRandomApi mtl
     network
   ];
+  testDepends = [
+    cereal certificate cprngAes cryptoPubkey cryptoRandomApi mtl
+    QuickCheck testFramework testFrameworkQuickcheck2 time
+  ];
   meta = {
     homepage = "http://github.com/vincenthz/hs-tls";
     description = "TLS/SSL protocol native implementation (Server and Client)";
diff --git a/pkgs/development/libraries/haskell/unix-time/default.nix b/pkgs/development/libraries/haskell/unix-time/default.nix
index 24edaf80626..ddb24e46f4d 100644
--- a/pkgs/development/libraries/haskell/unix-time/default.nix
+++ b/pkgs/development/libraries/haskell/unix-time/default.nix
@@ -1,9 +1,10 @@
-{ cabal }:
+{ cabal, doctest, hspec, QuickCheck, time }:
 
 cabal.mkDerivation (self: {
   pname = "unix-time";
   version = "0.1.5";
   sha256 = "13xks5kshr51mbs112j8vvhirzhbi3fq6zjw7l4z2iwn8chh4hwg";
+  testDepends = [ doctest hspec QuickCheck time ];
   meta = {
     description = "Unix time parser/formatter and utilities";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/unordered-containers/default.nix b/pkgs/development/libraries/haskell/unordered-containers/default.nix
index 786eb59ec10..2f786eba949 100644
--- a/pkgs/development/libraries/haskell/unordered-containers/default.nix
+++ b/pkgs/development/libraries/haskell/unordered-containers/default.nix
@@ -1,10 +1,16 @@
-{ cabal, deepseq, hashable }:
+{ cabal, ChasingBottoms, deepseq, hashable, HUnit, QuickCheck
+, testFramework, testFrameworkHunit, testFrameworkQuickcheck2
+}:
 
 cabal.mkDerivation (self: {
   pname = "unordered-containers";
   version = "0.2.3.0";
   sha256 = "1vzgjr9jxdkmgq970ng9zi2j60awvx8iv1v6kzjlrkwzxx1a9dpd";
   buildDepends = [ deepseq hashable ];
+  testDepends = [
+    ChasingBottoms hashable HUnit QuickCheck testFramework
+    testFrameworkHunit testFrameworkQuickcheck2
+  ];
   meta = {
     homepage = "https://github.com/tibbe/unordered-containers";
     description = "Efficient hashing-based container types";
diff --git a/pkgs/development/libraries/haskell/utility-ht/default.nix b/pkgs/development/libraries/haskell/utility-ht/default.nix
index 93b4cc1480e..c921b4198ed 100644
--- a/pkgs/development/libraries/haskell/utility-ht/default.nix
+++ b/pkgs/development/libraries/haskell/utility-ht/default.nix
@@ -1,9 +1,10 @@
-{ cabal }:
+{ cabal, QuickCheck }:
 
 cabal.mkDerivation (self: {
   pname = "utility-ht";
   version = "0.0.8";
   sha256 = "02sm1xj5xa65hpkvl2yk89d9dlg3c2ap8qcviq9zj10asmsbzyd8";
+  testDepends = [ QuickCheck ];
   meta = {
     description = "Various small helper functions for Lists, Maybes, Tuples, Functions";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/uuid/default.nix b/pkgs/development/libraries/haskell/uuid/default.nix
index 5b939ccb6cc..55ac6cf9e68 100644
--- a/pkgs/development/libraries/haskell/uuid/default.nix
+++ b/pkgs/development/libraries/haskell/uuid/default.nix
@@ -1,10 +1,15 @@
-{ cabal, binary, cryptohash, maccatcher, random, time }:
+{ cabal, binary, criterion, cryptohash, deepseq, HUnit, maccatcher
+, mersenneRandomPure64, QuickCheck, random, time
+}:
 
 cabal.mkDerivation (self: {
   pname = "uuid";
   version = "1.2.9";
   sha256 = "088wbhf21w91774icddbm3a8p8jikwjqgg8zdad0pdv8zbi7flsi";
   buildDepends = [ binary cryptohash maccatcher random time ];
+  testDepends = [
+    criterion deepseq HUnit mersenneRandomPure64 QuickCheck random
+  ];
   meta = {
     homepage = "http://projects.haskell.org/uuid/";
     description = "For creating, comparing, parsing and printing Universally Unique Identifiers";
diff --git a/pkgs/development/libraries/haskell/vty/default.nix b/pkgs/development/libraries/haskell/vty/default.nix
index e475ca7e856..9adc35b1bdf 100644
--- a/pkgs/development/libraries/haskell/vty/default.nix
+++ b/pkgs/development/libraries/haskell/vty/default.nix
@@ -1,5 +1,5 @@
-{ cabal, deepseq, mtl, parallel, parsec, stringQq, terminfo
-, utf8String, vector
+{ cabal, Cabal, deepseq, mtl, parallel, parsec, QuickCheck, random
+, stringQq, terminfo, utf8String, vector
 }:
 
 cabal.mkDerivation (self: {
@@ -11,6 +11,10 @@ cabal.mkDerivation (self: {
   buildDepends = [
     deepseq mtl parallel parsec stringQq terminfo utf8String vector
   ];
+  testDepends = [
+    Cabal deepseq mtl parallel parsec QuickCheck random terminfo
+    utf8String vector
+  ];
   meta = {
     homepage = "https://github.com/coreyoconnor/vty";
     description = "A simple terminal UI library";
diff --git a/pkgs/development/libraries/haskell/wai-app-static/default.nix b/pkgs/development/libraries/haskell/wai-app-static/default.nix
index 36ec82d88c3..7feed2df4bc 100644
--- a/pkgs/development/libraries/haskell/wai-app-static/default.nix
+++ b/pkgs/development/libraries/haskell/wai-app-static/default.nix
@@ -1,7 +1,7 @@
 { cabal, base64Bytestring, blazeBuilder, blazeHtml, blazeMarkup
-, cereal, cryptoConduit, cryptohash, fileEmbed, httpDate, httpTypes
-, mimeTypes, systemFileio, systemFilepath, text, time, transformers
-, unixCompat, wai
+, cereal, cryptoConduit, cryptohash, fileEmbed, hspec, httpDate
+, httpTypes, mimeTypes, network, systemFileio, systemFilepath, text
+, time, transformers, unixCompat, wai, waiTest
 }:
 
 cabal.mkDerivation (self: {
@@ -13,6 +13,10 @@ cabal.mkDerivation (self: {
     cryptoConduit cryptohash fileEmbed httpDate httpTypes mimeTypes
     systemFileio systemFilepath text time transformers unixCompat wai
   ];
+  testDepends = [
+    hspec httpDate httpTypes mimeTypes network text time transformers
+    unixCompat wai waiTest
+  ];
   meta = {
     homepage = "http://www.yesodweb.com/book/web-application-interface";
     description = "WAI application for static serving";
diff --git a/pkgs/development/libraries/haskell/wai-extra/default.nix b/pkgs/development/libraries/haskell/wai-extra/default.nix
index 7a4e18b3295..53a1ccaf55a 100644
--- a/pkgs/development/libraries/haskell/wai-extra/default.nix
+++ b/pkgs/development/libraries/haskell/wai-extra/default.nix
@@ -1,7 +1,8 @@
 { cabal, ansiTerminal, blazeBuilder, blazeBuilderConduit
 , caseInsensitive, conduit, dataDefault, dateCache, fastLogger
-, httpTypes, network, resourcet, stringsearch, text, time
-, transformers, void, wai, waiLogger, zlibConduit
+, hspec, httpTypes, HUnit, network, resourcet, stringsearch, text
+, time, transformers, void, wai, waiLogger, waiTest, zlib
+, zlibBindings, zlibConduit
 }:
 
 cabal.mkDerivation (self: {
@@ -14,6 +15,10 @@ cabal.mkDerivation (self: {
     resourcet stringsearch text time transformers void wai waiLogger
     zlibConduit
   ];
+  testDepends = [
+    blazeBuilder conduit dataDefault fastLogger hspec httpTypes HUnit
+    text transformers wai waiTest zlib zlibBindings
+  ];
   meta = {
     homepage = "http://github.com/yesodweb/wai";
     description = "Provides some basic WAI handlers and middleware";
diff --git a/pkgs/development/libraries/haskell/warp/default.nix b/pkgs/development/libraries/haskell/warp/default.nix
index 290e60ff3b7..d924d4f38b0 100644
--- a/pkgs/development/libraries/haskell/warp/default.nix
+++ b/pkgs/development/libraries/haskell/warp/default.nix
@@ -1,6 +1,7 @@
 { cabal, blazeBuilder, blazeBuilderConduit, caseInsensitive
-, conduit, hashable, httpTypes, liftedBase, network, networkConduit
-, simpleSendfile, transformers, unixCompat, void, wai
+, conduit, hashable, hspec, httpTypes, HUnit, liftedBase, network
+, networkConduit, QuickCheck, simpleSendfile, transformers
+, unixCompat, void, wai
 }:
 
 cabal.mkDerivation (self: {
@@ -12,6 +13,11 @@ cabal.mkDerivation (self: {
     httpTypes liftedBase network networkConduit simpleSendfile
     transformers unixCompat void wai
   ];
+  testDepends = [
+    blazeBuilder blazeBuilderConduit caseInsensitive conduit hashable
+    hspec httpTypes HUnit liftedBase network networkConduit QuickCheck
+    simpleSendfile transformers unixCompat void wai
+  ];
   meta = {
     homepage = "http://github.com/yesodweb/wai";
     description = "A fast, light-weight web server for WAI applications";
diff --git a/pkgs/development/libraries/haskell/word8/default.nix b/pkgs/development/libraries/haskell/word8/default.nix
index 4b05c0b70d0..e8abded2438 100644
--- a/pkgs/development/libraries/haskell/word8/default.nix
+++ b/pkgs/development/libraries/haskell/word8/default.nix
@@ -1,9 +1,10 @@
-{ cabal }:
+{ cabal, hspec }:
 
 cabal.mkDerivation (self: {
   pname = "word8";
   version = "0.0.3";
   sha256 = "1k5sq91pidgw7w8fc62k9gl8iynb65pcza6mjx8pa3n2lslp7125";
+  testDepends = [ hspec ];
   meta = {
     description = "Word8 library";
     license = self.stdenv.lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/haskell/xml-conduit/default.nix b/pkgs/development/libraries/haskell/xml-conduit/default.nix
index 39bcc63248e..7ebc0b003e5 100644
--- a/pkgs/development/libraries/haskell/xml-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/xml-conduit/default.nix
@@ -1,7 +1,7 @@
 { cabal, attoparsec, attoparsecConduit, blazeBuilder
 , blazeBuilderConduit, blazeHtml, blazeMarkup, conduit, dataDefault
-, failure, monadControl, resourcet, systemFilepath, text
-, transformers, xmlTypes
+, failure, hspec, HUnit, monadControl, resourcet, systemFilepath
+, text, transformers, xmlTypes
 }:
 
 cabal.mkDerivation (self: {
@@ -13,6 +13,9 @@ cabal.mkDerivation (self: {
     blazeHtml blazeMarkup conduit dataDefault failure monadControl
     resourcet systemFilepath text transformers xmlTypes
   ];
+  testDepends = [
+    blazeMarkup conduit hspec HUnit text transformers xmlTypes
+  ];
   meta = {
     homepage = "http://github.com/snoyberg/xml";
     description = "Pure-Haskell utilities for dealing with XML with the conduit package";
diff --git a/pkgs/development/libraries/haskell/xml-hamlet/default.nix b/pkgs/development/libraries/haskell/xml-hamlet/default.nix
index 1be00fa0c0f..9c85223d654 100644
--- a/pkgs/development/libraries/haskell/xml-hamlet/default.nix
+++ b/pkgs/development/libraries/haskell/xml-hamlet/default.nix
@@ -1,10 +1,11 @@
-{ cabal, parsec, shakespeare, text, xmlConduit }:
+{ cabal, hspec, HUnit, parsec, shakespeare, text, xmlConduit }:
 
 cabal.mkDerivation (self: {
   pname = "xml-hamlet";
   version = "0.4.0.4";
   sha256 = "1s4s5z1xir9zmcbfz8mrznf2byclmg0qjjhwmpal2r9ly9g3na98";
   buildDepends = [ parsec shakespeare text xmlConduit ];
+  testDepends = [ hspec HUnit parsec shakespeare text xmlConduit ];
   meta = {
     homepage = "http://www.yesodweb.com/";
     description = "Hamlet-style quasiquoter for XML content";
diff --git a/pkgs/development/libraries/haskell/xss-sanitize/default.nix b/pkgs/development/libraries/haskell/xss-sanitize/default.nix
index f592568cb32..89bdab65b17 100644
--- a/pkgs/development/libraries/haskell/xss-sanitize/default.nix
+++ b/pkgs/development/libraries/haskell/xss-sanitize/default.nix
@@ -1,4 +1,6 @@
-{ cabal, attoparsec, cssText, network, tagsoup, text, utf8String }:
+{ cabal, attoparsec, cssText, hspec, HUnit, network, tagsoup, text
+, utf8String
+}:
 
 cabal.mkDerivation (self: {
   pname = "xss-sanitize";
@@ -7,6 +9,9 @@ cabal.mkDerivation (self: {
   buildDepends = [
     attoparsec cssText network tagsoup text utf8String
   ];
+  testDepends = [
+    attoparsec cssText hspec HUnit network tagsoup text utf8String
+  ];
   meta = {
     homepage = "http://github.com/yesodweb/haskell-xss-sanitize";
     description = "sanitize untrusted HTML to prevent XSS attacks";
diff --git a/pkgs/development/libraries/haskell/yaml/default.nix b/pkgs/development/libraries/haskell/yaml/default.nix
index 9641cef56aa..f1cbb7ee7b8 100644
--- a/pkgs/development/libraries/haskell/yaml/default.nix
+++ b/pkgs/development/libraries/haskell/yaml/default.nix
@@ -1,5 +1,5 @@
-{ cabal, aeson, attoparsec, conduit, resourcet, text, transformers
-, unorderedContainers, vector
+{ cabal, aeson, attoparsec, conduit, hspec, HUnit, resourcet, text
+, transformers, unorderedContainers, vector
 }:
 
 cabal.mkDerivation (self: {
@@ -10,6 +10,9 @@ cabal.mkDerivation (self: {
     aeson attoparsec conduit resourcet text transformers
     unorderedContainers vector
   ];
+  testDepends = [
+    conduit hspec HUnit text transformers unorderedContainers
+  ];
   meta = {
     homepage = "http://github.com/snoyberg/yaml/";
     description = "Support for parsing and rendering YAML documents";
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index e2a36c2f184..a25916316de 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -1,10 +1,10 @@
 { cabal, aeson, blazeBuilder, blazeHtml, blazeMarkup
 , caseInsensitive, cereal, clientsession, conduit, cookie, failure
-, fastLogger, hamlet, httpTypes, liftedBase, monadControl
-, monadLogger, parsec, pathPieces, random, resourcet, shakespeare
-, shakespeareCss, shakespeareI18n, shakespeareJs, text, time
-, transformers, transformersBase, vector, wai, waiExtra
-, yesodRoutes
+, fastLogger, hamlet, hspec, httpTypes, HUnit, liftedBase
+, monadControl, monadLogger, parsec, pathPieces, QuickCheck, random
+, resourcet, shakespeare, shakespeareCss, shakespeareI18n
+, shakespeareJs, text, time, transformers, transformersBase, vector
+, wai, waiExtra, waiTest, yesodRoutes
 }:
 
 cabal.mkDerivation (self: {
@@ -19,6 +19,10 @@ cabal.mkDerivation (self: {
     text time transformers transformersBase vector wai waiExtra
     yesodRoutes
   ];
+  testDepends = [
+    blazeBuilder conduit hamlet hspec httpTypes HUnit QuickCheck random
+    shakespeareCss shakespeareJs text transformers wai waiTest
+  ];
   meta = {
     homepage = "http://www.yesodweb.com/";
     description = "Creation of type-safe, RESTful web applications";
diff --git a/pkgs/development/libraries/haskell/yesod-form/default.nix b/pkgs/development/libraries/haskell/yesod-form/default.nix
index d853e217a7f..adf11916b90 100644
--- a/pkgs/development/libraries/haskell/yesod-form/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-form/default.nix
@@ -1,5 +1,5 @@
 { cabal, aeson, attoparsec, blazeBuilder, blazeHtml, blazeMarkup
-, cryptoApi, dataDefault, emailValidate, hamlet, network
+, cryptoApi, dataDefault, emailValidate, hamlet, hspec, network
 , persistent, shakespeareCss, shakespeareJs, text, time
 , transformers, wai, xssSanitize, yesodCore, yesodPersistent
 }:
@@ -14,6 +14,7 @@ cabal.mkDerivation (self: {
     shakespeareJs text time transformers wai xssSanitize yesodCore
     yesodPersistent
   ];
+  testDepends = [ hspec text time ];
   meta = {
     homepage = "http://www.yesodweb.com/";
     description = "Form handling support for Yesod Web Framework";
diff --git a/pkgs/development/libraries/haskell/yesod-routes/default.nix b/pkgs/development/libraries/haskell/yesod-routes/default.nix
index c1dd27e377d..0ebfeb92bf1 100644
--- a/pkgs/development/libraries/haskell/yesod-routes/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-routes/default.nix
@@ -1,10 +1,11 @@
-{ cabal, pathPieces, text, vector }:
+{ cabal, hspec, HUnit, pathPieces, text, vector }:
 
 cabal.mkDerivation (self: {
   pname = "yesod-routes";
   version = "1.1.2";
   sha256 = "17yv2z7k1s958xyn552wpk0cwpivsnkvia8477yhgbp4n2d1i5jv";
   buildDepends = [ pathPieces text vector ];
+  testDepends = [ hspec HUnit pathPieces text ];
   meta = {
     homepage = "http://www.yesodweb.com/";
     description = "Efficient routing for Yesod";
diff --git a/pkgs/development/libraries/haskell/yesod-static/default.nix b/pkgs/development/libraries/haskell/yesod-static/default.nix
index a661a83c731..a7e90de2990 100644
--- a/pkgs/development/libraries/haskell/yesod-static/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-static/default.nix
@@ -1,5 +1,5 @@
 { cabal, base64Bytestring, cereal, conduit, cryptoConduit
-, cryptohash, fileEmbed, httpTypes, systemFilepath, text
+, cryptohash, fileEmbed, hspec, httpTypes, systemFilepath, text
 , transformers, unixCompat, wai, waiAppStatic, yesodCore
 }:
 
@@ -12,6 +12,11 @@ cabal.mkDerivation (self: {
     httpTypes systemFilepath text transformers unixCompat wai
     waiAppStatic yesodCore
   ];
+  testDepends = [
+    base64Bytestring cereal conduit cryptoConduit cryptohash fileEmbed
+    hspec httpTypes systemFilepath text transformers unixCompat wai
+    waiAppStatic yesodCore
+  ];
   meta = {
     homepage = "http://www.yesodweb.com/";
     description = "Static file serving subsite for Yesod Web Framework";
diff --git a/pkgs/development/libraries/haskell/yesod-test/default.nix b/pkgs/development/libraries/haskell/yesod-test/default.nix
index b11c88534b2..3753067d958 100644
--- a/pkgs/development/libraries/haskell/yesod-test/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-test/default.nix
@@ -14,6 +14,7 @@ cabal.mkDerivation (self: {
     persistent poolConduit text time transformers wai waiTest
     xmlConduit xmlTypes
   ];
+  testDepends = [ hspec htmlConduit HUnit xmlConduit ];
   meta = {
     homepage = "http://www.yesodweb.com";
     description = "integration testing for WAI/Yesod Applications";
diff --git a/pkgs/development/libraries/haskell/zeromq-haskell/default.nix b/pkgs/development/libraries/haskell/zeromq-haskell/default.nix
index f5166f0f1f0..20d414ac6b1 100644
--- a/pkgs/development/libraries/haskell/zeromq-haskell/default.nix
+++ b/pkgs/development/libraries/haskell/zeromq-haskell/default.nix
@@ -1,9 +1,14 @@
-{ cabal, zeromq }:
+{ cabal, QuickCheck, testFramework, testFrameworkQuickcheck2
+, zeromq
+}:
 
 cabal.mkDerivation (self: {
   pname = "zeromq-haskell";
   version = "0.8.4";
   sha256 = "0lvjszi08r5wm5ch03153y7lir6cdgqr2gnhq45j4b0kid6gkpv3";
+  testDepends = [
+    QuickCheck testFramework testFrameworkQuickcheck2
+  ];
   extraLibraries = [ zeromq ];
   meta = {
     homepage = "http://github.com/twittner/zeromq-haskell/";
diff --git a/pkgs/development/libraries/haskell/zeromq3-haskell/default.nix b/pkgs/development/libraries/haskell/zeromq3-haskell/default.nix
index 4db350f93b5..3a3e700cfbb 100644
--- a/pkgs/development/libraries/haskell/zeromq3-haskell/default.nix
+++ b/pkgs/development/libraries/haskell/zeromq3-haskell/default.nix
@@ -1,9 +1,14 @@
-{ cabal, zeromq }:
+{ cabal, QuickCheck, testFramework, testFrameworkQuickcheck2
+, zeromq
+}:
 
 cabal.mkDerivation (self: {
   pname = "zeromq3-haskell";
   version = "0.2";
   sha256 = "12qljfkcd4l9h3l80jibxgw2an6v782w0sxwvzxqmma29jv6hvky";
+  testDepends = [
+    QuickCheck testFramework testFrameworkQuickcheck2
+  ];
   extraLibraries = [ zeromq ];
   meta = {
     homepage = "http://github.com/twittner/zeromq-haskell/";
diff --git a/pkgs/development/libraries/haskell/zip-archive/default.nix b/pkgs/development/libraries/haskell/zip-archive/default.nix
index 300de9df4c9..6bbe2844612 100644
--- a/pkgs/development/libraries/haskell/zip-archive/default.nix
+++ b/pkgs/development/libraries/haskell/zip-archive/default.nix
@@ -1,4 +1,6 @@
-{ cabal, binary, digest, filepath, mtl, time, utf8String, zlib }:
+{ cabal, binary, digest, filepath, HUnit, mtl, time, utf8String
+, zlib
+}:
 
 cabal.mkDerivation (self: {
   pname = "zip-archive";
@@ -7,6 +9,7 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ binary digest filepath mtl time utf8String zlib ];
+  testDepends = [ HUnit time ];
   meta = {
     homepage = "http://github.com/jgm/zip-archive";
     description = "Library for creating and modifying zip archives";
diff --git a/pkgs/development/libraries/haskell/zlib-bindings/default.nix b/pkgs/development/libraries/haskell/zlib-bindings/default.nix
index d2c3a838adf..f69be8ae99e 100644
--- a/pkgs/development/libraries/haskell/zlib-bindings/default.nix
+++ b/pkgs/development/libraries/haskell/zlib-bindings/default.nix
@@ -1,10 +1,11 @@
-{ cabal, zlib }:
+{ cabal, hspec, QuickCheck, zlib }:
 
 cabal.mkDerivation (self: {
   pname = "zlib-bindings";
   version = "0.1.1.3";
   sha256 = "18jhav7chbapakm9mwn7bn9lgvip7qaz61dw5gwv2nyalvm96qfr";
   buildDepends = [ zlib ];
+  testDepends = [ hspec QuickCheck zlib ];
   meta = {
     homepage = "http://github.com/snoyberg/zlib-bindings";
     description = "Low-level bindings to the zlib package";
diff --git a/pkgs/development/libraries/haskell/zlib-conduit/default.nix b/pkgs/development/libraries/haskell/zlib-conduit/default.nix
index cf62afc6c01..b283c496a29 100644
--- a/pkgs/development/libraries/haskell/zlib-conduit/default.nix
+++ b/pkgs/development/libraries/haskell/zlib-conduit/default.nix
@@ -1,10 +1,13 @@
-{ cabal, conduit, transformers, void, zlibBindings }:
+{ cabal, conduit, hspec, QuickCheck, resourcet, transformers, void
+, zlibBindings
+}:
 
 cabal.mkDerivation (self: {
   pname = "zlib-conduit";
   version = "1.0.0";
   sha256 = "0q0l4qw1f2cwjj71n4i082ba47x1xba695q8xk0ky2vw5s8cg0bv";
   buildDepends = [ conduit transformers void zlibBindings ];
+  testDepends = [ conduit hspec QuickCheck resourcet transformers ];
   meta = {
     homepage = "http://github.com/snoyberg/conduit";
     description = "Streaming compression/decompression via conduits";
diff --git a/pkgs/development/tools/documentation/haddock/2.10.0.nix b/pkgs/development/tools/documentation/haddock/2.10.0.nix
index 5c608c440aa..8f16c6c65c4 100644
--- a/pkgs/development/tools/documentation/haddock/2.10.0.nix
+++ b/pkgs/development/tools/documentation/haddock/2.10.0.nix
@@ -7,6 +7,7 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ Cabal filepath ghcPaths xhtml ];
+  testDepends = [ Cabal filepath ];
   buildTools = [ alex happy ];
   meta = {
     homepage = "http://www.haskell.org/haddock/";
diff --git a/pkgs/development/tools/documentation/haddock/2.11.0.nix b/pkgs/development/tools/documentation/haddock/2.11.0.nix
index 92dccbf05a6..32b3a5ec8b5 100644
--- a/pkgs/development/tools/documentation/haddock/2.11.0.nix
+++ b/pkgs/development/tools/documentation/haddock/2.11.0.nix
@@ -7,6 +7,7 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ Cabal filepath ghcPaths xhtml ];
+  testDepends = [ Cabal filepath ];
   buildTools = [ alex happy ];
   meta = {
     homepage = "http://www.haskell.org/haddock/";
diff --git a/pkgs/development/tools/documentation/haddock/2.12.0.nix b/pkgs/development/tools/documentation/haddock/2.12.0.nix
index 39610f9a08c..b1228dab18a 100644
--- a/pkgs/development/tools/documentation/haddock/2.12.0.nix
+++ b/pkgs/development/tools/documentation/haddock/2.12.0.nix
@@ -7,6 +7,7 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ Cabal deepseq filepath ghcPaths xhtml ];
+  testDepends = [ Cabal filepath ];
   buildTools = [ alex happy ];
   meta = {
     homepage = "http://www.haskell.org/haddock/";
diff --git a/pkgs/development/tools/documentation/haddock/2.13.1.nix b/pkgs/development/tools/documentation/haddock/2.13.1.nix
index 1eed852f537..5b6ddfc1610 100644
--- a/pkgs/development/tools/documentation/haddock/2.13.1.nix
+++ b/pkgs/development/tools/documentation/haddock/2.13.1.nix
@@ -7,6 +7,7 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ Cabal deepseq filepath ghcPaths xhtml ];
+  testDepends = [ Cabal filepath ];
   buildTools = [ alex happy ];
   meta = {
     homepage = "http://www.haskell.org/haddock/";
diff --git a/pkgs/development/tools/documentation/haddock/2.9.4.nix b/pkgs/development/tools/documentation/haddock/2.9.4.nix
index 15ed35f5758..2a29ee950a8 100644
--- a/pkgs/development/tools/documentation/haddock/2.9.4.nix
+++ b/pkgs/development/tools/documentation/haddock/2.9.4.nix
@@ -1,4 +1,5 @@
-{ cabal, alex, Cabal, filepath, ghcPaths, happy, xhtml }:
+{ cabal, alex, Cabal, filepath, ghcPaths, happy, regexCompat, xhtml
+}:
 
 cabal.mkDerivation (self: {
   pname = "haddock";
@@ -7,6 +8,7 @@ cabal.mkDerivation (self: {
   isLibrary = true;
   isExecutable = true;
   buildDepends = [ Cabal filepath ghcPaths xhtml ];
+  testDepends = [ Cabal filepath regexCompat ];
   buildTools = [ alex happy ];
   meta = {
     homepage = "http://www.haskell.org/haddock/";