summary refs log tree commit diff
path: root/pkgs/development/libraries/haskell
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2011-08-31 18:12:33 +0000
committerShea Levy <shea@shealevy.com>2011-08-31 18:12:33 +0000
commit191a4c404ab57be4466e9b2d6ef25c6c77152602 (patch)
tree23000acd1260299138cdb9cf355ab0054ecfc783 /pkgs/development/libraries/haskell
parentf7f9b39450877382151dc0bdd10281404780f19f (diff)
parent04b1ac31da9885e3b1893a98e5280b8f9a039652 (diff)
svn path=/nixpkgs/branches/darwin-updates/; revision=28944
Diffstat (limited to 'pkgs/development/libraries/haskell')
-rw-r--r--pkgs/development/libraries/haskell/AC-Vector/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/Agda/default.nix29
-rw-r--r--pkgs/development/libraries/haskell/AspectAG/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/Boolean/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/CS173Tourney/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/CS173Tourney/sendmail.patch20
-rw-r--r--pkgs/development/libraries/haskell/Chart/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/ConfigFile/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/CouchDB/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/Crypto/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/Diff/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/GLURaw/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/GLUT/2.1.1.2.nix17
-rw-r--r--pkgs/development/libraries/haskell/GLUT/2.1.2.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/GLUT/2.2.2.0.nix21
-rw-r--r--pkgs/development/libraries/haskell/GlomeVec/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/Graphalyze/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/HDBC/HDBC-postgresql.nix23
-rw-r--r--pkgs/development/libraries/haskell/HDBC/HDBC-sqlite3.nix23
-rw-r--r--pkgs/development/libraries/haskell/HDBC/HDBC.nix22
-rw-r--r--pkgs/development/libraries/haskell/HGL/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/HList/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/HStringTemplate/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/HTTP/3001.1.5.nix16
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.0.6.nix18
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.0.9.nix18
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.1.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/HTTP/4000.1.2.nix18
-rw-r--r--pkgs/development/libraries/haskell/HUnit/1.2.0.3.nix14
-rw-r--r--pkgs/development/libraries/haskell/HUnit/1.2.2.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/HUnit/1.2.2.3.nix16
-rw-r--r--pkgs/development/libraries/haskell/HUnit/1.2.4.2.nix19
-rw-r--r--pkgs/development/libraries/haskell/HaXml/1.13.3.nix11
-rw-r--r--pkgs/development/libraries/haskell/HaXml/1.20.2.nix12
-rw-r--r--pkgs/development/libraries/haskell/HaXml/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/Hipmunk/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/HsSyck/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/JsContracts/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/ListLike/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/MaybeT-transformers/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/MaybeT/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/MemoTrie/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/MissingH/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/MonadCatchIO-transformers/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/MonadPrompt/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/MonadRandom/default.nix17
-rwxr-xr-xpkgs/development/libraries/haskell/ObjectName/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/OneTuple/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/OpenAL/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/OpenGL/2.2.1.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/OpenGL/2.2.3.0.nix16
-rw-r--r--pkgs/development/libraries/haskell/OpenGL/2.4.0.1.nix21
-rw-r--r--pkgs/development/libraries/haskell/OpenGLRaw/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/PSQueue/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/1.2.0.0.nix15
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/1.2.0.1.nix15
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/2.1.0.3.nix18
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/2.1.1.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/2.4.0.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/QuickCheck/2.4.1.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/RSA/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/Ranged-sets/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/SDL-image/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/SDL-mixer/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/SDL-ttf/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/SDL/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/SHA/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/SMTPClient/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix17
-rw-r--r--pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix13
-rw-r--r--pkgs/development/libraries/haskell/Shellac/Shellac.nix20
-rwxr-xr-xpkgs/development/libraries/haskell/StateVar/default.nix17
-rwxr-xr-xpkgs/development/libraries/haskell/Tensor/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/Vec/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/WebBits-Html/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/WebBits/1.0.nix17
-rw-r--r--pkgs/development/libraries/haskell/WebBits/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/WebServer-Extras/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/WebServer/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/X11-xft/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/X11/default.nix9
-rw-r--r--pkgs/development/libraries/haskell/aeson-native/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/aeson/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/ansi-terminal/default.nix18
-rwxr-xr-x[-rw-r--r--]pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/asn1-data/default.nix22
-rwxr-xr-xpkgs/development/libraries/haskell/async/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/attempt/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/attoparsec-text-enumerator/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/attoparsec-text/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/attoparsec/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/attoparsec/enumerator.nix17
-rw-r--r--pkgs/development/libraries/haskell/authenticate/default.nix26
-rw-r--r--pkgs/development/libraries/haskell/base-unicode-symbols/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/base64-bytestring/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/base64-string/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/benchpress/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/bimap/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/binary-shared/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/binary/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/bitmap/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/bktrees/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/blaze-builder/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/blaze-html/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/blaze-textual-native/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/blaze-textual/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/bmp/default.nix20
-rwxr-xr-xpkgs/development/libraries/haskell/bytestring-mmap/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/bytestring-nums/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/bytestring-trie/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/cabal/cabal.nix52
-rw-r--r--pkgs/development/libraries/haskell/cairo/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/case-insensitive/0.3.0.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/case-insensitive/0.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/case-insensitive/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/cautious-file/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/cereal/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/certificate/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.7.1.nix15
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.7.2.nix15
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.7.3.nix16
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.7.4.nix16
-rw-r--r--pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix22
-rw-r--r--pkgs/development/libraries/haskell/citeproc-hs/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/clientsession/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/cmdargs/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/cmdlib/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/colorize-haskell/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/colour/default.nix15
-rwxr-xr-xpkgs/development/libraries/haskell/continued-fractions/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/control-monad-attempt/default.nix18
-rwxr-xr-xpkgs/development/libraries/haskell/converge/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/convertible/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/cookie/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/cprng-aes/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/criterion/default.nix26
-rw-r--r--pkgs/development/libraries/haskell/crypto-api/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/cryptocipher/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/cryptohash/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/css-text/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/csv/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix22
-rw-r--r--pkgs/development/libraries/haskell/data-accessor/data-accessor.nix22
-rw-r--r--pkgs/development/libraries/haskell/data-default/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/data-reify/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/dataenc/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/datetime/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/deepseq/1.1.0.0.nix15
-rw-r--r--pkgs/development/libraries/haskell/deepseq/1.1.0.2.nix15
-rw-r--r--pkgs/development/libraries/haskell/derive/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/digest/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/dimensional/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/directory-tree/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/dlist/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/dotgen/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/double-conversion/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/editline/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/email-validate/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/emgm/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/entropy/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/enumerator/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/erf/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.0.nix16
-rw-r--r--pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.2.nix16
-rw-r--r--pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.3.nix16
-rw-r--r--pkgs/development/libraries/haskell/extensible-exceptions/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/failure/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/fclabels/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/feed/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/fgl/5.4.2.2.nix16
-rw-r--r--pkgs/development/libraries/haskell/fgl/5.4.2.3.nix16
-rw-r--r--pkgs/development/libraries/haskell/fgl/5.4.2.4.nix18
-rw-r--r--pkgs/development/libraries/haskell/file-embed/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/filepath/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/filestore/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/fingertree/default.nix13
-rwxr-xr-xpkgs/development/libraries/haskell/flexible-defaults/default.nix18
-rwxr-xr-x[-rw-r--r--]pkgs/development/libraries/haskell/funcmp/default.nix13
-rwxr-xr-xpkgs/development/libraries/haskell/gamma/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/gdiff/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/ghc-core/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/ghc-events/default.nix8
-rw-r--r--pkgs/development/libraries/haskell/ghc-mtl/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/ghc-paths/0.1.0.5.nix16
-rw-r--r--pkgs/development/libraries/haskell/ghc-paths/0.1.0.6.nix13
-rw-r--r--pkgs/development/libraries/haskell/ghc-paths/0.1.0.8.nix16
-rw-r--r--pkgs/development/libraries/haskell/ghc-paths/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/ghc-syb-utils/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/ghc-syb/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/gitit/default.nix37
-rw-r--r--pkgs/development/libraries/haskell/glade/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/glib/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/graphviz/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/gtk/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/gtk2hs-buildtools/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/gtksourceview2/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/hackage-db/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/hakyll/default.nix30
-rw-r--r--pkgs/development/libraries/haskell/hamlet/0.10.0.nix22
-rw-r--r--pkgs/development/libraries/haskell/hamlet/0.8.2.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/hamlet/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/happstack/happstack-data.nix35
-rw-r--r--pkgs/development/libraries/haskell/happstack/happstack-server.nix37
-rw-r--r--pkgs/development/libraries/haskell/happstack/happstack-util.nix36
-rw-r--r--pkgs/development/libraries/haskell/hashable/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/hashed-storage/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/haskeline-class/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/haskeline/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/haskell-lexer/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix24
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/Setup.hs10
-rw-r--r--pkgs/development/libraries/haskell/haskell-platform/haskell-platform-2011.2.0.1.cabal90
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-exts/1.11.1.nix19
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-exts/1.9.6.nix19
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-exts/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/haskell-src-meta/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/haskell-src/1.0.1.3.nix15
-rw-r--r--pkgs/development/libraries/haskell/haskell-src/1.0.1.4.nix19
-rw-r--r--pkgs/development/libraries/haskell/haxr-th/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/haxr/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/hfuse/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/highlighting-kate/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/hint/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/hjsmin/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/hledger-chart/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/hledger-lib/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/hledger-vty/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/hledger/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/hmatrix/default.nix31
-rw-r--r--pkgs/development/libraries/haskell/hopenssl/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/hostname/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/hp2any-core/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/hp2any-graph/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/hs-bibutils/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/hscolour/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/hsdns/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/hsemail/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/hslogger-template/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/hspread/default.nix12
-rwxr-xr-xpkgs/development/libraries/haskell/hsyslog/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/html/1.0.1.2.nix13
-rw-r--r--pkgs/development/libraries/haskell/http-date/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/http-enumerator/default.nix30
-rw-r--r--pkgs/development/libraries/haskell/http-types/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/httpd-shed/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/irc/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/ivor/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/jpeg/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/json/0.3.6.nix12
-rw-r--r--pkgs/development/libraries/haskell/json/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/jsonEnumerator/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/jsonTypes/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/language-haskell-extract/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/language-javascript/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/largeword/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/leksah/leksah-server.nix28
-rw-r--r--pkgs/development/libraries/haskell/leksah/process-leksah.nix18
-rw-r--r--pkgs/development/libraries/haskell/logfloat/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/ltk/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/maybench/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/mersenne-random-pure64/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/mime-mail/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/mmap/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/monad-control/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/monad-loops/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/monad-par/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/monad-peel/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/monadlab/default.nix11
-rw-r--r--pkgs/development/libraries/haskell/monads-fd/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/mpppc/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/mtl/1.1.0.2.nix13
-rw-r--r--pkgs/development/libraries/haskell/mtl/1.1.1.1.nix13
-rw-r--r--pkgs/development/libraries/haskell/mtl/2.0.1.0.nix17
-rw-r--r--pkgs/development/libraries/haskell/mtlparse/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/multiplate/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/multirec/0.5.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/multirec/0.6.nix18
-rw-r--r--pkgs/development/libraries/haskell/multirec/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/multiset/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/murmur-hash/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/mwc-random/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/neither/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/network/2.2.1.4.nix15
-rw-r--r--pkgs/development/libraries/haskell/network/2.2.1.7.nix15
-rw-r--r--pkgs/development/libraries/haskell/network/2.3.0.2.nix18
-rw-r--r--pkgs/development/libraries/haskell/network/2.3.0.5.nix18
-rw-r--r--pkgs/development/libraries/haskell/nixos-types/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/non-negative/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/numeric-prelude/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/numtype/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/pandoc-types/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/pandoc/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/pango/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/parallel/1.1.0.1.nix13
-rw-r--r--pkgs/development/libraries/haskell/parallel/2.2.0.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/parallel/3.1.0.1.nix17
-rw-r--r--pkgs/development/libraries/haskell/parseargs/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/parsec/2.1.0.1.nix14
-rw-r--r--pkgs/development/libraries/haskell/parsec/3.1.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/parsimony/default.nix17
-rwxr-xr-xpkgs/development/libraries/haskell/path-pieces/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/pathtype/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/pcre-light/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/persistent-template/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/persistent/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/polyparse/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/pool/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/ppm/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/pretty-show/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/primitive/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/pureMD5/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/pwstore-fast/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/random-fu/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/random-shuffle/default.nix14
-rwxr-xr-xpkgs/development/libraries/haskell/random-source/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/random/1.0.0.2.nix17
-rw-r--r--pkgs/development/libraries/haskell/random/1.0.0.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/random/1.0.1.0.nix17
-rw-r--r--pkgs/development/libraries/haskell/random/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/ranges/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/readline/default.nix7
-rw-r--r--pkgs/development/libraries/haskell/recaptcha/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/regex-base/0.72.0.2.nix17
-rw-r--r--pkgs/development/libraries/haskell/regex-base/0.93.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-base/0.93.2.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/0.92.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/0.93.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-compat/0.95.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-pcre/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.72.0.3.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.94.1.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.94.2.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.94.4.nix16
-rw-r--r--pkgs/development/libraries/haskell/regex-posix/0.95.1.nix18
-rw-r--r--pkgs/development/libraries/haskell/regex-tdfa/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/regexpr/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/regular/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/repa-algorithms/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/repa-bytestring/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/repa-examples/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/repa-io/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/repa/default.nix20
-rwxr-xr-xpkgs/development/libraries/haskell/rvar/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/safe/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/salvia-protocol/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/salvia/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/scion/default.nix11
-rwxr-xr-xpkgs/development/libraries/haskell/semigroups/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/sendfile/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-css/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/shakespeare-js/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/shakespeare/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/simple-sendfile/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/smallcheck/default.nix13
-rw-r--r--pkgs/development/libraries/haskell/snap/core.nix32
-rw-r--r--pkgs/development/libraries/haskell/snap/server.nix37
-rw-r--r--pkgs/development/libraries/haskell/split/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/stateref/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/statistics/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/stb-image/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/stm/2.1.1.2.nix13
-rw-r--r--pkgs/development/libraries/haskell/stm/2.1.2.1.nix13
-rw-r--r--pkgs/development/libraries/haskell/stm/2.2.0.1.nix13
-rw-r--r--pkgs/development/libraries/haskell/storable-complex/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/storable-record/default.nix20
-rwxr-xr-xpkgs/development/libraries/haskell/streamproc/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/strict/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/strictConcurrency/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/svgcairo/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/syb/0.2.2.nix13
-rw-r--r--pkgs/development/libraries/haskell/syb/0.3.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/syb/0.3.nix15
-rw-r--r--pkgs/development/libraries/haskell/syb/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/syb/syb-with-class-instances-text.nix14
-rw-r--r--pkgs/development/libraries/haskell/syb/syb-with-class.nix14
-rw-r--r--pkgs/development/libraries/haskell/tabular/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/tagged/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/tagsoup/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/terminfo/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/test-framework-hunit/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/test-framework-th/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/test-framework/default.nix29
-rw-r--r--pkgs/development/libraries/haskell/testpack/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/texmath/0.4.nix20
-rw-r--r--pkgs/development/libraries/haskell/texmath/0.5.0.1.nix20
-rw-r--r--pkgs/development/libraries/haskell/texmath/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/text/0.11.0.5.nix20
-rw-r--r--pkgs/development/libraries/haskell/text/0.11.0.6.nix20
-rw-r--r--pkgs/development/libraries/haskell/text/0.11.1.5.nix18
-rw-r--r--pkgs/development/libraries/haskell/th-lift/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/threadmanager/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/time/1.1.2.4.nix14
-rw-r--r--pkgs/development/libraries/haskell/time/1.1.3.nix12
-rw-r--r--pkgs/development/libraries/haskell/time/1.2.0.3.nix12
-rw-r--r--pkgs/development/libraries/haskell/time/1.2.0.5.nix17
-rw-r--r--pkgs/development/libraries/haskell/time/1.3.nix17
-rw-r--r--pkgs/development/libraries/haskell/tls-extra/default.nix25
-rw-r--r--pkgs/development/libraries/haskell/tls/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/transformers/0.2.2.0.nix13
-rw-r--r--pkgs/development/libraries/haskell/tuple/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/uniplate/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/uniqueid/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/unix-compat/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/unordered-containers/default.nix19
-rw-r--r--pkgs/development/libraries/haskell/url/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/utf8-light/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/utf8-string/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/utility-ht/default.nix15
-rw-r--r--pkgs/development/libraries/haskell/uu-parsinglib/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/uulib/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/vacuum-cairo/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/vacuum/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/vector-algorithms/0.4.nix18
-rw-r--r--pkgs/development/libraries/haskell/vector-algorithms/0.5.2.nix18
-rw-r--r--pkgs/development/libraries/haskell/vector-algorithms/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/vector-space/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/vector/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/vty/4.6.0.4.nix18
-rw-r--r--pkgs/development/libraries/haskell/vty/4.7.0.4.nix22
-rw-r--r--pkgs/development/libraries/haskell/vty/default.nix12
-rw-r--r--pkgs/development/libraries/haskell/wai-app-static/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/wai-extra/default.nix26
-rw-r--r--pkgs/development/libraries/haskell/wai/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/warp/default.nix24
-rw-r--r--pkgs/development/libraries/haskell/web-routes-quasi/default.nix21
-rw-r--r--pkgs/development/libraries/haskell/web-routes/default.nix18
-rw-r--r--pkgs/development/libraries/haskell/wl-pprint-text/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wx.nix14
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wxcore.nix29
-rw-r--r--pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix24
-rw-r--r--pkgs/development/libraries/haskell/xhtml/3000.2.0.1.nix13
-rw-r--r--pkgs/development/libraries/haskell/xhtml/3000.2.0.2.nix16
-rw-r--r--pkgs/development/libraries/haskell/xml-enumerator/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/xml-types/default.nix17
-rw-r--r--pkgs/development/libraries/haskell/xml/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/xss-sanitize/0.2.6.nix18
-rw-r--r--pkgs/development/libraries/haskell/xss-sanitize/0.3.0.1.nix22
-rw-r--r--pkgs/development/libraries/haskell/xss-sanitize/default.nix14
-rw-r--r--pkgs/development/libraries/haskell/yap/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/yesod-auth/default.nix28
-rw-r--r--pkgs/development/libraries/haskell/yesod-core/default.nix34
-rw-r--r--pkgs/development/libraries/haskell/yesod-form/default.nix30
-rw-r--r--pkgs/development/libraries/haskell/yesod-json/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/yesod-persistent/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/yesod-static/default.nix23
-rw-r--r--pkgs/development/libraries/haskell/yesod/default.nix29
-rw-r--r--pkgs/development/libraries/haskell/yst/default.nix27
-rw-r--r--pkgs/development/libraries/haskell/zip-archive/default.nix16
-rw-r--r--pkgs/development/libraries/haskell/zipper/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/zlib-bindings/default.nix22
-rw-r--r--pkgs/development/libraries/haskell/zlib-enum/default.nix20
-rw-r--r--pkgs/development/libraries/haskell/zlib/0.5.0.0.nix16
-rw-r--r--pkgs/development/libraries/haskell/zlib/0.5.2.0.nix16
-rw-r--r--pkgs/development/libraries/haskell/zlib/0.5.3.1.nix16
460 files changed, 6141 insertions, 2316 deletions
diff --git a/pkgs/development/libraries/haskell/AC-Vector/default.nix b/pkgs/development/libraries/haskell/AC-Vector/default.nix
index de9bdf8e479bd..e4b78876c57ae 100644
--- a/pkgs/development/libraries/haskell/AC-Vector/default.nix
+++ b/pkgs/development/libraries/haskell/AC-Vector/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "AC-Vector";
-  version = "2.3.1";
-  sha256 = "0nmj57czqcik23j9iqxbdwqg73n5n1kc9akhp0wywrbkklgf79a0";
+  version = "2.3.2";
+  sha256 = "04ahf6ldfhvzbml9xd6yplygn8ih7b8zz7cw03hkr053g5kzylay";
   meta = {
     description = "Efficient geometric vectors and transformations";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/Agda/default.nix b/pkgs/development/libraries/haskell/Agda/default.nix
index 5c896747ef13c..eb40a854e32e9 100644
--- a/pkgs/development/libraries/haskell/Agda/default.nix
+++ b/pkgs/development/libraries/haskell/Agda/default.nix
@@ -1,18 +1,25 @@
-{cabal, QuickCheck, binary, haskeline, haskellSrcExts, mtl, utf8String,
- syb, xhtml, zlib,
- happy, alex}:
+{ cabal, alex, binary, happy, haskeline, haskellSrcExts, mtl
+, QuickCheck, syb, xhtml, zlib
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Agda";
   version = "2.2.10";
   sha256 = "1bh96g5c6b6jzaf3m9gm0vr64avgi86kb45p8i1vg1jbfjdbdlsw";
-  extraBuildInputs = [happy alex];
-  propagatedBuildInputs =
-    [QuickCheck binary haskeline haskellSrcExts mtl utf8String
-     syb xhtml zlib];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    binary haskeline haskellSrcExts mtl QuickCheck syb xhtml zlib
+  ];
+  buildTools = [ alex happy ];
   meta = {
-    description = "A dependently typed functional language and proof assistant";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://wiki.portal.chalmers.se/agda/";
+    description = "A dependently typed functional programming language and proof assistant";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/AspectAG/default.nix b/pkgs/development/libraries/haskell/AspectAG/default.nix
index 70d6def01564f..347fc5ff9c996 100644
--- a/pkgs/development/libraries/haskell/AspectAG/default.nix
+++ b/pkgs/development/libraries/haskell/AspectAG/default.nix
@@ -1,14 +1,18 @@
-{cabal, HList, mtl}:
+{ cabal, HList, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "AspectAG";
-  version = "0.2";
-  sha256 = "5184ba55bc89d4afd12d1fe5f20e5d62b3b7306e771a7418db805afb70638ce7";
-  propagatedBuildInputs = [HList mtl];
+  version = "0.3.4.1";
+  sha256 = "12iaf27crynwnnd7qm1zvvaj6zw6i6c05mb4dsq55dnhph2l356g";
+  buildDepends = [ HList mtl ];
   meta = {
+    homepage = "http://www.cs.uu.nl/wiki/bin/view/Center/AspectAG";
     description = "Attribute Grammars in the form of an EDSL";
     license = "LGPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/Boolean/default.nix b/pkgs/development/libraries/haskell/Boolean/default.nix
index 78f9bae76306a..720d604616940 100644
--- a/pkgs/development/libraries/haskell/Boolean/default.nix
+++ b/pkgs/development/libraries/haskell/Boolean/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Boolean";
   version = "0.0.1";
   sha256 = "dafcfb2e9d7f7aa24a3d3ceb385424176297cdf6f6044028d42d0fea1cae7765";
   meta = {
     description = "Generalized booleans";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/CS173Tourney/default.nix b/pkgs/development/libraries/haskell/CS173Tourney/default.nix
deleted file mode 100644
index ac35433e144b4..0000000000000
--- a/pkgs/development/libraries/haskell/CS173Tourney/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{cabal, fetchgit, json, time, hslogger, Crypto, base64string, CouchDB, WebServer, WebServerExtras}:
-
-cabal.mkDerivation (self : {
-  pname = "CS173Tourney";
-  version = "2.5.2";
-
-  src = fetchgit {
-    url = git://github.com/arjunguha/173tourney.git;
-    rev = "dce044761b008cb685a675a1f35be6aff66fed21" ;
-    md5 = "21e5e5c2e184b4b70696d4d6c60e51d3";
-  };
-  patches = [./sendmail.patch];
-  propagatedBuildInputs = [json time hslogger Crypto base64string CouchDB WebServer WebServerExtras];
-  meta = {
-    description = "";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/CS173Tourney/sendmail.patch b/pkgs/development/libraries/haskell/CS173Tourney/sendmail.patch
deleted file mode 100644
index 7fb72c0f0ac70..0000000000000
--- a/pkgs/development/libraries/haskell/CS173Tourney/sendmail.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -rc 173tourney/server-src/Mail.hs 173tourney2/server-src/Mail.hs
-*** 173tourney/server-src/Mail.hs	2009-11-05 13:00:58.971443217 +0100
---- 173tourney2/server-src/Mail.hs	2009-11-24 10:38:38.325669644 +0100
-***************
-*** 17,23 ****
-           -> IO Bool
-  mailFrom fromAddr toAddrs subject body = do
-    (stdin,stdout,stderr,process) <- 
-!     runInteractiveCommand "/usr/sbin/sendmail -t"
-    let sendMail = do
-          hSetBinaryMode stdin False
-          hPutStrLn stdin $ "To: " ++ (concat $ intersperse ", " toAddrs)
---- 17,23 ----
-           -> IO Bool
-  mailFrom fromAddr toAddrs subject body = do
-    (stdin,stdout,stderr,process) <- 
-!     runInteractiveCommand "sendmail -t"
-    let sendMail = do
-          hSetBinaryMode stdin False
-          hPutStrLn stdin $ "To: " ++ (concat $ intersperse ", " toAddrs)
diff --git a/pkgs/development/libraries/haskell/Chart/default.nix b/pkgs/development/libraries/haskell/Chart/default.nix
index 440d7e814d333..daf15c0cb2eeb 100644
--- a/pkgs/development/libraries/haskell/Chart/default.nix
+++ b/pkgs/development/libraries/haskell/Chart/default.nix
@@ -1,15 +1,22 @@
-{cabal, cairo, colour, dataAccessor, dataAccessorTemplate, gtk, mtl}:
+{ cabal, cairo, colour, dataAccessor, dataAccessorTemplate, gtk
+, mtl, time
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Chart";
   version = "0.14";
   sha256 = "0ji81j4c2by5zyrdhx1s17j6kqsi3ngr9y1zh7hr9wv7jsrj3rf2";
-  propagatedBuildInputs =
-    [cairo colour dataAccessor dataAccessorTemplate gtk mtl];
+  buildDepends = [
+    cairo colour dataAccessor dataAccessorTemplate gtk mtl time
+  ];
   meta = {
+    homepage = "http://www.dockerz.net/software/chart.html";
     description = "A library for generating 2D Charts and Plots";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/ConfigFile/default.nix b/pkgs/development/libraries/haskell/ConfigFile/default.nix
index 7598ba9c512dd..378d1e2cd3764 100644
--- a/pkgs/development/libraries/haskell/ConfigFile/default.nix
+++ b/pkgs/development/libraries/haskell/ConfigFile/default.nix
@@ -1,14 +1,20 @@
-{cabal, mtl, parsec, MissingH}:
+{ cabal, MissingH, mtl, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ConfigFile";
   version = "1.0.6";
   sha256 = "339722184b86d53d8b361933e572b6e1478824c7eba3fb66b67d0eb5245cd038";
-  propagatedBuildInputs = [mtl parsec MissingH];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ MissingH mtl parsec ];
   meta = {
+    homepage = "http://software.complete.org/configfile";
     description = "Configuration file reading & writing";
     license = "LGPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/CouchDB/default.nix b/pkgs/development/libraries/haskell/CouchDB/default.nix
index e3ce4825d77f1..98002a4c46966 100644
--- a/pkgs/development/libraries/haskell/CouchDB/default.nix
+++ b/pkgs/development/libraries/haskell/CouchDB/default.nix
@@ -1,14 +1,18 @@
-{cabal, network, json, HTTP, mtl}:
+{ cabal, HTTP, json, mtl, network }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "CouchDB";
-  version = "0.8.1.1";
-
-  sha256 = "91edc35782e43a3b8dd5c5d3c303b88c05c57ba686e9565a11fe4d060f9372d7";
-
-  propagatedBuildInputs = [network HTTP mtl json];
+  version = "0.10.1";
+  sha256 = "1ny62ab0sjrkh7mpxj0ahqrv7c8dh0n5s1g8xl0mq3yiwlrjdsim";
+  buildDepends = [ HTTP json mtl network ];
   meta = {
-    description = "";
+    homepage = "http://github.com/arjunguha/haskell-couchdb/";
+    description = "CouchDB interface";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/Crypto/default.nix b/pkgs/development/libraries/haskell/Crypto/default.nix
index a25330a7b612c..3b2eccf081bf2 100644
--- a/pkgs/development/libraries/haskell/Crypto/default.nix
+++ b/pkgs/development/libraries/haskell/Crypto/default.nix
@@ -1,12 +1,19 @@
-{cabal, HUnit, QuickCheck}:
+{ cabal, HUnit, QuickCheck, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Crypto";
-  version = "4.1.0";
-  sha256 = "0984c833c5dfa6f4d56fd6fb284db7b7cef6676dc7999a1436aa856becba2b8f";
-  propagatedBuildInputs = [HUnit QuickCheck];
+  version = "4.2.3";
+  sha256 = "02wi8lyi27i8cdj8vclrl7vcng38srdzz9qpqwsc4y4lmvgg82br";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ HUnit QuickCheck random ];
   meta = {
-    description = "Several encryption algorithms for Haskell";
+    description = "Collects together existing Haskell cryptographic functions into a package";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/Diff/default.nix b/pkgs/development/libraries/haskell/Diff/default.nix
index e40dec6dc968b..f54344882bb9f 100644
--- a/pkgs/development/libraries/haskell/Diff/default.nix
+++ b/pkgs/development/libraries/haskell/Diff/default.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Diff";
-  version = "0.1.2";
-  sha256 = "f831ce6029a75b54dd69801d865ed45284f7dacf723fe5fd81758ad03f8eef5e";
+  version = "0.1.3";
+  sha256 = "02dhy4rp3mkzm5x3h1rkdin2h8qcb7h7nhn14gl2gvl6wdykfh5w";
   meta = {
-    description = "O(ND) diff algorithm in Haskell";
+    description = "O(ND) diff algorithm in haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/GLURaw/default.nix b/pkgs/development/libraries/haskell/GLURaw/default.nix
new file mode 100644
index 0000000000000..d64151260629f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/GLURaw/default.nix
@@ -0,0 +1,19 @@
+{ cabal, GLU, OpenGLRaw }:
+
+cabal.mkDerivation (self: {
+  pname = "GLURaw";
+  version = "1.1.0.0";
+  sha256 = "03lsskqxh2q7kbnw8hbxz5wp7zq55nwbibsb9maj4y3xpc1vprac";
+  buildDepends = [ OpenGLRaw ];
+  extraLibraries = [ GLU ];
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "A raw binding for the OpenGL graphics system";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/GLUT/2.1.1.2.nix b/pkgs/development/libraries/haskell/GLUT/2.1.1.2.nix
index 2ea65ec9d78e6..c07e5c3717484 100644
--- a/pkgs/development/libraries/haskell/GLUT/2.1.1.2.nix
+++ b/pkgs/development/libraries/haskell/GLUT/2.1.1.2.nix
@@ -1,12 +1,19 @@
-{cabal, OpenGL, glut, libSM, libICE, libXmu, libXi, mesa}:
+{ cabal, glut, libICE, libSM, libXi, libXmu, mesa, OpenGL }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "GLUT";
-  version = "2.1.1.2"; # Haskell Platform 2009.0.0
+  version = "2.1.1.2";
   sha256 = "d5ecf4b6bacc5e68ade00710df04fa158c6ed322c74362954716a0baba6bd3fb";
-  propagatedBuildInputs = [OpenGL glut libSM libICE libXmu libXi mesa];
+  buildDepends = [ OpenGL ];
+  extraLibraries = [ glut libICE libSM libXi libXmu mesa ];
   meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
     description = "A binding for the OpenGL Utility Toolkit";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/GLUT/2.1.2.1.nix b/pkgs/development/libraries/haskell/GLUT/2.1.2.1.nix
index 4aa36b907bba4..553ec3ab8c06f 100644
--- a/pkgs/development/libraries/haskell/GLUT/2.1.2.1.nix
+++ b/pkgs/development/libraries/haskell/GLUT/2.1.2.1.nix
@@ -1,12 +1,19 @@
-{cabal, OpenGL, glut, libSM, libICE, libXmu, libXi, mesa}:
+{ cabal, glut, libICE, libSM, libXi, libXmu, mesa, OpenGL }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "GLUT";
-  version = "2.1.2.1"; # Haskell Platform 2010.1.0.0, 2010.2.0.0, 2011.2.0.0
+  version = "2.1.2.1";
   sha256 = "0r3js5i468lqlsnvb04iw6gdl81gs3cgqids3xpi4p5qpynbyc02";
-  propagatedBuildInputs = [OpenGL glut libSM libICE libXmu libXi mesa];
+  buildDepends = [ OpenGL ];
+  extraLibraries = [ glut libICE libSM libXi libXmu mesa ];
   meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
     description = "A binding for the OpenGL Utility Toolkit";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/GLUT/2.2.2.0.nix b/pkgs/development/libraries/haskell/GLUT/2.2.2.0.nix
new file mode 100644
index 0000000000000..50440932727ca
--- /dev/null
+++ b/pkgs/development/libraries/haskell/GLUT/2.2.2.0.nix
@@ -0,0 +1,21 @@
+{ cabal, glut, libICE, libSM, libXi, libXmu, mesa, OpenGL, StateVar
+, Tensor
+}:
+
+cabal.mkDerivation (self: {
+  pname = "GLUT";
+  version = "2.2.2.0";
+  sha256 = "0hilpjwkjvpz4sz0zqa36vmx8m1yycjnqdd721mqns7lib2fnzrx";
+  buildDepends = [ OpenGL StateVar Tensor ];
+  extraLibraries = [ glut libICE libSM libXi libXmu mesa ];
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "A binding for the OpenGL Utility Toolkit";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/GlomeVec/default.nix b/pkgs/development/libraries/haskell/GlomeVec/default.nix
index 4ca87d9bced27..421e64ee7a244 100644
--- a/pkgs/development/libraries/haskell/GlomeVec/default.nix
+++ b/pkgs/development/libraries/haskell/GlomeVec/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "GlomeVec";
   version = "0.1.2";
   sha256 = "6023c11977bf16baf487235087e94f5a2f465e8403b8e40ab513e7879dd52639";
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Glome";
     description = "Simple 3D vector library";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/Graphalyze/default.nix b/pkgs/development/libraries/haskell/Graphalyze/default.nix
index 253f6e08f2a29..8084ada2cd68e 100644
--- a/pkgs/development/libraries/haskell/Graphalyze/default.nix
+++ b/pkgs/development/libraries/haskell/Graphalyze/default.nix
@@ -1,13 +1,21 @@
-{cabal, bktrees, fgl, graphviz, pandoc}:
+{ cabal, bktrees, extensibleExceptions, fgl, graphviz, pandoc
+, random, text, time
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Graphalyze";
-  version = "0.10.0.1";
-  sha256 = "8f273de41c7c340d2c7c8b4797d30535e4038616055099cc52bc5d21c10d9f22";
-  propagatedBuildInputs = [bktrees fgl graphviz pandoc ];
+  version = "0.12.0.0";
+  sha256 = "0lsbwf08flaifdddbg6d3ndrb2d1wzs943hk7n0m316bvahq6kgx";
+  buildDepends = [
+    bktrees extensibleExceptions fgl graphviz pandoc random text time
+  ];
   meta = {
-    description = "A library to use graph theory analysis";
-    license = "OtherLicene";
+    description = "Graph-Theoretic Analysis library";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HDBC/HDBC-postgresql.nix b/pkgs/development/libraries/haskell/HDBC/HDBC-postgresql.nix
index 4877a9fe8cb0a..8ac9548d6104d 100644
--- a/pkgs/development/libraries/haskell/HDBC/HDBC-postgresql.nix
+++ b/pkgs/development/libraries/haskell/HDBC/HDBC-postgresql.nix
@@ -1,12 +1,21 @@
-{cabal, HDBC, postgresql, parsec}:
+{ cabal, HDBC, mtl, parsec, postgresql, time, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HDBC-postgresql";
-  version = "2.1.0.0";
-  sha256 = "424b491766410df73f2df87a5cd4b5f4549850cc53a2f1c937b546ff1ef1562b";
-  propagatedBuildInputs = [HDBC parsec postgresql];
+  version = "2.3.2.0";
+  sha256 = "0fwza9h2ghl70x44c4snfybnnfsj1mwlf5a1x12ddl1fbj6fx6gs";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ HDBC mtl parsec time utf8String ];
+  extraLibraries = [ postgresql ];
   meta = {
-    description = "This package provides a PostgreSQL driver for HDBC";
+    homepage = "http://software.complete.org/hdbc-postgresql";
+    description = "PostgreSQL driver for HDBC";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HDBC/HDBC-sqlite3.nix b/pkgs/development/libraries/haskell/HDBC/HDBC-sqlite3.nix
index e6aefbb825aab..aa983026c9159 100644
--- a/pkgs/development/libraries/haskell/HDBC/HDBC-sqlite3.nix
+++ b/pkgs/development/libraries/haskell/HDBC/HDBC-sqlite3.nix
@@ -1,12 +1,21 @@
-{cabal, HDBC, sqlite}:
+{ cabal, HDBC, mtl, sqlite, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HDBC-sqlite3";
-  version = "2.1.0.0";
-  sha256 = "a95f28fadd67ba1593cf75774308b7cfdde4a78ee5cba0a6aeb6c18723d8d67b";
-  propagatedBuildInputs = [HDBC sqlite];
+  version = "2.3.3.0";
+  sha256 = "11765nsncgyv9j6r5wpziqyhy0lxrmqbhgricbdx0c788ky75y92";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ HDBC mtl utf8String ];
+  extraLibraries = [ sqlite ];
   meta = {
-    description = "This is the Sqlite v3 driver for HDBC, the generic database access system for Haskell";
+    homepage = "http://software.complete.org/hdbc-sqlite3";
+    description = "Sqlite v3 driver for HDBC";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HDBC/HDBC.nix b/pkgs/development/libraries/haskell/HDBC/HDBC.nix
index abfa0aea85bf8..30791deea1c0c 100644
--- a/pkgs/development/libraries/haskell/HDBC/HDBC.nix
+++ b/pkgs/development/libraries/haskell/HDBC/HDBC.nix
@@ -1,12 +1,20 @@
-{cabal, HUnit, QuickCheck, mtl, time, utf8String, convertible, testpack}:
+{ cabal, convertible, mtl, text, time, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HDBC";
-  version = "2.1.1";
-  sha256 = "9a3ab307c006fb9c22089a15d190339c45de0a32e700f2d9eda70423e719197c";
-  propagatedBuildInputs =
-    [HUnit QuickCheck mtl time utf8String convertible testpack];
+  version = "2.3.1.0";
+  sha256 = "1y3qcc0ids9k3af4qkhabwg82q03a21wl4vdqhj1h0zmf08b3m6k";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ convertible mtl text time utf8String ];
   meta = {
-    description = "HDBC provides an abstraction layer between Haskell programs and SQL relational databases";
+    homepage = "https://github.com/jgoerzen/hdbc/wiki";
+    description = "Haskell Database Connectivity";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/HGL/default.nix b/pkgs/development/libraries/haskell/HGL/default.nix
index 0faf430dcde87..4b8d6e24c4b85 100644
--- a/pkgs/development/libraries/haskell/HGL/default.nix
+++ b/pkgs/development/libraries/haskell/HGL/default.nix
@@ -1,13 +1,17 @@
-{cabal, X11}:
+{ cabal, X11 }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HGL";
-  version = "3.2.0.0";
-  sha256 = "fa7cb1981f6e5a89b35e0fc2593c0945175a0d97fc3bc356cc8724fa1c881e86";
-  propagatedBuildInputs = [X11];
-  configureFlags = ''--constraint=base<4'';
+  version = "3.2.0.2";
+  sha256 = "13wcvf6bfii9pihr8m08b81fyslf5n587ds4zzgizbd8m38k81vz";
+  buildDepends = [ X11 ];
   meta = {
     description = "A simple graphics library based on X11 or Win32";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HList/default.nix b/pkgs/development/libraries/haskell/HList/default.nix
index 92d9cbbef7396..657e4899b7b2c 100644
--- a/pkgs/development/libraries/haskell/HList/default.nix
+++ b/pkgs/development/libraries/haskell/HList/default.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HList";
   version = "0.2.3";
   sha256 = "1efbe0c2cb361ab0a9d864a09f9c58075132cb50094207260cb1363fe73c2908";
   meta = {
     description = "Heterogeneous lists";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HStringTemplate/default.nix b/pkgs/development/libraries/haskell/HStringTemplate/default.nix
index e3b833e1cb359..55d2914d5bc92 100644
--- a/pkgs/development/libraries/haskell/HStringTemplate/default.nix
+++ b/pkgs/development/libraries/haskell/HStringTemplate/default.nix
@@ -1,12 +1,21 @@
-{cabal, parsec, time, text, utf8String, parallel, syb}:
+{ cabal, deepseq, mtl, parsec, syb, sybWithClass, text, time
+, utf8String
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HStringTemplate";
   version = "0.6.6";
   sha256 = "1ian79az5q6m08pwb5fks52ffs4h2mq02kkcwmr6jb7i0ha2k2si";
-  propagatedBuildInputs = [parsec time text utf8String parallel syb];
+  buildDepends = [
+    deepseq mtl parsec syb sybWithClass text time utf8String
+  ];
   meta = {
     description = "StringTemplate implementation in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HTTP/3001.1.5.nix b/pkgs/development/libraries/haskell/HTTP/3001.1.5.nix
index b8ba3f27df62d..d16db78d8f4f3 100644
--- a/pkgs/development/libraries/haskell/HTTP/3001.1.5.nix
+++ b/pkgs/development/libraries/haskell/HTTP/3001.1.5.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, network, parsec}:
+{ cabal, network, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HTTP";
   version = "3001.1.5";
   sha256 = "e34d9f979bafbbf2e45bf90a9ee9bfd291f3c67c291a250cc0a6378431578aeb";
-  propagatedBuildInputs = [mtl network parsec];
+  buildDepends = [ network parsec ];
   meta = {
-    description = "a Haskell library for client-side HTTP";
+    homepage = "http://www.haskell.org/http/";
+    description = "A library for client-side HTTP";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.0.6.nix b/pkgs/development/libraries/haskell/HTTP/4000.0.6.nix
index 3c0d9a7b8d029..13d271dfc36fa 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.0.6.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.0.6.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, network, parsec}:
+{ cabal, mtl, network, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HTTP";
-  version = "4000.0.6"; # Haskell Platform 2009.1.1
+  version = "4000.0.6";
   sha256 = "75af1ac4dc21b10c8a1a54a33179ea822e591887bab7278360a3d6b38304d39b";
-  propagatedBuildInputs = [mtl network parsec];
+  buildDepends = [ mtl network parsec ];
   meta = {
-    description = "a Haskell library for client-side HTTP";
+    homepage = "http://projects.haskell.org/http/";
+    description = "A library for client-side HTTP";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.0.9.nix b/pkgs/development/libraries/haskell/HTTP/4000.0.9.nix
index 23b09543707c2..fee3431829f83 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.0.9.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.0.9.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, network, parsec}:
+{ cabal, mtl, network, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HTTP";
-  version = "4000.0.9"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
+  version = "4000.0.9";
   sha256 = "1e2b4a8b782ad1417c8755bb0d248851bc142b351366ed460e07f2945a5e95ba";
-  propagatedBuildInputs = [mtl network parsec];
+  buildDepends = [ mtl network parsec ];
   meta = {
-    description = "a Haskell library for client-side HTTP";
+    homepage = "http://projects.haskell.org/http/";
+    description = "A library for client-side HTTP";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.1.1.nix b/pkgs/development/libraries/haskell/HTTP/4000.1.1.nix
index 686ca44654eaa..d007467e0e348 100644
--- a/pkgs/development/libraries/haskell/HTTP/4000.1.1.nix
+++ b/pkgs/development/libraries/haskell/HTTP/4000.1.1.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, network, parsec}:
+{ cabal, mtl, network, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HTTP";
-  version = "4000.1.1"; # Haskell Platform 2011.2.0.0
+  version = "4000.1.1";
   sha256 = "09khx5fb673a0d7m3bl39xjdxvc60m52rmm4865cha2mby0zidy3";
-  propagatedBuildInputs = [mtl network parsec];
+  buildDepends = [ mtl network parsec ];
   meta = {
-    description = "a Haskell library for client-side HTTP";
+    homepage = "http://projects.haskell.org/http/";
+    description = "A library for client-side HTTP";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HTTP/4000.1.2.nix b/pkgs/development/libraries/haskell/HTTP/4000.1.2.nix
new file mode 100644
index 0000000000000..5dcb4cbe618cf
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HTTP/4000.1.2.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl, network, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "HTTP";
+  version = "4000.1.2";
+  sha256 = "19vcy8xinrvn01caly6sg1p1yvbbf7nwq10kxmnwqssnl4h5cwn8";
+  buildDepends = [ mtl network parsec ];
+  meta = {
+    homepage = "http://projects.haskell.org/http/";
+    description = "A library for client-side HTTP";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HUnit/1.2.0.3.nix b/pkgs/development/libraries/haskell/HUnit/1.2.0.3.nix
index 36e8b86f3019a..ebf561825ce0b 100644
--- a/pkgs/development/libraries/haskell/HUnit/1.2.0.3.nix
+++ b/pkgs/development/libraries/haskell/HUnit/1.2.0.3.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HUnit";
-  version = "1.2.0.3"; # Haskell Platform 2009.0.0
+  version = "1.2.0.3";
   sha256 = "954f584f7c096c3ddef677e70b3811195bb4fd18dfdb4727a260ca7d7465de12";
   meta = {
+    homepage = "http://hunit.sourceforge.net/";
     description = "A unit testing framework for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HUnit/1.2.2.1.nix b/pkgs/development/libraries/haskell/HUnit/1.2.2.1.nix
index ebbf304721b0b..ec65d160e866f 100644
--- a/pkgs/development/libraries/haskell/HUnit/1.2.2.1.nix
+++ b/pkgs/development/libraries/haskell/HUnit/1.2.2.1.nix
@@ -1,11 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HUnit";
-  version = "1.2.2.1"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
+  version = "1.2.2.1";
   sha256 = "47235503b666658588181795540d29212283059b21edc42e1b4f1998e46ac853";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://hunit.sourceforge.net/";
     description = "A unit testing framework for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HUnit/1.2.2.3.nix b/pkgs/development/libraries/haskell/HUnit/1.2.2.3.nix
index d1e3f05aa628d..9c58da37b5037 100644
--- a/pkgs/development/libraries/haskell/HUnit/1.2.2.3.nix
+++ b/pkgs/development/libraries/haskell/HUnit/1.2.2.3.nix
@@ -1,11 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HUnit";
-  version = "1.2.2.3"; # Haskell Platform 2011.2.0.0
+  version = "1.2.2.3";
   sha256 = "158i6s014ybh5bflzspd21qzdlhdyk89yqpmk8kwc59lxjvvjsxz";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://hunit.sourceforge.net/";
     description = "A unit testing framework for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HUnit/1.2.4.2.nix b/pkgs/development/libraries/haskell/HUnit/1.2.4.2.nix
new file mode 100644
index 0000000000000..e0dd6bd2bc178
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HUnit/1.2.4.2.nix
@@ -0,0 +1,19 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "HUnit";
+  version = "1.2.4.2";
+  sha256 = "0yijvrjmmz6vvgi5h1195z4psmymvhq6rr7kkd26nqbd34lbrg7x";
+  isLibrary = true;
+  isExecutable = true;
+  meta = {
+    homepage = "http://hunit.sourceforge.net/";
+    description = "A unit testing framework for Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/HaXml/1.13.3.nix b/pkgs/development/libraries/haskell/HaXml/1.13.3.nix
deleted file mode 100644
index 00a5cba60eff9..0000000000000
--- a/pkgs/development/libraries/haskell/HaXml/1.13.3.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "HaXml";
-  version = "1.13.3";
-  sha256 = "08d9wy0rg9m66dd10x0zvkl74l25vxdakz7xp3j88s2gd31jp1v0";
-  meta = {
-    description = "Haskell utilities for parsing, filtering, transforming and generating XML documents.";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/HaXml/1.20.2.nix b/pkgs/development/libraries/haskell/HaXml/1.20.2.nix
deleted file mode 100644
index 188377b8e9480..0000000000000
--- a/pkgs/development/libraries/haskell/HaXml/1.20.2.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, polyparse}:
-
-cabal.mkDerivation (self : {
-  pname = "HaXml";
-  version = "1.20.2";
-  sha256 = "05kmr2ablinnrg3x1xr19g5kzzby322lblvcvhwbkv26ajwi0b63";
-  propagatedBuildInputs = [polyparse];
-  meta = {
-    description = "Haskell utilities for parsing, filtering, transforming and generating XML documents.";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/HaXml/default.nix b/pkgs/development/libraries/haskell/HaXml/default.nix
new file mode 100644
index 0000000000000..76167c0a26554
--- /dev/null
+++ b/pkgs/development/libraries/haskell/HaXml/default.nix
@@ -0,0 +1,20 @@
+{ cabal, polyparse, random }:
+
+cabal.mkDerivation (self: {
+  pname = "HaXml";
+  version = "1.22.5";
+  sha256 = "1ckmi8iwyaid4mcnh8117s9kq45f8r7sidh6dbhzbj0dl29rrkbz";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ polyparse random ];
+  meta = {
+    homepage = "http://www.cs.york.ac.uk/fp/HaXml/";
+    description = "Utilities for manipulating XML documents";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Hipmunk/default.nix b/pkgs/development/libraries/haskell/Hipmunk/default.nix
index 8b965858f7993..537bc0ca30b1d 100644
--- a/pkgs/development/libraries/haskell/Hipmunk/default.nix
+++ b/pkgs/development/libraries/haskell/Hipmunk/default.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal, StateVar, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Hipmunk";
-  version = "0.2.1";
-  sha256 = "6482f73367526fae215808098296c3e11e39c7466a441c5c475193a3ccccd4d9";
+  version = "5.2.0.2";
+  sha256 = "18ly05q953x59smqqrhwjlfa1v6lqma0xiarmr689i63zzb7ji8z";
+  buildDepends = [ StateVar transformers ];
   meta = {
+    homepage = "http://patch-tag.com/r/felipe/hipmunk/home";
     description = "A Haskell binding for Chipmunk";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/HsSyck/default.nix b/pkgs/development/libraries/haskell/HsSyck/default.nix
index 6b1681c6b3727..f27d1f97f374d 100644
--- a/pkgs/development/libraries/haskell/HsSyck/default.nix
+++ b/pkgs/development/libraries/haskell/HsSyck/default.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal, syb, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "HsSyck";
-  version = "0.45";
-  sha256 = "67d02a892cd4535a02cc3ebf7b6e9f898a64428ec6783488875ac694d7fafb79";
+  version = "0.50";
+  sha256 = "0ap675i2fngvd1nw1dk8p2fz4nbd2aq5ci8dsvpcjbp28y9j2blm";
+  buildDepends = [ syb utf8String ];
   meta = {
     description = "Fast, lightweight YAML loader and dumper";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/JsContracts/default.nix b/pkgs/development/libraries/haskell/JsContracts/default.nix
index 38af9e3e79124..51a0e127ecf91 100644
--- a/pkgs/development/libraries/haskell/JsContracts/default.nix
+++ b/pkgs/development/libraries/haskell/JsContracts/default.nix
@@ -1,13 +1,20 @@
-{cabal, WebBits, WebBitsHtml}:
+{ cabal, mtl, parsec, syb, WebBits, WebBitsHtml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "JsContracts";
   version = "0.5.3";
   sha256 = "17l6kdpdc7lrpd9j4d2b6vklkpclshcjy6hzpi442b7pj96sn589";
-
-  propagatedBuildInputs = [ WebBits WebBitsHtml ];
-
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl parsec syb WebBits WebBitsHtml ];
   meta = {
-    description = "Design-by-contract for JavaScript.";
+    homepage = "http://www.cs.brown.edu/research/plt/";
+    description = "Design-by-contract for JavaScript";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/ListLike/default.nix b/pkgs/development/libraries/haskell/ListLike/default.nix
index 83aeeb88f8774..1d89afe596816 100644
--- a/pkgs/development/libraries/haskell/ListLike/default.nix
+++ b/pkgs/development/libraries/haskell/ListLike/default.nix
@@ -1,12 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ListLike";
-  version = "3.0.1";
-  sha256 = "1366ipy33fphjjk583c62rsyfwh36i5lbnip1v8r089c9glvwkxf";
+  version = "3.1.2";
+  sha256 = "1fa2y8yc0ppmh37alc20a75gpb90i8s3pgnh3kg8n0577gvhjhzz";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://software.complete.org/listlike";
     description = "Generic support for list-like structures";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/MaybeT-transformers/default.nix b/pkgs/development/libraries/haskell/MaybeT-transformers/default.nix
deleted file mode 100644
index c07747a167481..0000000000000
--- a/pkgs/development/libraries/haskell/MaybeT-transformers/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, transformers, monadsFd}:
-
-cabal.mkDerivation (self : {
-  pname = "MaybeT-transformers";
-  version = "0.1";
-  sha256 = "b24b78e3a895587722c9ce899f9ef07b509db1a5b3b86f5b7b0e8bc986c8fb8f";
-  propagatedBuildInputs = [transformers monadsFd];
-  meta = {
-    description = "Support for computations with failures";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/MaybeT/default.nix b/pkgs/development/libraries/haskell/MaybeT/default.nix
index 34a27532f6897..348560508622b 100644
--- a/pkgs/development/libraries/haskell/MaybeT/default.nix
+++ b/pkgs/development/libraries/haskell/MaybeT/default.nix
@@ -1,14 +1,17 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MaybeT";
   version = "0.1.2";
   sha256 = "995e61165122656807d84174e5c1516340fd7ddeba6571c20751352a8476b632";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
     description = "MaybeT monad transformer";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/MemoTrie/default.nix b/pkgs/development/libraries/haskell/MemoTrie/default.nix
index 683593227872c..61ba44a492466 100644
--- a/pkgs/development/libraries/haskell/MemoTrie/default.nix
+++ b/pkgs/development/libraries/haskell/MemoTrie/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MemoTrie";
-  version = "0.4.9";
-  sha256 = "f17dd0b73c1a11a6edb38fb6f457b9687f2e93aa4677e90f7ec482a528ac02e7";
+  version = "0.4.10";
+  sha256 = "1hkraq33sai046gwqlabc9nkz6jbl6vgj0c6lc6j4j5h5d8v08kk";
   meta = {
+    homepage = "http://haskell.org/haskellwiki/MemoTrie";
     description = "Trie-based memo functions";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/MissingH/default.nix b/pkgs/development/libraries/haskell/MissingH/default.nix
index 3e81e7548bf71..ea70c41e7705e 100644
--- a/pkgs/development/libraries/haskell/MissingH/default.nix
+++ b/pkgs/development/libraries/haskell/MissingH/default.nix
@@ -1,14 +1,23 @@
-{cabal, HUnit, hslogger, network, parsec, regexCompat}:
+{ cabal, hslogger, HUnit, mtl, network, parsec, random, regexCompat
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MissingH";
   version = "1.1.0.3";
   sha256 = "2d566511e8a347189cf864188d97f8406c6958c6f0a6fcf8cb1593c6bae13dbf";
-  propagatedBuildInputs = [HUnit hslogger network parsec regexCompat];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    hslogger HUnit mtl network parsec random regexCompat
+  ];
   meta = {
+    homepage = "http://software.complete.org/missingh";
     description = "Large utility library";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix b/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix
index cf848419bec9a..bcbf6b798683c 100644
--- a/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix
+++ b/pkgs/development/libraries/haskell/MonadCatchIO-mtl/default.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, extensibleExceptions} :
+{ cabal, extensibleExceptions, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MonadCatchIO-mtl";
-  version = "0.3.0.1";
-  sha256 = "56113319439a10e338b2e3169e1df575024fbaf97827511f4856e46efbac9a07";
-  propagatedBuildInputs = [mtl extensibleExceptions];
+  version = "0.3.0.4";
+  sha256 = "0wzdrfplwa4v9miv88rg3jvf7l6gphc29lpdp5qjm5873y57jxm7";
+  buildDepends = [ extensibleExceptions mtl ];
   meta = {
+    homepage = "http://darcsden.com/jcpetruzza/MonadCatchIO-mtl";
     description = "Monad-transformer version of the Control.Exception module";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/MonadCatchIO-transformers/default.nix b/pkgs/development/libraries/haskell/MonadCatchIO-transformers/default.nix
index 13b271524efca..1c992f4b5719d 100644
--- a/pkgs/development/libraries/haskell/MonadCatchIO-transformers/default.nix
+++ b/pkgs/development/libraries/haskell/MonadCatchIO-transformers/default.nix
@@ -1,12 +1,17 @@
-{cabal, transformers, extensibleExceptions} :
+{ cabal, extensibleExceptions, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MonadCatchIO-transformers";
-  version = "0.2.2.0";
-  sha256 = "7f3b45ac01ac98476d1305333435005a6876e5c04c562e94ad2426ee7ab6936d";
-  propagatedBuildInputs = [transformers extensibleExceptions];
+  version = "0.2.2.2";
+  sha256 = "083c0abwja447j0p8q0j15iv7bshchy83rfqw07b2hfy38467h9g";
+  buildDepends = [ extensibleExceptions transformers ];
   meta = {
     description = "Monad-transformer compatible version of the Control.Exception module";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/MonadPrompt/default.nix b/pkgs/development/libraries/haskell/MonadPrompt/default.nix
index 33af33fe2e910..daf961f155065 100644
--- a/pkgs/development/libraries/haskell/MonadPrompt/default.nix
+++ b/pkgs/development/libraries/haskell/MonadPrompt/default.nix
@@ -1,17 +1,17 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MonadPrompt";
-  version = "1.0.0.2";
-  sha256 = "01inbw0lfjrsgs68fvak1rxi76nhwsiyarfwl1g5mis4glmh4w4c";
-  propagatedBuildInputs = [mtl];
-  preConfigure = ''
-    sed -i 's|base<=4|base >= 3 \&\& < 5|' ${self.pname}.cabal
-  '';
+  version = "1.0.0.3";
+  sha256 = "0v6svyiajri7c463bz1a1x1nin5s9s7c3s7y0gjc4cn7lhgdsvf2";
+  buildDepends = [ mtl ];
   meta = {
     description = "MonadPrompt, implementation & examples";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/MonadRandom/default.nix b/pkgs/development/libraries/haskell/MonadRandom/default.nix
index c57e47003eea9..f9c68ce7b4310 100644
--- a/pkgs/development/libraries/haskell/MonadRandom/default.nix
+++ b/pkgs/development/libraries/haskell/MonadRandom/default.nix
@@ -1,12 +1,17 @@
-{cabal, mtl}:
+{ cabal, mtl, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "MonadRandom";
-  version = "0.1.3";
-  sha256 = "be4dd46a93b59a5e94b58e6986934ca91feace9962a1741b6107a3dd06879fea";
-  propagatedBuildInputs = [mtl];
+  version = "0.1.6";
+  sha256 = "1429w2h66sf0cw992xj4w9clapcqgpdzmh80as7zxf8l87rarqqp";
+  buildDepends = [ mtl random ];
   meta = {
     description = "Random-number generation monad";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/ObjectName/default.nix b/pkgs/development/libraries/haskell/ObjectName/default.nix
new file mode 100755
index 0000000000000..0be7c3dd22c91
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ObjectName/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "ObjectName";
+  version = "1.0.0.0";
+  sha256 = "0yr1aa0ail2h9qsq2bslcwwq6cxl2lzajmc1laj19r7ks62p32rm";
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "Explicitly handled object names";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/OneTuple/default.nix b/pkgs/development/libraries/haskell/OneTuple/default.nix
index 237000e23eafd..2ecc841a8a479 100644
--- a/pkgs/development/libraries/haskell/OneTuple/default.nix
+++ b/pkgs/development/libraries/haskell/OneTuple/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "OneTuple";
   version = "0.2.1";
   sha256 = "1x52b68zh3k9lnps5s87kzan7dzvqp6mrwgayjq15w9dv6v78vsb";
   meta = {
     description = "Singleton Tuple";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/OpenAL/default.nix b/pkgs/development/libraries/haskell/OpenAL/default.nix
index 87a8aa772efcd..a4a77aa824419 100644
--- a/pkgs/development/libraries/haskell/OpenAL/default.nix
+++ b/pkgs/development/libraries/haskell/OpenAL/default.nix
@@ -1,12 +1,19 @@
-{cabal, OpenGL, openal}:
+{ cabal, ObjectName, openal, StateVar, Tensor }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "OpenAL";
-  version = "1.3.1.1"; # Haskell Platform 2009.0.0
-  sha256 = "4875e015770feb93d5127d4b6f2338eb3957a0c36f64ccb8b3846010619f89b0";
-  propagatedBuildInputs = [OpenGL openal];
+  version = "1.4.0.0";
+  sha256 = "1vn9r8fd4zwqm8a9d8bgvi9vs1lmygn8sw1rlv819b5wmjwz3ms2";
+  buildDepends = [ ObjectName StateVar Tensor ];
+  extraLibraries = [ openal ];
   meta = {
+    homepage = "http://connect.creativelabs.com/openal/";
     description = "A binding to the OpenAL cross-platform 3D audio API";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/OpenGL/2.2.1.1.nix b/pkgs/development/libraries/haskell/OpenGL/2.2.1.1.nix
index b876c10b6e13f..e74fcdca02456 100644
--- a/pkgs/development/libraries/haskell/OpenGL/2.2.1.1.nix
+++ b/pkgs/development/libraries/haskell/OpenGL/2.2.1.1.nix
@@ -1,12 +1,18 @@
-{cabal, mesa, libX11}:
+{ cabal, libX11, mesa }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "OpenGL";
-  version = "2.2.1.1"; # Haskell Platform 2009.0.0
+  version = "2.2.1.1";
   sha256 = "926ca25cf9502cdaaeb8ade484015468cb60594e1bfbf0e04bd01235d8d9a792";
-  propagatedBuildInputs = [mesa libX11];
+  extraLibraries = [ libX11 mesa ];
   meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
     description = "A binding for the OpenGL graphics system";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/OpenGL/2.2.3.0.nix b/pkgs/development/libraries/haskell/OpenGL/2.2.3.0.nix
index 55a2dd8130dcf..65e3da59367aa 100644
--- a/pkgs/development/libraries/haskell/OpenGL/2.2.3.0.nix
+++ b/pkgs/development/libraries/haskell/OpenGL/2.2.3.0.nix
@@ -1,12 +1,18 @@
-{cabal, mesa, libX11}:
+{ cabal, libX11, mesa }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "OpenGL";
-  version = "2.2.3.0"; # Haskell Platform 2010.1.0.0, 2010.2.0.0, 2011.2.0.0
+  version = "2.2.3.0";
   sha256 = "00h5zdm64mfj5fwnd52kyn9aynsbzqwfic0ymjjakz90pdvk4p57";
-  propagatedBuildInputs = [mesa libX11];
+  extraLibraries = [ libX11 mesa ];
   meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
     description = "A binding for the OpenGL graphics system";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/OpenGL/2.4.0.1.nix b/pkgs/development/libraries/haskell/OpenGL/2.4.0.1.nix
new file mode 100644
index 0000000000000..2deb96d750f54
--- /dev/null
+++ b/pkgs/development/libraries/haskell/OpenGL/2.4.0.1.nix
@@ -0,0 +1,21 @@
+{ cabal, GLURaw, libX11, mesa, ObjectName, OpenGLRaw, StateVar
+, Tensor
+}:
+
+cabal.mkDerivation (self: {
+  pname = "OpenGL";
+  version = "2.4.0.1";
+  sha256 = "0xdclf0m7qxp4157053cbsybpy7fqiiiak0g2kyf8awr7a5736n5";
+  buildDepends = [ GLURaw ObjectName OpenGLRaw StateVar Tensor ];
+  extraLibraries = [ libX11 mesa ];
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "A binding for the OpenGL graphics system";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/OpenGLRaw/default.nix b/pkgs/development/libraries/haskell/OpenGLRaw/default.nix
new file mode 100644
index 0000000000000..e4f9daf066cf4
--- /dev/null
+++ b/pkgs/development/libraries/haskell/OpenGLRaw/default.nix
@@ -0,0 +1,18 @@
+{ cabal, GL }:
+
+cabal.mkDerivation (self: {
+  pname = "OpenGLRaw";
+  version = "1.1.0.1";
+  sha256 = "0v6zcy4xvjj5g137rwjsh6hs0ni9dfkvsqynxv4bl5s78amppqnf";
+  extraLibraries = [ GL ];
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "A raw binding for the OpenGL graphics system";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/PSQueue/default.nix b/pkgs/development/libraries/haskell/PSQueue/default.nix
index 7da7a50a2f1b1..ff3bd0b8fb5f6 100644
--- a/pkgs/development/libraries/haskell/PSQueue/default.nix
+++ b/pkgs/development/libraries/haskell/PSQueue/default.nix
@@ -1,12 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "PSQueue";
   version = "1.1";
   sha256 = "1k291bh8j5vpcrn6vycww2blwg7jxx9yrfmrqdanz48gs4d8gq58";
   meta = {
-    description = "Priority Search Queue implementation for Haskell";
-    license = "BSD";
+    description = "Priority Search Queue";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/QuickCheck/1.2.0.0.nix b/pkgs/development/libraries/haskell/QuickCheck/1.2.0.0.nix
index ea59c8c7fddad..a459fd9531756 100644
--- a/pkgs/development/libraries/haskell/QuickCheck/1.2.0.0.nix
+++ b/pkgs/development/libraries/haskell/QuickCheck/1.2.0.0.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "QuickCheck";
-  version = "1.2.0.0"; # Haskell Platform 2009.0.0
+  version = "1.2.0.0";
   sha256 = "21672d817913ac7ab6d3fd7f102dd5d0f115a0826c95b9604c8c0b0171e8d4ed";
+  buildDepends = [ random ];
   meta = {
+    homepage = "http://www.math.chalmers.se/~rjmh/QuickCheck/";
     description = "Automatic testing of Haskell programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/QuickCheck/1.2.0.1.nix b/pkgs/development/libraries/haskell/QuickCheck/1.2.0.1.nix
index 195cd797dfe11..c104a4be27a80 100644
--- a/pkgs/development/libraries/haskell/QuickCheck/1.2.0.1.nix
+++ b/pkgs/development/libraries/haskell/QuickCheck/1.2.0.1.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "QuickCheck";
-  version = "1.2.0.1"; # version of QuickCheck1 compatible with base-4
+  version = "1.2.0.1";
   sha256 = "1gxpvbc0ab4n35b5zcbzng8qc7y3mzgym8cj42bci984f08y1bld";
+  buildDepends = [ random ];
   meta = {
+    homepage = "http://www.math.chalmers.se/~rjmh/QuickCheck/";
     description = "Automatic testing of Haskell programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/QuickCheck/2.1.0.3.nix b/pkgs/development/libraries/haskell/QuickCheck/2.1.0.3.nix
index 182ee9ea42abe..df686f71c5b69 100644
--- a/pkgs/development/libraries/haskell/QuickCheck/2.1.0.3.nix
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.1.0.3.nix
@@ -1,14 +1,18 @@
-{cabal, mtl}:
+{ cabal, extensibleExceptions, mtl, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "QuickCheck";
-  version = "2.1.0.3"; # Haskell Platform 2010.1.0.0
+  version = "2.1.0.3";
   sha256 = "91a861233fe0a37a032d092dd5e8ec40c2c99fbbf0701081394eb244f23757b1";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ extensibleExceptions mtl random ];
   meta = {
+    homepage = "http://www.cs.chalmers.se/~koen";
     description = "Automatic testing of Haskell programs";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/QuickCheck/2.1.1.1.nix b/pkgs/development/libraries/haskell/QuickCheck/2.1.1.1.nix
index 3e8fa4ff9d447..828255a9860c2 100644
--- a/pkgs/development/libraries/haskell/QuickCheck/2.1.1.1.nix
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.1.1.1.nix
@@ -1,14 +1,18 @@
-{cabal, mtl}:
+{ cabal, extensibleExceptions, mtl, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "QuickCheck";
-  version = "2.1.1.1"; # Haskell Platform 2010.2.0.0
+  version = "2.1.1.1";
   sha256 = "626a6f7a69e2bea3b4fe7c573d0bc8da8c77f97035cb2d3a5e1c9fca382b59c9";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ extensibleExceptions mtl random ];
   meta = {
+    homepage = "http://www.cse.chalmers.se/~koen";
     description = "Automatic testing of Haskell programs";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/QuickCheck/2.4.0.1.nix b/pkgs/development/libraries/haskell/QuickCheck/2.4.0.1.nix
index 6a2a5470cd725..ac9ac3d2a7de1 100644
--- a/pkgs/development/libraries/haskell/QuickCheck/2.4.0.1.nix
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.4.0.1.nix
@@ -1,14 +1,18 @@
-{cabal, mtl}:
+{ cabal, extensibleExceptions, mtl, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "QuickCheck";
-  version = "2.4.0.1"; # Haskell Platform 2011.2.0.0
+  version = "2.4.0.1";
   sha256 = "1x7jc2svpxbll8qkrbswh5q59sqcjf2v5a6jnqslf5gwr5qpq18r";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ extensibleExceptions mtl random ];
   meta = {
+    homepage = "http://code.haskell.org/QuickCheck";
     description = "Automatic testing of Haskell programs";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/QuickCheck/2.4.1.1.nix b/pkgs/development/libraries/haskell/QuickCheck/2.4.1.1.nix
new file mode 100644
index 0000000000000..8eb413d2b31c1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/QuickCheck/2.4.1.1.nix
@@ -0,0 +1,18 @@
+{ cabal, extensibleExceptions, random }:
+
+cabal.mkDerivation (self: {
+  pname = "QuickCheck";
+  version = "2.4.1.1";
+  sha256 = "06vrn0j26ai2jfl32yd3kx8by4pimcinjf23b0dyc35z2gb139wj";
+  buildDepends = [ extensibleExceptions random ];
+  meta = {
+    homepage = "http://code.haskell.org/QuickCheck";
+    description = "Automatic testing of Haskell programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/RSA/default.nix b/pkgs/development/libraries/haskell/RSA/default.nix
new file mode 100644
index 0000000000000..7476896337c29
--- /dev/null
+++ b/pkgs/development/libraries/haskell/RSA/default.nix
@@ -0,0 +1,19 @@
+{ cabal, binary, pureMD5, random, SHA }:
+
+cabal.mkDerivation (self: {
+  pname = "RSA";
+  version = "1.0.6.1";
+  sha256 = "1d0birzvapcsgay0wwh5v9mcd77sghj1bps9ws04ww9ga97gyp0l";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ binary pureMD5 random SHA ];
+  meta = {
+    description = "Implementation of RSA, using the padding schemes of PKCS#1 v2.1.";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Ranged-sets/default.nix b/pkgs/development/libraries/haskell/Ranged-sets/default.nix
index 3f650b22c0952..6a6211b6263af 100644
--- a/pkgs/development/libraries/haskell/Ranged-sets/default.nix
+++ b/pkgs/development/libraries/haskell/Ranged-sets/default.nix
@@ -1,14 +1,18 @@
-{cabal, HUnit, QuickCheck}:
+{ cabal, HUnit, QuickCheck }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Ranged-sets";
-  version = "0.2.1";
-  sha256 = "dee83d2ea0ae56ff31eb7c74a0785328ca8621792c0859e223b12c17bb775f12";
-  propagatedBuildInputs = [HUnit QuickCheck];
+  version = "0.3.0";
+  sha256 = "1am0lsd3yiyn7ayk9k4ff7zdj67m0pxjl10cxi5f9hgjj4y9380l";
+  buildDepends = [ HUnit QuickCheck ];
   meta = {
+    homepage = "http://code.haskell.org/ranged-sets";
     description = "Ranged sets for Haskell";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/SDL-image/default.nix b/pkgs/development/libraries/haskell/SDL-image/default.nix
index e187b88492c90..e6695f0135801 100644
--- a/pkgs/development/libraries/haskell/SDL-image/default.nix
+++ b/pkgs/development/libraries/haskell/SDL-image/default.nix
@@ -1,12 +1,18 @@
-{cabal, SDL, SDL_image}:
+{ cabal, SDL, SDL_image }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "SDL-image";
-  version = "0.5.2";
-  sha256 = "82765f5ed11ef2ad3eb47f59105fe5aecd8de2515d698ef9ea989dc4cec18016";
-  propagatedBuildInputs = [SDL SDL_image];
+  version = "0.6.1";
+  sha256 = "18n6al40db7xalqqr4hp0l26qxxv1kmd8mva0n7vmhg05zypf6ni";
+  buildDepends = [ SDL ];
+  extraLibraries = [ SDL_image ];
   meta = {
     description = "Binding to libSDL_image";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/SDL-mixer/default.nix b/pkgs/development/libraries/haskell/SDL-mixer/default.nix
index d1974a601566f..674282e30a869 100644
--- a/pkgs/development/libraries/haskell/SDL-mixer/default.nix
+++ b/pkgs/development/libraries/haskell/SDL-mixer/default.nix
@@ -1,12 +1,18 @@
-{cabal, SDL, SDL_mixer}:
+{ cabal, SDL, SDL_mixer }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "SDL-mixer";
-  version = "0.5.5";
-  sha256 = "0e1b07a0cbe22eafff7b36f53e4ea840abad50131a867cb70d47beaf902fd185";
-  propagatedBuildInputs = [SDL SDL_mixer];
+  version = "0.6.1";
+  sha256 = "1fxp5sz0w6pr5047jjvh81wkljxsl7fca239364i50m44mpcsyn1";
+  buildDepends = [ SDL ];
+  extraLibraries = [ SDL_mixer ];
   meta = {
     description = "Binding to libSDL_mixer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/SDL-ttf/default.nix b/pkgs/development/libraries/haskell/SDL-ttf/default.nix
index 1d15976df1b46..f48e0dbab510f 100644
--- a/pkgs/development/libraries/haskell/SDL-ttf/default.nix
+++ b/pkgs/development/libraries/haskell/SDL-ttf/default.nix
@@ -1,12 +1,18 @@
-{cabal, SDL, SDL_ttf}:
+{ cabal, SDL, SDL_ttf }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "SDL-ttf";
-  version = "0.5.5";
-  sha256 = "577109d01fca61c103520e7bf33e45af118bcb6d15fcd6da7a8b72c43c69cbb6";
-  propagatedBuildInputs = [SDL SDL_ttf];
+  version = "0.6.1";
+  sha256 = "0n6vbigkjfvvk98bp7ys14snpd1zmbz69ndhhpnrn02h363vwkal";
+  buildDepends = [ SDL ];
+  extraLibraries = [ SDL_ttf ];
   meta = {
     description = "Binding to libSDL_ttf";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/SDL/default.nix b/pkgs/development/libraries/haskell/SDL/default.nix
index ce4c3cec66f53..8adf60f938cdc 100644
--- a/pkgs/development/libraries/haskell/SDL/default.nix
+++ b/pkgs/development/libraries/haskell/SDL/default.nix
@@ -1,12 +1,17 @@
-{cabal, SDL}:
+{ cabal, SDL }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "SDL";
-  version = "0.5.5";
-  sha256 = "cc56c723e03befd99be0a293347690ba7d2cb7fdafcbbc287f067a8cf70af172";
-  propagatedBuildInputs = [SDL];
+  version = "0.6.2";
+  sha256 = "1fqj3sw709q28rmjzcffa3k1mcp7r9cvdrrqmcppaz5yv63ychly";
+  extraLibraries = [ SDL ];
   meta = {
     description = "Binding to libSDL";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/SHA/default.nix b/pkgs/development/libraries/haskell/SHA/default.nix
index 5389cfcb49852..659b06f72b798 100644
--- a/pkgs/development/libraries/haskell/SHA/default.nix
+++ b/pkgs/development/libraries/haskell/SHA/default.nix
@@ -1,12 +1,19 @@
-{cabal, binary}:
+{ cabal, binary }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "SHA";
-  version = "1.4.1.3";
-  sha256 = "1sx68mvzb2y3dq9hk769fzp8vw4jf4hk5v45i0a9a8b31imlicf0";
-  propagatedBuildInputs = [binary];
+  version = "1.5.0.0";
+  sha256 = "12sz1dblmpiy8bg45fwndp1g9gf7494vqqbvbd1hwr5qzyfwyqck";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ binary ];
   meta = {
     description = "Implementations of the SHA suite of message digest functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/SMTPClient/default.nix b/pkgs/development/libraries/haskell/SMTPClient/default.nix
index bac471ee90fc3..755c17eee8e9f 100644
--- a/pkgs/development/libraries/haskell/SMTPClient/default.nix
+++ b/pkgs/development/libraries/haskell/SMTPClient/default.nix
@@ -1,14 +1,17 @@
-{cabal, hsemail, network}:
+{ cabal, extensibleExceptions, hsemail, network }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "SMTPClient";
-  version = "1.0.3";
-  sha256 = "c9907834565b5b712d50c50823513675b982c8b51e7b95680a3495eccb73ce66";
-  propagatedBuildInputs = [hsemail network];
+  version = "1.0.4";
+  sha256 = "12m0qv8bf0s52yz07sipxlvas8k3xvi1d4lw6960q0nxr40ijyy2";
+  buildDepends = [ extensibleExceptions hsemail network ];
   meta = {
     description = "A simple SMTP client library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix b/pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix
index b3a3563f6a129..c31f0e5d2898a 100644
--- a/pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix
+++ b/pkgs/development/libraries/haskell/Shellac/Shellac-haskeline.nix
@@ -1,12 +1,17 @@
-{cabal, Shellac, haskeline}:
+{ cabal, haskeline, mtl, Shellac }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Shellac-haskeline";
-  version = "0.2";
-  sha256 = "e3024b1915efd9841be9f405503f26c52524e7ea2a9c630ad651a9986e5329e0";
-  propagatedBuildInputs = [Shellac haskeline];
+  version = "0.2.0.1";
+  sha256 = "1xvs2ni83yyf7rx3ikmn2bkx20fyj03d03crqyyfw28mikhgv5br";
+  buildDepends = [ haskeline mtl Shellac ];
   meta = {
     description = "Haskeline backend module for Shellac";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix b/pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix
index c728146c953f8..20fee419fe955 100644
--- a/pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix
+++ b/pkgs/development/libraries/haskell/Shellac/Shellac-readline.nix
@@ -1,12 +1,17 @@
-{cabal, Shellac, readline}:
+{ cabal, readline, Shellac }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Shellac-readline";
   version = "0.9";
   sha256 = "3edffecf2225c199f0a4df55e3685f7deee47755ae7f8d03f5da7fac3c2ab878";
-  propagatedBuildInputs = [Shellac readline];
+  buildDepends = [ readline Shellac ];
   meta = {
     description = "Readline backend module for Shellac";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/Shellac/Shellac.nix b/pkgs/development/libraries/haskell/Shellac/Shellac.nix
index a7034f27922fb..8f36e8ebc0885 100644
--- a/pkgs/development/libraries/haskell/Shellac/Shellac.nix
+++ b/pkgs/development/libraries/haskell/Shellac/Shellac.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Shellac";
-  version = "0.9.5";
-  sha256 = "a8b07918be23b7e7c3114aed7d929f95ace37fbacd82f185358f05f337f09c70";
-  propagatedBuildInputs = [mtl];
+  version = "0.9.5.1";
+  sha256 = "19fpbh5ijy9xc3rhl9qwyan8jfnz9nsqvnsjxb7kkb7l2bpz4qfp";
+  buildDepends = [ mtl ];
   meta = {
-    description = "A framework for creating shell environments";
+    homepage = "http://www.cs.princeton.edu/~rdockins/shellac/home/";
+    description = "A framework for creating shell envinronments";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/StateVar/default.nix b/pkgs/development/libraries/haskell/StateVar/default.nix
new file mode 100755
index 0000000000000..95148607b6fe4
--- /dev/null
+++ b/pkgs/development/libraries/haskell/StateVar/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "StateVar";
+  version = "1.0.0.0";
+  sha256 = "1c1b6a6nn1cdnba08zzp0645wl482h7yaa69zw2l3wwyyyccjic4";
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "State variables";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Tensor/default.nix b/pkgs/development/libraries/haskell/Tensor/default.nix
new file mode 100755
index 0000000000000..3856409819dfe
--- /dev/null
+++ b/pkgs/development/libraries/haskell/Tensor/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "Tensor";
+  version = "1.0.0.1";
+  sha256 = "10arhk5gkn5jxpb53r80bblpk0afdax1fc2mik40hj5g5g960cp9";
+  meta = {
+    homepage = "http://www.haskell.org/HOpenGL/";
+    description = "Tensor data types";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/Vec/default.nix b/pkgs/development/libraries/haskell/Vec/default.nix
index 4df2ccdb645da..94c157765d342 100644
--- a/pkgs/development/libraries/haskell/Vec/default.nix
+++ b/pkgs/development/libraries/haskell/Vec/default.nix
@@ -1,14 +1,18 @@
-{cabal, QuickCheck}:
+{ cabal, QuickCheck }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "Vec";
-  version = "0.9.7";
-  sha256 = "a67197f4dc022d6119a790e029a9475a17bb04ad812006bb154e5da9cd8f7ac7";
-  propagatedBuildInputs = [QuickCheck];
+  version = "0.9.8";
+  sha256 = "0yaqy0p2jh2ajf8897vsxl5w6bmavixn6n5cc7w8kdnybpbdms6v";
+  buildDepends = [ QuickCheck ];
   meta = {
+    homepage = "http://graphics.cs.ucdavis.edu/~sdillard/Vec";
     description = "Fixed-length lists and low-dimensional linear algebra";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/WebBits-Html/default.nix b/pkgs/development/libraries/haskell/WebBits-Html/default.nix
index decc9b7d89c17..18371c57f082e 100644
--- a/pkgs/development/libraries/haskell/WebBits-Html/default.nix
+++ b/pkgs/development/libraries/haskell/WebBits-Html/default.nix
@@ -1,13 +1,18 @@
-{cabal, WebBits}:
+{ cabal, mtl, parsec, syb, WebBits }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "WebBits-Html";
   version = "1.0.1";
   sha256 = "134rmm5ccfsjdr0pdwn2mf81l81rgxapa3wjjfjkxrkxq6hav35n";
-
-  propagatedBuildInputs = [ WebBits ];
-
+  buildDepends = [ mtl parsec syb WebBits ];
   meta = {
-    description = "WebBits is a collection of libraries for working with JavaScript embeded in HTML files.";
+    homepage = "http://www.cs.brown.edu/research/plt/";
+    description = "JavaScript analysis tools";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/WebBits/1.0.nix b/pkgs/development/libraries/haskell/WebBits/1.0.nix
index 530252017fbc6..89161608843ea 100644
--- a/pkgs/development/libraries/haskell/WebBits/1.0.nix
+++ b/pkgs/development/libraries/haskell/WebBits/1.0.nix
@@ -1,13 +1,18 @@
-{cabal, mtl, parsec, syb}:
+{ cabal, mtl, parsec, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "WebBits";
   version = "1.0";
   sha256 = "1xqk4ajywlaq9nb9a02i7c25na5p2qbpc2k9zw93gbapppjiapsc";
-
-  propagatedBuildInputs = [ mtl parsec syb ];
-
+  buildDepends = [ mtl parsec syb ];
   meta = {
-    description = "WebBits is a collection of libraries for working with JavaScript.";
+    homepage = "http://www.cs.brown.edu/research/plt/";
+    description = "JavaScript analysis tools";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/WebBits/default.nix b/pkgs/development/libraries/haskell/WebBits/default.nix
index 34592febd8b19..88502db4dfff7 100644
--- a/pkgs/development/libraries/haskell/WebBits/default.nix
+++ b/pkgs/development/libraries/haskell/WebBits/default.nix
@@ -1,13 +1,18 @@
-{cabal, mtl, parsec, syb}:
+{ cabal, mtl, parsec, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "WebBits";
   version = "2.0";
   sha256 = "14a1rqlq925f6rdbi8yx44xszj5pvskcmw1gi1bj8hbilgmlwi7f";
-
-  propagatedBuildInputs = [ mtl parsec syb ];
-
+  buildDepends = [ mtl parsec syb ];
   meta = {
-    description = "WebBits is a collection of libraries for working with JavaScript.";
+    homepage = "http://www.cs.brown.edu/research/plt/";
+    description = "JavaScript analysis tools";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/WebServer-Extras/default.nix b/pkgs/development/libraries/haskell/WebServer-Extras/default.nix
deleted file mode 100644
index 1b427f72b7883..0000000000000
--- a/pkgs/development/libraries/haskell/WebServer-Extras/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{cabal, fetchgit, Crypto, WebServer, base64string, hslogger, json, mtl
-}:
-
-cabal.mkDerivation (self : {
-  pname = "WebServer-Extras";
-  version = "1.2";
-
-  src = fetchgit {
-    url = git://github.com/arjunguha/haskell-web.git;
-    rev = "76c9aabd31d03f052a80a0f6999dc7c5f1b11c41" ;
-    sha256 = "afd550a4c6aeffe2f3adb38556b8e9ae198e98db17338ea6c8fa92d56c7eddb7";
-  };
-  sourceRoot = "git-export/Extras";
-  propagatedBuildInputs = [Crypto WebServer base64string hslogger json mtl];
-  meta = {
-    description = "";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/WebServer/default.nix b/pkgs/development/libraries/haskell/WebServer/default.nix
deleted file mode 100644
index c8a1a2cd6cc29..0000000000000
--- a/pkgs/development/libraries/haskell/WebServer/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{cabal, fetchgit, network, mtl, parsec}:
-
-cabal.mkDerivation (self : {
-  pname = "WebServer";
-  version = "1.2";
-
-  src = fetchgit {
-    url = git://github.com/arjunguha/haskell-web.git;
-    rev = "76c9aabd31d03f052a80a0f6999dc7c5f1b11c41" ;
-    sha256 = "afd550a4c6aeffe2f3adb38556b8e9ae198e98db17338ea6c8fa92d56c7eddb7";
-  };
-
-  propagatedBuildInputs = [network mtl parsec];
-  meta = {
-    description = "";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/X11-xft/default.nix b/pkgs/development/libraries/haskell/X11-xft/default.nix
index 3a8a7face7c1f..14af645928cab 100644
--- a/pkgs/development/libraries/haskell/X11-xft/default.nix
+++ b/pkgs/development/libraries/haskell/X11-xft/default.nix
@@ -1,15 +1,21 @@
-{ ghc, cabal, X11, utf8String, pkgconfig, libXft, freetype, fontconfig }:
-cabal.mkDerivation (self : {
+{ cabal, fontconfig, freetype, libXft, pkgconfig, utf8String, X11
+}:
+
+cabal.mkDerivation (self: {
   pname = "X11-xft";
   version = "0.3";
   sha256 = "48892d0d0a90d5b47658877facabf277bf8466b7388eaf6ce163b843432a567d";
-  buildInputs = [ ghc pkgconfig libXft freetype fontconfig ];
-  propagatedBuildInputs = [ X11 utf8String ];
-  configureFlags=["--extra-include-dirs=${freetype}/include/freetype2"];
+  buildDepends = [ utf8String X11 ];
+  extraLibraries = [ fontconfig freetype pkgconfig ];
+  pkgconfigDepends = [ libXft ];
+  configureFlags = "--extra-include-dirs=${freetype}/include/freetype2";
   meta = {
-    homepage = http://hackage.haskell.org/package/X11-xft;
-    description = "Haskell bindings to the Xft and some Xrender parts";
-    maintainers = with self.stdenv.lib.maintainers; [ astsmtl ];
-    platforms = with self.stdenv.lib.platforms; linux;
+    description = "Bindings to the Xft, X Free Type interface library, and some Xrender parts";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/X11/default.nix b/pkgs/development/libraries/haskell/X11/default.nix
index 70956b0687059..f8eef4dcb366f 100644
--- a/pkgs/development/libraries/haskell/X11/default.nix
+++ b/pkgs/development/libraries/haskell/X11/default.nix
@@ -8,6 +8,13 @@ cabal.mkDerivation (self : {
   sha256 = "653ff8aa4053574a36dbb1729459df6e5a1a87a223bc3eeced8e40c6e3a5406f";
   propagatedBuildInputs = [libX11 syb] ++ (if xineramaSupport then [libXinerama libXext] else []);
   meta = {
-    description = "A Haskell binding to the X11 graphics library";
+    homepage = "http://code.haskell.org/X11";
+    description = "A binding to the X11 graphics library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/aeson-native/default.nix b/pkgs/development/libraries/haskell/aeson-native/default.nix
new file mode 100644
index 0000000000000..3ec90bab76d36
--- /dev/null
+++ b/pkgs/development/libraries/haskell/aeson-native/default.nix
@@ -0,0 +1,23 @@
+{ cabal, attoparsec, blazeBuilder, blazeTextualNative, deepseq
+, hashable, mtl, syb, text, time, unorderedContainers, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "aeson-native";
+  version = "0.3.3";
+  sha256 = "1ckf0fqx0mdw7467kjk3q48fb4q5w6336i8fxk6j0wfk17xjfs8l";
+  buildDepends = [
+    attoparsec blazeBuilder blazeTextualNative deepseq hashable mtl syb
+    text time unorderedContainers vector
+  ];
+  meta = {
+    homepage = "http://github.com/mailrank/aeson";
+    description = "Fast JSON parsing and encoding";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/aeson/default.nix b/pkgs/development/libraries/haskell/aeson/default.nix
index 511a06700b1b8..db31abd7bb50a 100644
--- a/pkgs/development/libraries/haskell/aeson/default.nix
+++ b/pkgs/development/libraries/haskell/aeson/default.nix
@@ -1,18 +1,23 @@
-{cabal, attoparsec, blazeBuilder, blazeTextual, deepseq, hashable, mtl,
- syb, text, unorderedContainers, vector}:
+{ cabal, attoparsec, blazeBuilder, blazeTextual, deepseq, hashable
+, mtl, syb, text, time, unorderedContainers, vector
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "aeson";
-  version = "0.3.2.9";
-  sha256 = "1qaajk797zpickw4ik5lc03wnmxkrcmv3zik7n1bjqx6h37h0zqw";
-  propagatedBuildInputs = [
-    attoparsec blazeBuilder blazeTextual deepseq hashable mtl
-    syb text unorderedContainers vector
+  version = "0.3.2.11";
+  sha256 = "0cvavxb3bm5kz491wrx5az5scvddndw2rh45snhj1xn0flr1c2n7";
+  buildDepends = [
+    attoparsec blazeBuilder blazeTextual deepseq hashable mtl syb text
+    time unorderedContainers vector
   ];
   meta = {
+    homepage = "http://github.com/mailrank/aeson";
     description = "Fast JSON parsing and encoding";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/ansi-terminal/default.nix b/pkgs/development/libraries/haskell/ansi-terminal/default.nix
index 25e0fb8879278..484736c70982c 100644
--- a/pkgs/development/libraries/haskell/ansi-terminal/default.nix
+++ b/pkgs/development/libraries/haskell/ansi-terminal/default.nix
@@ -1,11 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ansi-terminal";
-  version = "0.5.0";
-  sha256 = "ee921584bb0d6c37f48b7069709297506651fe8e2c5a22810c38072b54c2fee9";
+  version = "0.5.5";
+  sha256 = "09r4nlpmkis6cp30jkymfas13hz6ph4zqxhvigrxn6s76v7nb5a8";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://batterseapower.github.com/ansi-terminal";
     description = "Simple ANSI terminal support, with Windows compatibility";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix b/pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix
index 588ffe4f5c1d9..468b35136a33b 100644..100755
--- a/pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix
+++ b/pkgs/development/libraries/haskell/ansi-wl-pprint/default.nix
@@ -1,12 +1,20 @@
-{cabal, ansiTerminal}:
+{ cabal, ansiTerminal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ansi-wl-pprint";
   version = "0.6.3";
   sha256 = "1cpkfn1ld0sjysksdsxxwwy1b17s4smmzk8y88y9mb81vgwlalkl";
-  propagatedBuildInputs = [ansiTerminal];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ ansiTerminal ];
   meta = {
+    homepage = "http://github.com/batterseapower/ansi-wl-pprint";
     description = "The Wadler/Leijen Pretty Printer for colored ANSI terminal output";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/asn1-data/default.nix b/pkgs/development/libraries/haskell/asn1-data/default.nix
new file mode 100644
index 0000000000000..01229fe3f0705
--- /dev/null
+++ b/pkgs/development/libraries/haskell/asn1-data/default.nix
@@ -0,0 +1,22 @@
+{ cabal, attoparsec, attoparsecEnumerator, enumerator, mtl, text }:
+
+cabal.mkDerivation (self: {
+  pname = "asn1-data";
+  version = "0.5.1";
+  sha256 = "10ci77pf0y8g7i1fwksv5na32jsy3brfdv6nzrnwih1brq6l5fn4";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    attoparsec attoparsecEnumerator enumerator mtl text
+  ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-asn1-data";
+    description = "ASN1 data reader and writer in RAW, BER, DER and CER forms";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/async/default.nix b/pkgs/development/libraries/haskell/async/default.nix
new file mode 100755
index 0000000000000..20cca829736ef
--- /dev/null
+++ b/pkgs/development/libraries/haskell/async/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "async";
+  version = "1.4";
+  sha256 = "1d24bcvmw687jcf75wgavlhfs55f0va02xhl4xdnj2lrlr19s5dl";
+  meta = {
+    homepage = "http://gitorious.org/async/";
+    description = "Asynchronous Computations";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/attempt/default.nix b/pkgs/development/libraries/haskell/attempt/default.nix
new file mode 100644
index 0000000000000..52a16a8ac1cc6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attempt/default.nix
@@ -0,0 +1,18 @@
+{ cabal, failure }:
+
+cabal.mkDerivation (self: {
+  pname = "attempt";
+  version = "0.3.1.1";
+  sha256 = "0yfn8mh7gy6nh689ic6sygf9d7lk44kpj2wahnljl53k6vw7smv5";
+  buildDepends = [ failure ];
+  meta = {
+    homepage = "http://github.com/snoyberg/attempt/tree/master";
+    description = "Concrete data type for handling extensible exceptions as failures";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/attoparsec-text-enumerator/default.nix b/pkgs/development/libraries/haskell/attoparsec-text-enumerator/default.nix
new file mode 100644
index 0000000000000..bcc9e8b1a6f19
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec-text-enumerator/default.nix
@@ -0,0 +1,17 @@
+{ cabal, attoparsecText, enumerator, text }:
+
+cabal.mkDerivation (self: {
+  pname = "attoparsec-text-enumerator";
+  version = "0.2.0.0";
+  sha256 = "149ipf5qh7wzjrnv98h6j94djr0ndzg8s4rs8h7kzbii21ynmzz5";
+  buildDepends = [ attoparsecText enumerator text ];
+  meta = {
+    description = "Convert an attoparsec-text parser into an iteratee";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/attoparsec-text/default.nix b/pkgs/development/libraries/haskell/attoparsec-text/default.nix
new file mode 100644
index 0000000000000..5ff16e30c18b6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/attoparsec-text/default.nix
@@ -0,0 +1,18 @@
+{ cabal, attoparsec, text }:
+
+cabal.mkDerivation (self: {
+  pname = "attoparsec-text";
+  version = "0.8.5.1";
+  sha256 = "1in0ziqjf2hvlv6yay2b5xkm35j1szzwdfapn5mpflv64qi33i0z";
+  buildDepends = [ attoparsec text ];
+  meta = {
+    homepage = "http://patch-tag.com/r/felipe/attoparsec-text/home";
+    description = "Fast combinator parsing for texts";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/attoparsec/default.nix b/pkgs/development/libraries/haskell/attoparsec/default.nix
index 536b27833a299..b76545143d6ac 100644
--- a/pkgs/development/libraries/haskell/attoparsec/default.nix
+++ b/pkgs/development/libraries/haskell/attoparsec/default.nix
@@ -1,13 +1,18 @@
-{cabal, deepseq}:
+{ cabal, deepseq }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "attoparsec";
-  version = "0.9.1.1";
-  sha256 = "1qkkl9pzk4znqh34pchmxbcslybvii35lkxhwf6445lyhj20356b";
-  propagatedBuildInputs = [deepseq];
+  version = "0.9.1.2";
+  sha256 = "0h9j4gn376k6j3v9l6pk7a4vxabkwk80043x6xlyxsh8p77jgj3v";
+  buildDepends = [ deepseq ];
   meta = {
+    homepage = "https://bitbucket.org/bos/attoparsec";
     description = "Fast combinator parsing for bytestrings";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/attoparsec/enumerator.nix b/pkgs/development/libraries/haskell/attoparsec/enumerator.nix
index 4152cd4ed2c42..7c990332a37fb 100644
--- a/pkgs/development/libraries/haskell/attoparsec/enumerator.nix
+++ b/pkgs/development/libraries/haskell/attoparsec/enumerator.nix
@@ -1,13 +1,18 @@
-{cabal, attoparsec, enumerator}:
+{ cabal, attoparsec, enumerator }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "attoparsec-enumerator";
   version = "0.2.0.4";
   sha256 = "14v53vppcf4k3m4kid10pg5r3zsn894f36w1y2pzlc72w81fv3gd";
-  propagatedBuildInputs = [attoparsec enumerator];
+  buildDepends = [ attoparsec enumerator ];
   meta = {
-    description = "Converts an Attoparsec parser into an iteratee";
-    license = "BSD3";
+    homepage = "http://john-millikin.com/software/attoparsec-enumerator/";
+    description = "Convert an Attoparsec parser into an iteratee";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/authenticate/default.nix b/pkgs/development/libraries/haskell/authenticate/default.nix
new file mode 100644
index 0000000000000..f6f2709bfba10
--- /dev/null
+++ b/pkgs/development/libraries/haskell/authenticate/default.nix
@@ -0,0 +1,26 @@
+{ cabal, aesonNative, attoparsec, base64Bytestring, blazeBuilder
+, caseInsensitive, enumerator, failure, httpEnumerator, httpTypes
+, network, random, RSA, SHA, tagsoup, text, time, tls, transformers
+, xmlEnumerator
+}:
+
+cabal.mkDerivation (self: {
+  pname = "authenticate";
+  version = "0.10.1";
+  sha256 = "03928v92s5j99r5v2jp9s4z87djj8dldkid8525aky0b0ghlnfhc";
+  buildDepends = [
+    aesonNative attoparsec base64Bytestring blazeBuilder
+    caseInsensitive enumerator failure httpEnumerator httpTypes network
+    random RSA SHA tagsoup text time tls transformers xmlEnumerator
+  ];
+  meta = {
+    homepage = "http://github.com/snoyberg/authenticate/tree/master";
+    description = "Authentication methods for Haskell web applications";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/base-unicode-symbols/default.nix b/pkgs/development/libraries/haskell/base-unicode-symbols/default.nix
index 1c51f82bed685..7fbddd1c43df0 100644
--- a/pkgs/development/libraries/haskell/base-unicode-symbols/default.nix
+++ b/pkgs/development/libraries/haskell/base-unicode-symbols/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "base-unicode-symbols";
-  version = "0.2.1.5";
-  sha256 = "1ir1dckrpax4xlrfp7jdsjn7s403a8n8mcmv3wdnpzkg1klfahyq";
+  version = "0.2.2.1";
+  sha256 = "095x4mlkn7i9byg6kdp2f7z0x7sizmy4lgsi0rsabazyd3d8rr9l";
   meta = {
+    homepage = "http://haskell.org/haskellwiki/Unicode-symbols";
     description = "Unicode alternatives for common functions and operators";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/base64-bytestring/default.nix b/pkgs/development/libraries/haskell/base64-bytestring/default.nix
new file mode 100644
index 0000000000000..f974a72347fd3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/base64-bytestring/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "base64-bytestring";
+  version = "0.1.0.3";
+  sha256 = "0d4j8b1d8z9qr1y446bfkj764xgilk8gw2frj0wn0717y8knvmx3";
+  meta = {
+    homepage = "https://github.com/bos/base64-bytestring";
+    description = "Fast base64 encoding and deconding for ByteStrings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/base64-string/default.nix b/pkgs/development/libraries/haskell/base64-string/default.nix
index 348f4927ae1bf..e77d5b96ea792 100644
--- a/pkgs/development/libraries/haskell/base64-string/default.nix
+++ b/pkgs/development/libraries/haskell/base64-string/default.nix
@@ -1,14 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "base64-string";
-  version = "0.1";
-
-  sha256 = "f9a6f050f5d9993313a1ceb49eba827ecf1046af51266d10b0dc899b53f13d8c";
-
-  propagatedBuildInputs = [];
+  version = "0.2";
+  sha256 = "0pkhrimabacsjalzq0y3a197fqfbspsbv8xszzg4vbb1fb59dj1y";
   meta = {
-    description = "";
+    homepage = "http://urchin.earth.li/~ian/cabal/base64-string/";
+    description = "Base64 implementation for String's";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/benchpress/default.nix b/pkgs/development/libraries/haskell/benchpress/default.nix
index 6ccc033f02e9d..5b69e6d901e07 100644
--- a/pkgs/development/libraries/haskell/benchpress/default.nix
+++ b/pkgs/development/libraries/haskell/benchpress/default.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "benchpress";
-  version = "0.2.2";
-  sha256 = "185j2viimr1vbbgh9havdj2nskim8apih1fyvwln76jfrwypy194";
-  propagatedBuildInputs = [mtl];
+  version = "0.2.2.4";
+  sha256 = "0cabjx0gkbk5blqkm9pmnz8kmi3573367365gny4r3m431iwxgnf";
+  buildDepends = [ mtl time ];
   meta = {
-    description = "Benchmarks actions and produces statistics such as min, mean, and median execution time.";
+    homepage = "http://github.com/tibbe/benchpress";
+    description = "Micro-benchmarking with detailed statistics";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/bimap/default.nix b/pkgs/development/libraries/haskell/bimap/default.nix
index 0e3365a409035..2b132f9cad0bb 100644
--- a/pkgs/development/libraries/haskell/bimap/default.nix
+++ b/pkgs/development/libraries/haskell/bimap/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "bimap";
   version = "0.2.4";
   sha256 = "d991ae393ade2191f42d8a0d659d2b9a749675735eb5b57872f577ede82565c5";
   meta = {
+    homepage = "http://code.haskell.org/bimap";
     description = "Bidirectional mapping between two key types";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/binary-shared/default.nix b/pkgs/development/libraries/haskell/binary-shared/default.nix
index aea6fe1920928..340230b506d03 100644
--- a/pkgs/development/libraries/haskell/binary-shared/default.nix
+++ b/pkgs/development/libraries/haskell/binary-shared/default.nix
@@ -1,13 +1,18 @@
-{cabal, binary, mtl}:
+{ cabal, binary, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "binary-shared";
   version = "0.8.1";
   sha256 = "0niq6hgsawsdg3kkjgkwyrgy8w7pfkqfph5d1x5bzcjrcl982jrg";
-  propagatedBuildInputs = [binary mtl];
+  buildDepends = [ binary mtl ];
   meta = {
-    description = "Binary serialization with support for sharing identical elements";
+    homepage = "http://www.leksah.org";
+    description = "Sharing for the binary package";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/binary/default.nix b/pkgs/development/libraries/haskell/binary/default.nix
index cf501a51d474a..65018a4d5c514 100644
--- a/pkgs/development/libraries/haskell/binary/default.nix
+++ b/pkgs/development/libraries/haskell/binary/default.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "binary";
   version = "0.5.0.2";
   sha256 = "02qkybh11psmggkqcs7f8kh4izfj44gq1wk23xhv3jbxc7gdxhp0";
   meta = {
-    description = "Efficient, pure binary serialisation using lazy ByteStrings";
+    homepage = "http://code.haskell.org/binary/";
+    description = "Binary serialisation for Haskell values using lazy ByteStrings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/bitmap/default.nix b/pkgs/development/libraries/haskell/bitmap/default.nix
index aff1eea1f0c70..d89e225a5e39c 100644
--- a/pkgs/development/libraries/haskell/bitmap/default.nix
+++ b/pkgs/development/libraries/haskell/bitmap/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "bitmap";
   version = "0.0.1";
   sha256 = "281ad4d9234349cfd14f91977b48e2d1861c037f4b6562aa138cddd25c801a7e";
   meta = {
+    homepage = "http://code.haskell.org/~bkomuves/";
     description = "A library for handling and manipulating bitmaps";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/bktrees/default.nix b/pkgs/development/libraries/haskell/bktrees/default.nix
index 19f79321199e1..23493e50c19ce 100644
--- a/pkgs/development/libraries/haskell/bktrees/default.nix
+++ b/pkgs/development/libraries/haskell/bktrees/default.nix
@@ -1,12 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "bktrees";
-  version = "0.3";
-  sha256 = "ddef9fbf5114175cefe2908cd4360a4b94cbc91daac6d5194a8911bacaa1a5da";
+  version = "0.3.1";
+  sha256 = "1d2iz48n0ayn0hi9xa110pxy1mv5a4m21rmbpvs6ki1a7cv4ghn9";
   meta = {
-    description = "Burkhard-Keller trees sets implementation";
-    license = "BSD3";
+    description = "A set data structure with approximate searching";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix b/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
index d636e68da1248..84d667de29af2 100644
--- a/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-builder-enumerator/default.nix
@@ -1,12 +1,18 @@
-{cabal, blazeBuilder, enumerator, transformers}:
+{ cabal, blazeBuilder, enumerator, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "blaze-builder-enumerator";
   version = "0.2.0.2";
   sha256 = "0as4mjh695jpxp9qfhpsxyr1448l0pk94sh5kk8sgxv5hfiy41k9";
-  propagatedBuildInputs = [blazeBuilder enumerator transformers];
+  buildDepends = [ blazeBuilder enumerator transformers ];
   meta = {
+    homepage = "https://github.com/meiersi/blaze-builder-enumerator";
     description = "Enumeratees for the incremental conversion of builders to bytestrings";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/blaze-builder/default.nix b/pkgs/development/libraries/haskell/blaze-builder/default.nix
index 4b8dc9b08e96b..3a20e5d0cb1b2 100644
--- a/pkgs/development/libraries/haskell/blaze-builder/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-builder/default.nix
@@ -1,13 +1,18 @@
-{cabal, text}:
+{ cabal, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "blaze-builder";
   version = "0.3.0.1";
   sha256 = "1p3xlifcr7v987zx8l2sppn9yydph332mn1xxk0yfi78a6386nfb";
-  propagatedBuildInputs = [text];
+  buildDepends = [ text ];
   meta = {
-    description = "Builder to efficiently append text";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://github.com/meiersi/blaze-builder";
+    description = "Efficient buffered output";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/blaze-html/default.nix b/pkgs/development/libraries/haskell/blaze-html/default.nix
index e42a008a9484c..8d1afd8c6fb07 100644
--- a/pkgs/development/libraries/haskell/blaze-html/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-html/default.nix
@@ -1,13 +1,17 @@
-{cabal, text, blazeBuilder}:
+{ cabal, blazeBuilder, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "blaze-html";
-  version = "0.4.1.4";
-  sha256 = "1xf302dapwmmlxj9alfbdv6rcrxhr9p305s4jz2d6ckq2xzz8yjf";
-  propagatedBuildInputs = [text blazeBuilder];
+  version = "0.4.1.6";
+  sha256 = "084phxxdy12vi2q084k8w693m94v0pjf29zx2fk1y0n80k05ii4z";
+  buildDepends = [ blazeBuilder text ];
   meta = {
-    description = "A blazingly fast HTML combinator library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://jaspervdj.be/blaze";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/blaze-textual-native/default.nix b/pkgs/development/libraries/haskell/blaze-textual-native/default.nix
new file mode 100644
index 0000000000000..3f41a1769050e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/blaze-textual-native/default.nix
@@ -0,0 +1,18 @@
+{ cabal, blazeBuilder, text, time, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "blaze-textual-native";
+  version = "0.2.1";
+  sha256 = "12cnl76qld19x6zlhxcsx2b27mfr9v7sc2xq6af9h77wqb98fkvn";
+  buildDepends = [ blazeBuilder text time vector ];
+  meta = {
+    homepage = "http://github.com/mailrank/blaze-textual";
+    description = "Fast rendering of common datatypes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/blaze-textual/default.nix b/pkgs/development/libraries/haskell/blaze-textual/default.nix
index 3217ef0a10840..deb1e3caa7832 100644
--- a/pkgs/development/libraries/haskell/blaze-textual/default.nix
+++ b/pkgs/development/libraries/haskell/blaze-textual/default.nix
@@ -1,14 +1,18 @@
-{cabal, blazeBuilder, text, vector}:
+{ cabal, blazeBuilder, doubleConversion, text, time, vector }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "blaze-textual";
-  version = "0.1.0.0";
-  sha256 = "0ql25b0r4xbshqsjfndl7glq0hp2ncxb3h5zd541vsqrqrf8y4gk";
-  propagatedBuildInputs = [blazeBuilder text vector];
+  version = "0.2.0.4";
+  sha256 = "0bifxyzm35xvlqry06iv6pqgx1d33jnrvpmn4wnydkyg1r7q3k9v";
+  buildDepends = [ blazeBuilder doubleConversion text time vector ];
   meta = {
+    homepage = "http://github.com/mailrank/blaze-textual";
     description = "Fast rendering of common datatypes";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/bmp/default.nix b/pkgs/development/libraries/haskell/bmp/default.nix
index 1a56ef2a497b8..2c08676d9c439 100644
--- a/pkgs/development/libraries/haskell/bmp/default.nix
+++ b/pkgs/development/libraries/haskell/bmp/default.nix
@@ -1,14 +1,18 @@
-{cabal, binary}:
+{ cabal, binary }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "bmp";
-  version = "1.1.1.2";
-  sha256 = "1hxsl9gip5icjbmr5y48nkb10csqwzcswssqfaq6cqwnfhpi7813";
-  propagatedBuildInputs = [binary];
+  version = "1.1.2.1";
+  sha256 = "01w0fbfzdmrfnmnkjkg9paagfkzsjn57rx7lf2npzp95rmljplkb";
+  buildDepends = [ binary ];
   meta = {
+    homepage = "http://code.ouroborus.net/bmp";
     description = "Read and write uncompressed BMP image files";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/bytestring-mmap/default.nix b/pkgs/development/libraries/haskell/bytestring-mmap/default.nix
new file mode 100755
index 0000000000000..cf68d1e7fa50a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/bytestring-mmap/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "bytestring-mmap";
+  version = "0.2.2";
+  sha256 = "1bv9xf4cpph1cbdwv6rbmq8ppi5wjpgd97lwln5l9ky5rvnaxg3v";
+  meta = {
+    homepage = "http://code.haskell.org/~dons/code/bytestring-mmap/";
+    description = "mmap support for strict ByteStrings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/bytestring-nums/default.nix b/pkgs/development/libraries/haskell/bytestring-nums/default.nix
index b957f28130dfb..4a480b0793171 100644
--- a/pkgs/development/libraries/haskell/bytestring-nums/default.nix
+++ b/pkgs/development/libraries/haskell/bytestring-nums/default.nix
@@ -1,12 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "bytestring-nums";
-  version = "0.3.2";
-  sha256 = "16d99xm692x88vx27w4g6iqi4sbi9il8c10r1zaqq2hqviv0k1wg";
+  version = "0.3.3";
+  sha256 = "09gdbyj5qw98j57cs9phzsbmvdm7y6j07wg908i34jklwm24nxfd";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://github.com/solidsnack/bytestring-nums";
     description = "Parse numeric literals from ByteStrings";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/bytestring-trie/default.nix b/pkgs/development/libraries/haskell/bytestring-trie/default.nix
index 8cbc0f30ea3ee..1dc56c420b671 100644
--- a/pkgs/development/libraries/haskell/bytestring-trie/default.nix
+++ b/pkgs/development/libraries/haskell/bytestring-trie/default.nix
@@ -1,14 +1,18 @@
-{cabal, binary}:
+{ cabal, binary }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "bytestring-trie";
   version = "0.2.3";
   sha256 = "1zb4s7fd951swc648szrpx0ldailmdinapgbcg1zajb5c5jq57ga";
-  propagatedBuildInputs = [binary];
+  buildDepends = [ binary ];
   meta = {
+    homepage = "http://code.haskell.org/~wren/";
     description = "An efficient finite map from (byte)strings to values";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/cabal/cabal.nix b/pkgs/development/libraries/haskell/cabal/cabal.nix
index df975a877fde1..3f5bac4d7e4e7 100644
--- a/pkgs/development/libraries/haskell/cabal/cabal.nix
+++ b/pkgs/development/libraries/haskell/cabal/cabal.nix
@@ -1,10 +1,26 @@
 # generic builder for Cabal packages
 
-{stdenv, fetchurl, lib, ghc, enableLibraryProfiling ? false} :
+{stdenv, fetchurl, lib, pkgconfig, ghc, enableLibraryProfiling ? false} :
 {
   mkDerivation =
     args : # arguments for the individual package, can modify the defaults
-    let defaults =
+    let # These attributes are removed in the end. This is in order not to spoil the build
+        # environment overly, but also to keep hash-backwards-compatible with the old cabal.nix.
+        internalAttrs = [
+          "internalAttrs" "buildDepends" "buildTools" "extraLibraries" "pkgconfigDepends"
+          "isLibrary" "isExecutable"
+        ];
+
+        # Stuff happening after the user preferences have been processed. We remove
+        # internal attributes and strip null elements from the dependency lists, all
+        # in the interest of keeping hashes stable.
+        postprocess =
+          x : (removeAttrs x internalAttrs) // {
+                buildInputs           = stdenv.lib.filter (y : ! (y == null)) x.buildInputs;
+                propagatedBuildInputs = stdenv.lib.filter (y : ! (y == null)) x.propagatedBuildInputs;
+              };
+
+        defaults =
           self : { # self is the final version of the attribute set
 
             # pname should be defined by the client to be the package basename
@@ -17,10 +33,13 @@
             # all packages with haskell- to avoid name clashes for libraries;
             # if that is not desired (for applications), name can be set to
             # fname.
-            name = if enableLibraryProfiling then
-                     "haskell-${self.pname}-ghc${ghc.ghc.version}-${self.version}-profiling"
+            name = if self.isLibrary then
+                     if enableLibraryProfiling then
+                       "haskell-${self.pname}-ghc${ghc.ghc.version}-${self.version}-profiling"
+                     else
+                       "haskell-${self.pname}-ghc${ghc.ghc.version}-${self.version}"
                    else
-                     "haskell-${self.pname}-ghc${ghc.ghc.version}-${self.version}";
+                     "${self.pname}-${self.version}";
 
             # the default download location for Cabal packages is Hackage,
             # you still have to specify the checksum
@@ -33,15 +52,32 @@
             # buildInputs can be extended by the client by using extraBuildInputs,
             # but often propagatedBuildInputs is preferable anyway
             buildInputs = [ghc] ++ self.extraBuildInputs;
-            extraBuildInputs = [];
+            extraBuildInputs = self.buildTools ++
+                               (if self.pkgconfigDepends == [] then [] else [pkgconfig]) ++
+                               (if self.isLibrary then [] else self.buildDepends ++ self.extraLibraries ++ self.pkgconfigDepends);
 
             # we make sure that propagatedBuildInputs is defined, so that we don't
             # have to check for its existence
-            propagatedBuildInputs = [];
+            propagatedBuildInputs = if self.isLibrary then self.buildDepends ++ self.extraLibraries ++ self.pkgconfigDepends else [];
 
             # library directories that have to be added to the Cabal files
             extraLibDirs = [];
 
+            # build-depends Cabal field
+            buildDepends = [];
+
+            # build-tools Cabal field
+            buildTools = [];
+
+            # extra-libraries Cabal field
+            extraLibraries = [];
+
+            # pkgconfig-depends Cabal field
+            pkgconfigDepends = [];
+
+            isLibrary = ! self.isExecutable;
+            isExecutable = false;
+
             libraryProfiling =
               if enableLibraryProfiling then ["--enable-library-profiling"]
                                         else ["--disable-library-profiling"];
@@ -115,5 +151,5 @@
             # in Cabal derivations.
             inherit stdenv ghc;
           };
-    in  stdenv.mkDerivation ((rec { f = defaults f // args f; }).f);
+    in  stdenv.mkDerivation (postprocess ((rec { f = defaults f // args f; }).f)) ;
 }
diff --git a/pkgs/development/libraries/haskell/cairo/default.nix b/pkgs/development/libraries/haskell/cairo/default.nix
index 69b2ecad422cb..293f692c67f58 100644
--- a/pkgs/development/libraries/haskell/cairo/default.nix
+++ b/pkgs/development/libraries/haskell/cairo/default.nix
@@ -1,14 +1,21 @@
-{cabal, gtk2hsBuildtools, pkgconfig, glibc, cairo, zlib, mtl}:
+{ cabal, cairo, glibc, gtk2hsBuildtools, mtl, pkgconfig, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cairo";
   version = "0.12.0";
   sha256 = "0n2sqbf8wjjvm5m1igkq685vqvc0lil3gmcs3i0g9hy7lsjnlwr9";
-  extraBuildInputs = [pkgconfig glibc cairo zlib gtk2hsBuildtools];
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ cairo glibc pkgconfig zlib ];
+  pkgconfigDepends = [ cairo ];
   meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
     description = "Binding to the Cairo library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/case-insensitive/0.3.0.1.nix b/pkgs/development/libraries/haskell/case-insensitive/0.3.0.1.nix
new file mode 100644
index 0000000000000..8dff7eda28470
--- /dev/null
+++ b/pkgs/development/libraries/haskell/case-insensitive/0.3.0.1.nix
@@ -0,0 +1,17 @@
+{ cabal, hashable, text }:
+
+cabal.mkDerivation (self: {
+  pname = "case-insensitive";
+  version = "0.3.0.1";
+  sha256 = "0aaj7avg3rd2bvjjcny7wjdif60ikk7q49896g12jnczi5ba97ml";
+  buildDepends = [ hashable text ];
+  meta = {
+    description = "Case insensitive string comparison";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/case-insensitive/0.3.nix b/pkgs/development/libraries/haskell/case-insensitive/0.3.nix
new file mode 100644
index 0000000000000..6a59c9e840b7b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/case-insensitive/0.3.nix
@@ -0,0 +1,17 @@
+{ cabal, hashable, text }:
+
+cabal.mkDerivation (self: {
+  pname = "case-insensitive";
+  version = "0.3";
+  sha256 = "0k3y09ak4k0jwx7bh5awcznw064xgf6yzidq3jalif7m3c9bv5q7";
+  buildDepends = [ hashable text ];
+  meta = {
+    description = "Case insensitive string comparison";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/case-insensitive/default.nix b/pkgs/development/libraries/haskell/case-insensitive/default.nix
deleted file mode 100644
index 2bda4a7eefea6..0000000000000
--- a/pkgs/development/libraries/haskell/case-insensitive/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, text}:
-
-cabal.mkDerivation (self : {
-  pname = "case-insensitive";
-  version = "0.2.0.2";
-  sha256 = "0qn2scaxxbqi4770nwvcmb1ldj0ipa2ljxcavcn0kv48xzs519l7";
-  propagatedBuildInputs = [text];
-  meta = {
-    description = "Case insensitive string comparison";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/cautious-file/default.nix b/pkgs/development/libraries/haskell/cautious-file/default.nix
index 012843adab8f0..f291c3e632f1a 100644
--- a/pkgs/development/libraries/haskell/cautious-file/default.nix
+++ b/pkgs/development/libraries/haskell/cautious-file/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cautious-file";
-  version = "0.1.5";
-  sha256 = "0d7b7bf530476b89ffc22bf6e586402b0fd6fd5571cc941df08838c5a890ad01";
+  version = "1.0";
+  sha256 = "1s2la91vk9c99bj0ipzc4r6w81rcs4jfmn0xr1cgjab00bzj880q";
   meta = {
-    description = "Ways to write a file cautiously";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "Ways to write a file cautiously, to reduce the chances of problems such as data loss due to crashes or power failures";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/cereal/default.nix b/pkgs/development/libraries/haskell/cereal/default.nix
index 82fc2d81c3ec9..c035b1603f1a4 100644
--- a/pkgs/development/libraries/haskell/cereal/default.nix
+++ b/pkgs/development/libraries/haskell/cereal/default.nix
@@ -1,12 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cereal";
   version = "0.3.3.0";
   sha256 = "0bqd5qfvbz77mq0zxgafj011hrxcanrfzvlwhf4j4dzr6yryk53y";
   meta = {
     description = "A binary serialization library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/certificate/default.nix b/pkgs/development/libraries/haskell/certificate/default.nix
new file mode 100644
index 0000000000000..41646034aa0e4
--- /dev/null
+++ b/pkgs/development/libraries/haskell/certificate/default.nix
@@ -0,0 +1,20 @@
+{ cabal, asn1Data, base64Bytestring, mtl, time }:
+
+cabal.mkDerivation (self: {
+  pname = "certificate";
+  version = "0.9.1";
+  sha256 = "0hq9a0vz72kk1n3hdza36rji8vc95y667iwcsmsh5habyh6q8228";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ asn1Data base64Bytestring mtl time ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-certificate";
+    description = "Certificates and Key Reader/Writer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cgi/3001.1.7.1.nix b/pkgs/development/libraries/haskell/cgi/3001.1.7.1.nix
index c9740c6aabd30..9cb92640ee451 100644
--- a/pkgs/development/libraries/haskell/cgi/3001.1.7.1.nix
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.7.1.nix
@@ -1,12 +1,17 @@
-{cabal, mtl, network, parsec, xhtml}:
+{ cabal, mtl, network, parsec, xhtml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cgi";
-  version = "3001.1.7.1"; # Haskell Platform 2009.0.0
+  version = "3001.1.7.1";
   sha256 = "7d1d710871fffbbec2a33d7288b2959ddbcfd794d47f0122127576c02550b339";
-  propagatedBuildInputs = [mtl network parsec xhtml];
+  buildDepends = [ mtl network parsec xhtml ];
   meta = {
     description = "A library for writing CGI programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/cgi/3001.1.7.2.nix b/pkgs/development/libraries/haskell/cgi/3001.1.7.2.nix
index e694d51ba30eb..7e91e25209eeb 100644
--- a/pkgs/development/libraries/haskell/cgi/3001.1.7.2.nix
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.7.2.nix
@@ -1,12 +1,17 @@
-{cabal, mtl, network, parsec, xhtml}:
+{ cabal, mtl, network, parsec, xhtml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cgi";
-  version = "3001.1.7.2"; # Haskell Platform 2010.1.0.0
+  version = "3001.1.7.2";
   sha256 = "ad35971388fa1809a5cd71bb2f051d69d753e4153b43d843b431674cf79a1c39";
-  propagatedBuildInputs = [mtl network parsec xhtml];
+  buildDepends = [ mtl network parsec xhtml ];
   meta = {
     description = "A library for writing CGI programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/cgi/3001.1.7.3.nix b/pkgs/development/libraries/haskell/cgi/3001.1.7.3.nix
index 976fbc572b8ee..0c1f8d709c3b9 100644
--- a/pkgs/development/libraries/haskell/cgi/3001.1.7.3.nix
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.7.3.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, network, parsec, xhtml}:
+{ cabal, extensibleExceptions, mtl, network, parsec, xhtml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cgi";
-  version = "3001.1.7.3"; # Haskell Platform 2010.2.0.0
+  version = "3001.1.7.3";
   sha256 = "f1f4bc6b06e8a191db4ddb43617fee3ef37635e380d6a17c29efb5641ce91df0";
-  propagatedBuildInputs = [mtl network parsec xhtml];
+  buildDepends = [ extensibleExceptions mtl network parsec xhtml ];
   meta = {
+    homepage = "http://andersk.mit.edu/haskell/cgi/";
     description = "A library for writing CGI programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/cgi/3001.1.7.4.nix b/pkgs/development/libraries/haskell/cgi/3001.1.7.4.nix
index d925ad5343c40..3621b1fac1b83 100644
--- a/pkgs/development/libraries/haskell/cgi/3001.1.7.4.nix
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.7.4.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, network, parsec, xhtml}:
+{ cabal, extensibleExceptions, mtl, network, parsec, xhtml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cgi";
-  version = "3001.1.7.4"; # Haskell Platform 2011.2.0.0
+  version = "3001.1.7.4";
   sha256 = "1fiild4djzhyz683kwwb0k4wvhd89ihbn6vncjl270xvwj5xmrbd";
-  propagatedBuildInputs = [mtl network parsec xhtml];
+  buildDepends = [ extensibleExceptions mtl network parsec xhtml ];
   meta = {
+    homepage = "http://andersk.mit.edu/haskell/cgi/";
     description = "A library for writing CGI programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix b/pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix
new file mode 100644
index 0000000000000..686555330f3a8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cgi/3001.1.8.2.nix
@@ -0,0 +1,22 @@
+{ cabal, extensibleExceptions, MonadCatchIOMtl, mtl, network
+, parsec, xhtml
+}:
+
+cabal.mkDerivation (self: {
+  pname = "cgi";
+  version = "3001.1.8.2";
+  sha256 = "09ly7bn5ck563jq1wip5w628g74xj4p1ha9rllfdck33pqrl2mgz";
+  buildDepends = [
+    extensibleExceptions MonadCatchIOMtl mtl network parsec xhtml
+  ];
+  meta = {
+    homepage = "http://andersk.mit.edu/haskell/cgi/";
+    description = "A library for writing CGI programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/citeproc-hs/default.nix b/pkgs/development/libraries/haskell/citeproc-hs/default.nix
index e1ce1124b07fe..b09409d28df1c 100644
--- a/pkgs/development/libraries/haskell/citeproc-hs/default.nix
+++ b/pkgs/development/libraries/haskell/citeproc-hs/default.nix
@@ -1,13 +1,23 @@
-{cabal, json, mtl, pandocTypes, parsec, syb, utf8String, xml}:
+{ cabal, hsBibutils, HTTP, json, mtl, network, pandocTypes, parsec
+, syb, time, utf8String, xml
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "citeproc-hs";
-  version = "0.3.2";
-  sha256 = "04lq0w1yjasn4i9siqpw41ia9f67xlv7vqwhs2a87hr1jnr09pgf";
-  propagatedBuildInputs =
-    [json mtl pandocTypes parsec syb utf8String xml];
+  version = "0.3.3";
+  sha256 = "0yhzqxrr7jn1h0r2vy1jmlrf0z64qcr2fl37i04rpiwzb3nc16r4";
+  buildDepends = [
+    hsBibutils HTTP json mtl network pandocTypes parsec syb time
+    utf8String xml
+  ];
   meta = {
+    homepage = "http://gorgias.mine.nu/repos/citeproc-hs/";
     description = "A Citation Style Language implementation in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/clientsession/default.nix b/pkgs/development/libraries/haskell/clientsession/default.nix
index 9d91ac477e7ac..166e261836f5a 100644
--- a/pkgs/development/libraries/haskell/clientsession/default.nix
+++ b/pkgs/development/libraries/haskell/clientsession/default.nix
@@ -1,13 +1,22 @@
-{cabal}:
+{ cabal, base64Bytestring, cereal, cryptoApi, cryptocipher
+, cryptohash
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "clientsession";
-  version = "0.6.0";
-  sha256 = "0h92jjkhldn7f9b78cajfda8rprsj5scdsyl3pjpzicpvvy9g00y";
+  version = "0.7.2";
+  sha256 = "0jfpgzfgcmc80qrzxj6dsg6cbd97pscg5yp99c9f58m4igr3fb2q";
+  buildDepends = [
+    base64Bytestring cereal cryptoApi cryptocipher cryptohash
+  ];
   meta = {
+    homepage = "http://github.com/snoyberg/clientsession/tree/master";
     description = "Store session data in a cookie";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/cmdargs/default.nix b/pkgs/development/libraries/haskell/cmdargs/default.nix
index b7d3e81160a8f..4e8b236464a65 100644
--- a/pkgs/development/libraries/haskell/cmdargs/default.nix
+++ b/pkgs/development/libraries/haskell/cmdargs/default.nix
@@ -1,14 +1,20 @@
-{cabal, filepath, mtl}:
+{ cabal, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cmdargs";
-  version = "0.1";
-  sha256 = "1ec8a0b49dedc0b159c4e8f6b02ae57ba918b27d8648294998a13e04cf257ebf";
-  propagatedBuildInputs = [filepath mtl];
+  version = "0.8";
+  sha256 = "0yhjg6rck1aj8gq07i9dcfxyjffxlr4lxnir2brkyahpfx5iyw9k";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ transformers ];
   meta = {
+    homepage = "http://community.haskell.org/~ndm/cmdargs/";
     description = "Command line argument processing";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/cmdlib/default.nix b/pkgs/development/libraries/haskell/cmdlib/default.nix
new file mode 100644
index 0000000000000..93df5ef217c2f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cmdlib/default.nix
@@ -0,0 +1,19 @@
+{ cabal, mtl, split, syb }:
+
+cabal.mkDerivation (self: {
+  pname = "cmdlib";
+  version = "0.3.3";
+  sha256 = "0gryz70d69r9pscwxmn5yr02r0zvvgj1vwc3g9klgbkipbsa7xvk";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl split syb ];
+  meta = {
+    description = "a library for command line parsing & online help";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/colorize-haskell/default.nix b/pkgs/development/libraries/haskell/colorize-haskell/default.nix
index 1a74796981f32..702ddd0b9ec68 100644
--- a/pkgs/development/libraries/haskell/colorize-haskell/default.nix
+++ b/pkgs/development/libraries/haskell/colorize-haskell/default.nix
@@ -1,12 +1,20 @@
-{cabal, ansiTerminal, haskellLexer}:
+{ cabal, ansiTerminal, haskellLexer }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "colorize-haskell";
-  version = "1.0.0";
-  sha256 = "14c180ea3e8beb12dd289c51453bd2e3583f306799db4630c8f86cf09bbb3763";
-  propagatedBuildInputs = [ansiTerminal haskellLexer];
+  version = "1.0.1";
+  sha256 = "1v4spa6vw9igjpd1dr595z5raz5fr8f485q5w9imrv8spms46xh3";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ ansiTerminal haskellLexer ];
   meta = {
-    description = "Highlight Haskell source";
+    homepage = "http://github.com/yav/colorize-haskell";
+    description = "Highligt Haskell source";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/colour/default.nix b/pkgs/development/libraries/haskell/colour/default.nix
index 99b9363259580..51c93043e8b0e 100644
--- a/pkgs/development/libraries/haskell/colour/default.nix
+++ b/pkgs/development/libraries/haskell/colour/default.nix
@@ -1,12 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "colour";
   version = "2.3.1";
   sha256 = "58cf12b8abf7d01a752b1b778b64cc406903874702e3475d65c2aa35689fa49b";
   meta = {
-    description = "Data type, conversion and composition of colours";
-    license = "OtherLicense";
+    homepage = "http://www.haskell.org/haskellwiki/Colour";
+    description = "A model for human colour/color perception";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/continued-fractions/default.nix b/pkgs/development/libraries/haskell/continued-fractions/default.nix
new file mode 100755
index 0000000000000..71801a324c36c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/continued-fractions/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "continued-fractions";
+  version = "0.9.1.0";
+  sha256 = "07g6ms68xfzd25zr2k2fpg4f4pynmq4mn7djkzrg3gbfh9gfq37q";
+  meta = {
+    homepage = "/dev/null";
+    description = "Continued fractions";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/control-monad-attempt/default.nix b/pkgs/development/libraries/haskell/control-monad-attempt/default.nix
new file mode 100644
index 0000000000000..06571080b7bd8
--- /dev/null
+++ b/pkgs/development/libraries/haskell/control-monad-attempt/default.nix
@@ -0,0 +1,18 @@
+{ cabal, attempt, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "control-monad-attempt";
+  version = "0.3.0";
+  sha256 = "1l0bqb5h2fs7vx2r8nd6kscyyrrqc0gshnxwdz9p6clfnknyqbqw";
+  buildDepends = [ attempt transformers ];
+  meta = {
+    homepage = "http://github.com/snoyberg/control-monad-attempt";
+    description = "Monad transformer for attempt";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/converge/default.nix b/pkgs/development/libraries/haskell/converge/default.nix
new file mode 100755
index 0000000000000..6c12828528516
--- /dev/null
+++ b/pkgs/development/libraries/haskell/converge/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "converge";
+  version = "0.1.0.1";
+  sha256 = "0y28m7kgphknra0w2kzf0g4m2bdj604nr3f22xng46nl7kljbpvj";
+  meta = {
+    homepage = "/dev/null";
+    description = "Limit operations for converging sequences";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/convertible/default.nix b/pkgs/development/libraries/haskell/convertible/default.nix
index 7adc2e974f39b..5497500c0a86d 100644
--- a/pkgs/development/libraries/haskell/convertible/default.nix
+++ b/pkgs/development/libraries/haskell/convertible/default.nix
@@ -1,12 +1,20 @@
-{cabal, mtl, time}:
+{ cabal, mtl, text, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "convertible";
-  version = "1.0.9.1";
-  sha256 = "a1f46bf1166356c02e7a241d0bfea7010dc3e5f9f15181cfc2405a95df402914";
-  propagatedBuildInputs = [mtl time];
+  version = "1.0.11.0";
+  sha256 = "0qkz760ddshmglmrf47a01978c9zhxfss44b6vmfkwwfcjb7da2b";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl text time ];
   meta = {
+    homepage = "http://hackage.haskell.org/cgi-bin/hackage-scripts/package/convertible";
     description = "Typeclasses and instances for converting between types";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/cookie/default.nix b/pkgs/development/libraries/haskell/cookie/default.nix
index 750c4de28abbd..dce5b245a78ce 100644
--- a/pkgs/development/libraries/haskell/cookie/default.nix
+++ b/pkgs/development/libraries/haskell/cookie/default.nix
@@ -1,14 +1,18 @@
-{cabal, blazeBuilder, text}:
+{ cabal, blazeBuilder, text, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "cookie";
-  version = "0.2.1";
-  sha256 = "0jn4as09qx2948k0r916vy5igz0xmrvng37s0il81b0ndvhnsc6c";
-  propagatedBuildInputs = [blazeBuilder text];
+  version = "0.3.0.1";
+  sha256 = "1gqz2q09fnbk8scd164mg02jsdh0sg5g06grr627qsjy583i2ad7";
+  buildDepends = [ blazeBuilder text time ];
   meta = {
+    homepage = "http://github.com/snoyberg/cookie";
     description = "HTTP cookie parsing and rendering";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/cprng-aes/default.nix b/pkgs/development/libraries/haskell/cprng-aes/default.nix
new file mode 100644
index 0000000000000..1c156f47a3fa6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cprng-aes/default.nix
@@ -0,0 +1,18 @@
+{ cabal, cereal, cryptoApi, cryptocipher, random }:
+
+cabal.mkDerivation (self: {
+  pname = "cprng-aes";
+  version = "0.2.1";
+  sha256 = "0q6qkvha7cckz3zjnzfsrx298arzbdavy1f73hygrd8f7n74442j";
+  buildDepends = [ cereal cryptoApi cryptocipher random ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-cprng-aes";
+    description = "Crypto Pseudo Random Number Generator using AES in counter mode";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/criterion/default.nix b/pkgs/development/libraries/haskell/criterion/default.nix
index 47f34bb441c25..0a7f23a38acd8 100644
--- a/pkgs/development/libraries/haskell/criterion/default.nix
+++ b/pkgs/development/libraries/haskell/criterion/default.nix
@@ -1,19 +1,23 @@
-{cabal, deepseq, mtl, parallel, parsec, vector, vectorAlgorithms,
- mwcRandom, statistics}:
+{ cabal, deepseq, mtl, mwcRandom, parsec, statistics, time, vector
+, vectorAlgorithms
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "criterion";
-  version = "0.5.0.7";
-  sha256 = "1f1vpc3cwvc6wjy7fras5kp1iap8abh6ap3w6pf75qpkbdrcd3dq";
-
-  propagatedBuildInputs = [
-    deepseq mtl parallel parsec vector vectorAlgorithms mwcRandom statistics
+  version = "0.5.0.10";
+  sha256 = "0sd289s7wnyg0p37j327hv55aw4a18bdv56z26v4qi3j8p2fbpbj";
+  buildDepends = [
+    deepseq mtl mwcRandom parsec statistics time vector
+    vectorAlgorithms
   ];
-
   meta = {
     homepage = "http://bitbucket.org/bos/criterion";
     description = "Robust, reliable performance measurement and analysis";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/crypto-api/default.nix b/pkgs/development/libraries/haskell/crypto-api/default.nix
new file mode 100644
index 0000000000000..e651d03b736fd
--- /dev/null
+++ b/pkgs/development/libraries/haskell/crypto-api/default.nix
@@ -0,0 +1,18 @@
+{ cabal, cereal, entropy, largeword, tagged }:
+
+cabal.mkDerivation (self: {
+  pname = "crypto-api";
+  version = "0.6.4";
+  sha256 = "1v3nnfw13r514a723lsx8d1awlad6fmv27bgp76f1ssv1garraf3";
+  buildDepends = [ cereal entropy largeword tagged ];
+  meta = {
+    homepage = "http://trac.haskell.org/crypto-api/wiki";
+    description = "A generic interface for cryptographic operations";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cryptocipher/default.nix b/pkgs/development/libraries/haskell/cryptocipher/default.nix
new file mode 100644
index 0000000000000..754f728aed54c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cryptocipher/default.nix
@@ -0,0 +1,20 @@
+{ cabal, cereal, cryptoApi, primitive, tagged, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "cryptocipher";
+  version = "0.2.14";
+  sha256 = "1r91d9sqc53c628z378fyah7vvmkakvxpwbslam0yhfgp2p0l23z";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ cereal cryptoApi primitive tagged vector ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-cryptocipher";
+    description = "Symmetrical Block, Stream and PubKey Ciphers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/cryptohash/default.nix b/pkgs/development/libraries/haskell/cryptohash/default.nix
new file mode 100644
index 0000000000000..70dbbf15ea4db
--- /dev/null
+++ b/pkgs/development/libraries/haskell/cryptohash/default.nix
@@ -0,0 +1,20 @@
+{ cabal, cereal, cryptoApi, tagged }:
+
+cabal.mkDerivation (self: {
+  pname = "cryptohash";
+  version = "0.7.1";
+  sha256 = "1bblhqidzb8b75fk9zb1ibdssmbh1kaq20q144c9y1cas3gbn6h3";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ cereal cryptoApi tagged ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-cryptohash";
+    description = "collection of crypto hashes, fast, pure and practical";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/css-text/default.nix b/pkgs/development/libraries/haskell/css-text/default.nix
new file mode 100644
index 0000000000000..efd0f64192000
--- /dev/null
+++ b/pkgs/development/libraries/haskell/css-text/default.nix
@@ -0,0 +1,18 @@
+{ cabal, attoparsecText, text }:
+
+cabal.mkDerivation (self: {
+  pname = "css-text";
+  version = "0.1.0.1";
+  sha256 = "004ky2s6jmiliw8faja5kzp99i36qf56cixvn43n3pnq8gg26kfi";
+  buildDepends = [ attoparsecText text ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "CSS parser and renderer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/csv/default.nix b/pkgs/development/libraries/haskell/csv/default.nix
index 477c794feb157..1539583a617d5 100644
--- a/pkgs/development/libraries/haskell/csv/default.nix
+++ b/pkgs/development/libraries/haskell/csv/default.nix
@@ -1,12 +1,17 @@
-{cabal, parsec}:
+{ cabal, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "csv";
   version = "0.1.2";
   sha256 = "00767ai09wm7f0yzmpqck3cpgxncpr9djnmmz5l17ajz69139x4c";
-  propagatedBuildInputs = [parsec];
+  buildDepends = [ parsec ];
   meta = {
     description = "CSV loader and dumper";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix b/pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix
index d65e51a2be343..0238f2d311b6b 100644
--- a/pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix
+++ b/pkgs/development/libraries/haskell/data-accessor/data-accessor-template.nix
@@ -1,14 +1,18 @@
-{cabal, dataAccessor, utilityHt}:
+{ cabal, dataAccessor, utilityHt }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "data-accessor-template";
-  version = "0.2.1.7";
-  sha256 = "08658axzznqxp4p4d6h0y0sp7rzj84ma6hrb4zvsxa3614vydgi4";
-  propagatedBuildInputs = [dataAccessor utilityHt];
+  version = "0.2.1.8";
+  sha256 = "0bx0w4vkigq20pa31sdygj4idi3iywkpclbllrw38ma1j19033zk";
+  buildDepends = [ dataAccessor utilityHt ];
   meta = {
-    description = "Utilities for accessing and manipulating the fields of records";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://www.haskell.org/haskellwiki/Record_access";
+    description = "Utilities for accessing and manipulating fields of records";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix b/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix
index e1221a86a75c1..f6b48befd5d6b 100644
--- a/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix
+++ b/pkgs/development/libraries/haskell/data-accessor/data-accessor.nix
@@ -1,14 +1,18 @@
-{cabal, transformers}:
+{ cabal, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "data-accessor";
-  version = "0.2.1.7";
-  sha256 = "05wi8wm4vq4j4ldx1925q7v31rnh4gj5891gqc5hdf0x8cgkxbii";
-  propagatedBuildInputs = [transformers];
+  version = "0.2.2";
+  sha256 = "1jqd0qlv1yab83d5pdbzjw6q4a2kvbsar6kgczq0f0xn9gxm0qci";
+  buildDepends = [ transformers ];
   meta = {
-    description = "Utilities for accessing and manipulating the fields of records";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://www.haskell.org/haskellwiki/Record_access";
+    description = "Utilities for accessing and manipulating fields of records";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/data-default/default.nix b/pkgs/development/libraries/haskell/data-default/default.nix
index 6575e9aa3db1b..593c7b3bd3cb5 100644
--- a/pkgs/development/libraries/haskell/data-default/default.nix
+++ b/pkgs/development/libraries/haskell/data-default/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal, dlist }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "data-default";
-  version = "0.2.0.1";
-  sha256 = "0hhrzaykwybqpig0kss4iq1i93ygb80g8i1chpr84akmvdr07w0i";
+  version = "0.3.0";
+  sha256 = "0nbvknfa9kkc46fl1ffji0ghqb41wwsccmc55mya5zavfq9g05g9";
+  buildDepends = [ dlist ];
   meta = {
     description = "A class for types with a default value";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/data-reify/default.nix b/pkgs/development/libraries/haskell/data-reify/default.nix
index fe2e0b23d3f9b..2618ef6a69069 100644
--- a/pkgs/development/libraries/haskell/data-reify/default.nix
+++ b/pkgs/development/libraries/haskell/data-reify/default.nix
@@ -1,11 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "data-reify";
-  version = "0.5";
-  sha256 = "ca501cbde57d3b53b4def9ce3de9ecccc5136fb0575877e98e163668ebe23055";
+  version = "0.6";
+  sha256 = "0mif89mpj5zvw8czc51mfj27jw2ipxd2awnm9q13s46k6s5pv6a7";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://www.ittc.ku.edu/csdl/fpg/Tools/IOReification";
     description = "Reify a recursive data structure into an explicit graph";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/dataenc/default.nix b/pkgs/development/libraries/haskell/dataenc/default.nix
index 2290a1f50923b..88d1b6ed06734 100644
--- a/pkgs/development/libraries/haskell/dataenc/default.nix
+++ b/pkgs/development/libraries/haskell/dataenc/default.nix
@@ -1,12 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "dataenc";
-  version = "0.14";
-  sha256 = "0q92pzm6wp4rl92ac9b2x2b6na8nzhf229myc9h3cyr3p822liw6";
+  version = "0.14.0.2";
+  sha256 = "1zym24259d053b7vbxir2l7229gilkg81vvc0wf9605873j6gw5b";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Library/Data_encoding";
     description = "Data encoding library";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/datetime/default.nix b/pkgs/development/libraries/haskell/datetime/default.nix
index de7d4bbffe700..72f3d1c937f3a 100644
--- a/pkgs/development/libraries/haskell/datetime/default.nix
+++ b/pkgs/development/libraries/haskell/datetime/default.nix
@@ -1,11 +1,18 @@
-{cabal, QuickCheck, time}:
+{ cabal, QuickCheck, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "datetime";
-  version = "0.1";
-  sha256 = "0j2h369ydmlnkvk6m9j7b6fgs6cyc425s8n3yaajr4j5rdqcq6lk";
-  propagatedBuildInputs = [QuickCheck time];
+  version = "0.2.1";
+  sha256 = "1yfg3wvi13r725dhfsmcdw4ns3cgl2ayrb5jck0q8b4crk2dlrzg";
+  buildDepends = [ QuickCheck time ];
   meta = {
-    description = "Utilities to make Data.Time.* easier to use";
+    homepage = "http://github.com/esessoms/datetime";
+    description = "Utilities to make Data.Time.* easier to use.";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/deepseq/1.1.0.0.nix b/pkgs/development/libraries/haskell/deepseq/1.1.0.0.nix
index eb84d629fdb1c..2c61618cd0812 100644
--- a/pkgs/development/libraries/haskell/deepseq/1.1.0.0.nix
+++ b/pkgs/development/libraries/haskell/deepseq/1.1.0.0.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "deepseq";
-  version = "1.1.0.0"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
+  version = "1.1.0.0";
   sha256 = "947c45e7ee862159f190fb8e905c1328f7672cb9e6bf3abd1d207bbcf1eee50a";
   meta = {
-    description = "Provides a deep version of seq, for fully evaluating data structures";
+    description = "Fully evaluate data structures";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/deepseq/1.1.0.2.nix b/pkgs/development/libraries/haskell/deepseq/1.1.0.2.nix
index 719ba91483ac3..4af1d5bff9c74 100644
--- a/pkgs/development/libraries/haskell/deepseq/1.1.0.2.nix
+++ b/pkgs/development/libraries/haskell/deepseq/1.1.0.2.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "deepseq";
-  version = "1.1.0.2"; # Haskell Platform 2011.2.0.0
+  version = "1.1.0.2";
   sha256 = "1iqk8lc2an2rd1j9lcr76yabiz18h10lazlmdg5c528yssyd6135";
   meta = {
-    description = "Provides a deep version of seq, for fully evaluating data structures";
+    description = "Deep evaluation of data structures";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/derive/default.nix b/pkgs/development/libraries/haskell/derive/default.nix
index 7ac349e96aa21..7f28ad8b10daa 100644
--- a/pkgs/development/libraries/haskell/derive/default.nix
+++ b/pkgs/development/libraries/haskell/derive/default.nix
@@ -1,11 +1,20 @@
-{cabal, haskellSrcExts, mtl, uniplate}:
+{ cabal, haskellSrcExts, syb, transformers, uniplate }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "derive";
-  version = "2.3.0.2";
-  sha256 = "bb8f62d93742d0f27c742bf09fdad73111057d9b531dda45d7f0c894b447809e";
-  propagatedBuildInputs = [haskellSrcExts mtl uniplate];
+  version = "2.5.4";
+  sha256 = "0gmj24qzh3vyvp0a44v4mf1qpkrg4d9q0m15d0yfbyzrimyjx1c7";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ haskellSrcExts syb transformers uniplate ];
   meta = {
+    homepage = "http://community.haskell.org/~ndm/derive/";
     description = "A program and library to derive instances for data types";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/digest/default.nix b/pkgs/development/libraries/haskell/digest/default.nix
index 7df65b1c0bff0..b13f156a3e8fb 100644
--- a/pkgs/development/libraries/haskell/digest/default.nix
+++ b/pkgs/development/libraries/haskell/digest/default.nix
@@ -1,12 +1,17 @@
-{cabal, zlib}:
+{ cabal, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "digest";
   version = "0.0.0.9";
   sha256 = "15gj3iq3jm4lnkc6hnj9v8p8ia3yzbsajwf9by3b1kpl449k2h29";
-  propagatedBuildInputs = [zlib];
+  extraLibraries = [ zlib ];
   meta = {
-    description = "Various cryptographic hashes for bytestrings: CRC32 and Adler32 for now";
+    description = "Various cryptographic hashes for bytestrings; CRC32 and Adler32 for now";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/dimensional/default.nix b/pkgs/development/libraries/haskell/dimensional/default.nix
new file mode 100644
index 0000000000000..a8943965ab751
--- /dev/null
+++ b/pkgs/development/libraries/haskell/dimensional/default.nix
@@ -0,0 +1,18 @@
+{ cabal, numtype, time }:
+
+cabal.mkDerivation (self: {
+  pname = "dimensional";
+  version = "0.10.1.1";
+  sha256 = "198ynnls5l25q6igbhgd892cp1hvzca3wbgsmfxzlmcwmihhp8p9";
+  buildDepends = [ numtype time ];
+  meta = {
+    homepage = "http://dimensional.googlecode.com/";
+    description = "Statically checked physical dimensions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/directory-tree/default.nix b/pkgs/development/libraries/haskell/directory-tree/default.nix
index df6ef6811fd99..1e0b78c4af390 100644
--- a/pkgs/development/libraries/haskell/directory-tree/default.nix
+++ b/pkgs/development/libraries/haskell/directory-tree/default.nix
@@ -1,12 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "directory-tree";
   version = "0.10.0";
   sha256 = "08b0w9j55x6c06pri7yvv84n24inhpb4miybdnkyjkjy7r3yy7m4";
   meta = {
+    homepage = "http://coder.bsimmons.name/blog/2009/05/directory-tree-module-released/";
     description = "A simple directory-like tree datatype, with useful IO functions";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/dlist/default.nix b/pkgs/development/libraries/haskell/dlist/default.nix
index fd0c275859359..a88b38650c7d1 100644
--- a/pkgs/development/libraries/haskell/dlist/default.nix
+++ b/pkgs/development/libraries/haskell/dlist/default.nix
@@ -1,14 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "dlist";
   version = "0.5";
   sha256 = "1shr5wlpha68h82gwpndr5441847l01gh3j7szyvnmgzkr0fb027";
-  propagatedBuildInputs = [];
   meta = {
+    homepage = "http://code.haskell.org/~dons/code/dlist/";
     description = "Differences lists";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/dotgen/default.nix b/pkgs/development/libraries/haskell/dotgen/default.nix
index c9e4c1e04000f..06a3e6a09fe54 100644
--- a/pkgs/development/libraries/haskell/dotgen/default.nix
+++ b/pkgs/development/libraries/haskell/dotgen/default.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "dotgen";
-  version = "0.3";
-  sha256 = "1c486ffa782c4a46e66df12f5acf776a808b654d96fe0d0071d5c41111b1b7ed";
+  version = "0.4.1";
+  sha256 = "1g5ds0mqkz0lzhcp42hin08azschs3p083ikdk4d5jil8rzl7d8k";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
-    description = "A simple interface for building .dot graph files";
+    description = "A simple interface for building .dot graph files.";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/double-conversion/default.nix b/pkgs/development/libraries/haskell/double-conversion/default.nix
new file mode 100644
index 0000000000000..4f1bf34dc291b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/double-conversion/default.nix
@@ -0,0 +1,18 @@
+{ cabal, text }:
+
+cabal.mkDerivation (self: {
+  pname = "double-conversion";
+  version = "0.2.0.1";
+  sha256 = "146ijcv55k0lqlw8y4nz7p5kjpwry2jzbqmkan904pnlcfv4a60a";
+  buildDepends = [ text ];
+  meta = {
+    homepage = "https://github.com/mailrank/double-conversion";
+    description = "Fast conversion between double precision floating point and text";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/editline/default.nix b/pkgs/development/libraries/haskell/editline/default.nix
index b477df5fbd143..b8fe0d25ed419 100644
--- a/pkgs/development/libraries/haskell/editline/default.nix
+++ b/pkgs/development/libraries/haskell/editline/default.nix
@@ -1,12 +1,18 @@
-{ cabal, libedit } :
+{ cabal, libedit }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "editline";
   version = "0.2.1.0";
   sha256 = "83618e5f86074fdc11d7f5033aa2886284462941be38fa02966acc92712c46e1";
-  propagatedBuildInputs = [ libedit ];
+  extraLibraries = [ libedit ];
   meta = {
-    description = "Binding to the BSD editline library (libedit)";
+    homepage = "http://code.haskell.org/editline";
+    description = "Bindings to the editline library (libedit)";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/email-validate/default.nix b/pkgs/development/libraries/haskell/email-validate/default.nix
index 3c053565e2aa9..10c518611d1dc 100644
--- a/pkgs/development/libraries/haskell/email-validate/default.nix
+++ b/pkgs/development/libraries/haskell/email-validate/default.nix
@@ -1,14 +1,18 @@
-{cabal, parsec, ranges}:
+{ cabal, parsec, ranges }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "email-validate";
-  version = "0.2.6";
-  sha256 = "1nw4r5wyck30r6n0bjxwybpkw2dqr2mp4y8fy6ypra9zhhw1jd8m";
-  propagatedBuildInputs = [parsec ranges];
+  version = "0.2.7";
+  sha256 = "13zam197ph431f351g8srsxwqchjdwx1c1bizmildsc1zxm2nm3q";
+  buildDepends = [ parsec ranges ];
   meta = {
+    homepage = "http://porg.es/blog/email-address-validation-simpler-faster-more-correct";
     description = "Validating an email address string against RFC 5322";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/emgm/default.nix b/pkgs/development/libraries/haskell/emgm/default.nix
deleted file mode 100644
index b5aa22ede884c..0000000000000
--- a/pkgs/development/libraries/haskell/emgm/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "emgm";
-  version = "0.3.1";
-  sha256 = "956923ec4d51f111ca6091ebccf75a1f6b99d7a173ea673cbb4787bf08f497a8";
-  meta = {
-    description = "Extensible and Modular Generics for the Masses";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/entropy/default.nix b/pkgs/development/libraries/haskell/entropy/default.nix
new file mode 100644
index 0000000000000..e877124b9635d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/entropy/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "entropy";
+  version = "0.2.1";
+  sha256 = "1qp8hvdzfgg2wk7d431qycwbn2zpzlplc1c7dbhimj1had5jscrs";
+  meta = {
+    homepage = "http://trac.haskell.org/crypto-api/wiki";
+    description = "A platform independent entropy source";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/enumerator/default.nix b/pkgs/development/libraries/haskell/enumerator/default.nix
index 8cd33a1932589..1037c570bdbb6 100644
--- a/pkgs/development/libraries/haskell/enumerator/default.nix
+++ b/pkgs/development/libraries/haskell/enumerator/default.nix
@@ -1,13 +1,18 @@
-{cabal, text, transformers}:
+{ cabal, text, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "enumerator";
-  version = "0.4.9.1";
-  sha256 = "1rnhapj5am1rv3dff2bkhch7ikpyhs18nay39h0805xl50dcyw99";
-  propagatedBuildInputs = [text transformers];
+  version = "0.4.14";
+  sha256 = "06bvrr76y12r3i1xi1s98fc1v6mcmn8nzhbp80wgyi743ksqcr1d";
+  buildDepends = [ text transformers ];
   meta = {
+    homepage = "https://john-millikin.com/software/enumerator/";
     description = "Reliable, high-performance processing with left-fold enumerators";
-    license = "MIT";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/erf/default.nix b/pkgs/development/libraries/haskell/erf/default.nix
index 7bceb45f3e9c7..25d64b3faafc6 100644
--- a/pkgs/development/libraries/haskell/erf/default.nix
+++ b/pkgs/development/libraries/haskell/erf/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "erf";
-  version = "1.0.0.0";
-  sha256 = "0zkb9csnfqcrzdkqqn0xihfx1k17fw9ki7y3d1di67lnlmjpkqnn";
+  version = "2.0.0.0";
+  sha256 = "0dxk2r32ajmmc05vaxcp0yw6vgv4lkbmh8jcshncn98xgsfbgw14";
   meta = {
-    description = "The error function, erf, and friends";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "The error function, erf, and related functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.0.nix b/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.0.nix
new file mode 100644
index 0000000000000..8a928931e3e7f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.0.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "extensible-exceptions";
+  version = "0.1.1.0";
+  sha256 = "c252dc5a505332700f041d4e1fd3d309cde6158892f9c35339bf5e67bad7f781";
+  meta = {
+    description = "Extensible exceptions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.2.nix b/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.2.nix
new file mode 100644
index 0000000000000..329bb2a42c48d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.2.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "extensible-exceptions";
+  version = "0.1.1.2";
+  sha256 = "0rsdvb7k8mp88s1jjmna17qa6363vbjgvlkpncmn8516dnxhypg3";
+  meta = {
+    description = "Extensible exceptions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.3.nix b/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.3.nix
new file mode 100644
index 0000000000000..d349a1f17e366
--- /dev/null
+++ b/pkgs/development/libraries/haskell/extensible-exceptions/0.1.1.3.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "extensible-exceptions";
+  version = "0.1.1.3";
+  sha256 = "1i8rjfczsx1wjfaq423a7cp7qrnxh053865z7bg6hwhk2pxsrxkm";
+  meta = {
+    description = "Extensible exceptions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/extensible-exceptions/default.nix b/pkgs/development/libraries/haskell/extensible-exceptions/default.nix
deleted file mode 100644
index 19390cc94706a..0000000000000
--- a/pkgs/development/libraries/haskell/extensible-exceptions/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "extensible-exceptions";
-  version = "0.1.1.0";
-  sha256 = "c252dc5a505332700f041d4e1fd3d309cde6158892f9c35339bf5e67bad7f781";
-  meta = {
-    description = "Extensible exceptions";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/failure/default.nix b/pkgs/development/libraries/haskell/failure/default.nix
index 74f9f0c4626ff..b481fb39e543a 100644
--- a/pkgs/development/libraries/haskell/failure/default.nix
+++ b/pkgs/development/libraries/haskell/failure/default.nix
@@ -1,12 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "failure";
-  version = "0.1.0";
-  sha256 = "08c4e51dbbc0852836ff5bf791e9c62dca748aed8554bb6271618ab3d6a04b2c";
+  version = "0.1.0.1";
+  sha256 = "15zkhnxkfsd3qf4wmcp6kcfip9ahb4s3ywnh14whmhicp9mkm3q0";
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Failure";
     description = "A simple type class for success/failure computations";
-    license = "Public Domain";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/fclabels/default.nix b/pkgs/development/libraries/haskell/fclabels/default.nix
index 61504f2be5c21..01b3c71b4e2b0 100644
--- a/pkgs/development/libraries/haskell/fclabels/default.nix
+++ b/pkgs/development/libraries/haskell/fclabels/default.nix
@@ -1,14 +1,17 @@
-{cabal, monadsFd}:
+{ cabal, mtl, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "fclabels";
-  version = "0.4.2";
-  sha256 = "d1abfd94f8970e55ed839645a58697b8beeacc5e5ea4a5861001539aa8fc28d7";
-  propagatedBuildInputs = [monadsFd];
+  version = "1.0.3";
+  sha256 = "0sl45pv18qfyphixl9qyng5m6i19c9n18izkm278z6fvih2x5wd0";
+  buildDepends = [ mtl transformers ];
   meta = {
     description = "First class accessor labels";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/feed/default.nix b/pkgs/development/libraries/haskell/feed/default.nix
index 18a43e1075f47..8ad5c4318f7dd 100644
--- a/pkgs/development/libraries/haskell/feed/default.nix
+++ b/pkgs/development/libraries/haskell/feed/default.nix
@@ -1,14 +1,17 @@
-{cabal, utf8String, xml}:
+{ cabal, utf8String, xml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "feed";
   version = "0.3.8";
   sha256 = "1yvigcvb8cvxfa8vb2i11xkrylqw57jwzkaji6m1wp03k80zf576";
-  propagatedBuildInputs = [utf8String xml];
+  buildDepends = [ utf8String xml ];
   meta = {
-    description = "Interfacing with RSS and Atom feeds";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "Interfacing with RSS (v 0.9x, 2.x, 1.0) + Atom feeds.";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/fgl/5.4.2.2.nix b/pkgs/development/libraries/haskell/fgl/5.4.2.2.nix
index a71b83da03300..7299daddb14cc 100644
--- a/pkgs/development/libraries/haskell/fgl/5.4.2.2.nix
+++ b/pkgs/development/libraries/haskell/fgl/5.4.2.2.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "fgl";
-  version = "5.4.2.2"; # Haskell Platform 2010.1.0.0
+  version = "5.4.2.2";
   sha256 = "8232c337f0792854bf2a12a5fd1bc46726fff05d2f599053286ff873364cd7d2";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
+    homepage = "http://web.engr.oregonstate.edu/~erwig/fgl/haskell";
     description = "Martin Erwig's Functional Graph Library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/fgl/5.4.2.3.nix b/pkgs/development/libraries/haskell/fgl/5.4.2.3.nix
index 1348e5f991364..7417a32745c50 100644
--- a/pkgs/development/libraries/haskell/fgl/5.4.2.3.nix
+++ b/pkgs/development/libraries/haskell/fgl/5.4.2.3.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "fgl";
-  version = "5.4.2.3"; # Haskell Platform 2010.2.0.0 and 2011.2.0.0
+  version = "5.4.2.3";
   sha256 = "1f46siqqv8bc9v8nxr72nxabpzfax117ncgdvif6rax5ansl48g7";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
+    homepage = "http://web.engr.oregonstate.edu/~erwig/fgl/haskell";
     description = "Martin Erwig's Functional Graph Library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/fgl/5.4.2.4.nix b/pkgs/development/libraries/haskell/fgl/5.4.2.4.nix
new file mode 100644
index 0000000000000..7b6aa799944b4
--- /dev/null
+++ b/pkgs/development/libraries/haskell/fgl/5.4.2.4.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "fgl";
+  version = "5.4.2.4";
+  sha256 = "0rh22786f37mpsvhkv075wjh5sd0c83nlhk669xil9rd7swcr66f";
+  buildDepends = [ mtl ];
+  meta = {
+    homepage = "http://web.engr.oregonstate.edu/~erwig/fgl/haskell";
+    description = "Martin Erwig's Functional Graph Library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/file-embed/default.nix b/pkgs/development/libraries/haskell/file-embed/default.nix
new file mode 100644
index 0000000000000..d24d30adfcb45
--- /dev/null
+++ b/pkgs/development/libraries/haskell/file-embed/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "file-embed";
+  version = "0.0.4.1";
+  sha256 = "156ydqljhxp16192s4pj6h8jcvrfmj2lnsvzy0zg394wi97bxpi2";
+  meta = {
+    homepage = "http://github.com/snoyberg/file-embed/tree/master";
+    description = "Use Template Haskell to embed file contents directly";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/filepath/default.nix b/pkgs/development/libraries/haskell/filepath/default.nix
index 4ba15b54e6087..6e3362bf42cec 100644
--- a/pkgs/development/libraries/haskell/filepath/default.nix
+++ b/pkgs/development/libraries/haskell/filepath/default.nix
@@ -1,12 +1,17 @@
-{ cabal} :
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "filepath";
-  version = "1.1.0.2";
-  sha256 = "1mkckshbpmgp7z97vc923x1qph8brqh9wcnb90kbv46bhiza277q";
-  propagatedBuildInputs = [];
+  version = "1.2.0.1";
+  sha256 = "1fq62kxf68y2952qhipllz049cq52yc3wm4i31v2lg5hdcwbw152";
   meta = {
-    description = "Library for manipulating FilePath's in a cross platform way";
+    homepage = "http://www-users.cs.york.ac.uk/~ndm/filepath/";
+    description = "Library for manipulating FilePaths in a cross platform way";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/filestore/default.nix b/pkgs/development/libraries/haskell/filestore/default.nix
index 5fa1927df5470..4c4214f0317db 100644
--- a/pkgs/development/libraries/haskell/filestore/default.nix
+++ b/pkgs/development/libraries/haskell/filestore/default.nix
@@ -1,12 +1,18 @@
-{cabal, datetime, parsec, regexPosix, split, time, utf8String, xml, Diff}:
+{ cabal, Diff, parsec, split, time, utf8String, xml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "filestore";
-  version = "0.4.0.3";
-  sha256 = "098z9niavzxfzwk40xabah3x06vdzprvsjkyx99wlmapi5rynfz3";
-  propagatedBuildInputs = [datetime parsec regexPosix split time utf8String xml Diff];
+  version = "0.4.0.4";
+  sha256 = "14rp2689gjnk9pqk2xv4m3q3icgfvbik32c2d6gx4l2y7n78dsbx";
+  buildDepends = [ Diff parsec split time utf8String xml ];
   meta = {
+    homepage = "http://johnmacfarlane.net/repos/filestore";
     description = "Interface for versioning file stores";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/fingertree/default.nix b/pkgs/development/libraries/haskell/fingertree/default.nix
index 4babd837fa315..37f66a12ba661 100644
--- a/pkgs/development/libraries/haskell/fingertree/default.nix
+++ b/pkgs/development/libraries/haskell/fingertree/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "fingertree";
   version = "0.0.1.0";
   sha256 = "e80bf256506290c8f4fb44222920ae7d8405fd22e453c7a08dba49297d49328b";
   meta = {
     description = "Generic finger-tree structure, with example instances";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/flexible-defaults/default.nix b/pkgs/development/libraries/haskell/flexible-defaults/default.nix
new file mode 100755
index 0000000000000..b552ab51e2e7c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/flexible-defaults/default.nix
@@ -0,0 +1,18 @@
+{ cabal, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "flexible-defaults";
+  version = "0.0.0.2";
+  sha256 = "0hr3x4hlah6pd88xvr9lgvz1v4pyxpyv6q9zms96jkm5wc4mkbwx";
+  buildDepends = [ transformers ];
+  meta = {
+    homepage = "https://github.com/mokus0/flexible-defaults";
+    description = "Generate default function implementations for complex type classes";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/funcmp/default.nix b/pkgs/development/libraries/haskell/funcmp/default.nix
index a667a1e1d289f..d96bb075ab3c7 100644..100755
--- a/pkgs/development/libraries/haskell/funcmp/default.nix
+++ b/pkgs/development/libraries/haskell/funcmp/default.nix
@@ -1,14 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "funcmp";
   version = "1.5";
   sha256 = "f68807833f39178c99877321f0f335cfde12a5c4b38e6c51f33f8cab94b9e12e";
-  propagatedBuildInputs = [];
   meta = {
+    homepage = "http://savannah.nongnu.org/projects/funcmp/";
     description = "Functional MetaPost";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.simons];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/gamma/default.nix b/pkgs/development/libraries/haskell/gamma/default.nix
new file mode 100755
index 0000000000000..523b9d233cac7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/gamma/default.nix
@@ -0,0 +1,18 @@
+{ cabal, continuedFractions, converge, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "gamma";
+  version = "0.7.0.1";
+  sha256 = "0728b5mrzmj9hkaqvikl45jyi2p9hnkl2p6l9yv7wnw557yb0gb2";
+  buildDepends = [ continuedFractions converge vector ];
+  meta = {
+    homepage = "https://github.com/mokus0/gamma";
+    description = "Gamma function and related functions";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/gdiff/default.nix b/pkgs/development/libraries/haskell/gdiff/default.nix
index 5f494d19816a7..929b717f552bd 100644
--- a/pkgs/development/libraries/haskell/gdiff/default.nix
+++ b/pkgs/development/libraries/haskell/gdiff/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "gdiff";
   version = "1.0";
   sha256 = "35257b1090cf78f95d24c7a89920863c1d824652311fa5793693d7d06d96517b";
   meta = {
     description = "Generic diff and patch";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/ghc-core/default.nix b/pkgs/development/libraries/haskell/ghc-core/default.nix
index 27c18a5ad34e2..9995c56fd587d 100644
--- a/pkgs/development/libraries/haskell/ghc-core/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-core/default.nix
@@ -1,13 +1,20 @@
-{cabal, pcreLight, colorizeHaskell}:
+{ cabal, colorizeHaskell, pcreLight }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ghc-core";
-  version = "0.5";
-  sha256 = "9880ea553a24a1ad6585c4d69505a3b1ac90aaf0f48ca8c126f41e8f170651ef";
-  propagatedBuildInputs = [pcreLight colorizeHaskell];
-  configureFlags = ''--constraint=base<4'';
+  version = "0.5.4";
+  sha256 = "1s68m2zkpz0n927rgzg0l0r5v8pk3z03rlkd82h83agw0hzb9ng7";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ colorizeHaskell pcreLight ];
   meta = {
+    homepage = "http://code.haskell.org/~dons/code/ghc-core";
     description = "Display GHC's core and assembly output in a pager";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/ghc-events/default.nix b/pkgs/development/libraries/haskell/ghc-events/default.nix
index bb4ba31741d0a..23af9bfa7fe44 100644
--- a/pkgs/development/libraries/haskell/ghc-events/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-events/default.nix
@@ -10,7 +10,11 @@ cabal.mkDerivation (self : {
   '';
   meta = {
     description = "Library and tool for parsing .eventlog files from GHC";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/ghc-mtl/default.nix b/pkgs/development/libraries/haskell/ghc-mtl/default.nix
index 019086a67756d..43a8deaf91568 100644
--- a/pkgs/development/libraries/haskell/ghc-mtl/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-mtl/default.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, MonadCatchIOMtl} :
+{ cabal, MonadCatchIOMtl, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ghc-mtl";
   version = "1.0.1.0";
   sha256 = "5284e0ecf99511e6263503412faf6fa809dc577c009fde63203d46405eb1b191";
-  propagatedBuildInputs = [mtl MonadCatchIOMtl];
+  buildDepends = [ MonadCatchIOMtl mtl ];
   meta = {
+    homepage = "http://code.haskell.org/~jcpetruzza/ghc-mtl";
     description = "An mtl compatible version of the Ghc-Api monads and monad-transformers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/ghc-paths/0.1.0.5.nix b/pkgs/development/libraries/haskell/ghc-paths/0.1.0.5.nix
new file mode 100644
index 0000000000000..cd295e3476f0b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ghc-paths/0.1.0.5.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "ghc-paths";
+  version = "0.1.0.5";
+  sha256 = "ea9e97425894e3dbd7915e00e107e2e7fc07b6e8293fd2dd66a813f0673cba10";
+  meta = {
+    description = "Knowledge of GHC's installation directories";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ghc-paths/0.1.0.6.nix b/pkgs/development/libraries/haskell/ghc-paths/0.1.0.6.nix
index 5d2ad6beaf548..ae280fa54ea61 100644
--- a/pkgs/development/libraries/haskell/ghc-paths/0.1.0.6.nix
+++ b/pkgs/development/libraries/haskell/ghc-paths/0.1.0.6.nix
@@ -1,11 +1,16 @@
-{ cabal } :
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ghc-paths";
   version = "0.1.0.6";
   sha256 = "95d8c0e6ce2f182d792e910149b3c81c381b7d2c2052ffc6d96128b071c55243";
   meta = {
-    description = "Knowledge of GHC's installations directories";
+    description = "Knowledge of GHC's installation directories";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/ghc-paths/0.1.0.8.nix b/pkgs/development/libraries/haskell/ghc-paths/0.1.0.8.nix
new file mode 100644
index 0000000000000..1fa7e662f0223
--- /dev/null
+++ b/pkgs/development/libraries/haskell/ghc-paths/0.1.0.8.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "ghc-paths";
+  version = "0.1.0.8";
+  sha256 = "0mhc5zhbybp1vmkjsqbca51993vkpx5g8hql160m8m95apkc2wl6";
+  meta = {
+    description = "Knowledge of GHC's installation directories";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ghc-paths/default.nix b/pkgs/development/libraries/haskell/ghc-paths/default.nix
deleted file mode 100644
index 945a560582738..0000000000000
--- a/pkgs/development/libraries/haskell/ghc-paths/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ cabal } :
-
-cabal.mkDerivation (self : {
-  pname = "ghc-paths";
-  version = "0.1.0.5";
-  sha256 = "ea9e97425894e3dbd7915e00e107e2e7fc07b6e8293fd2dd66a813f0673cba10";
-  meta = {
-    description = "Knowledge of GHC's installations directories";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix b/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix
index 5e001569ba8f9..ce2cb87c096ae 100644
--- a/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-syb-utils/default.nix
@@ -1,11 +1,18 @@
-{cabal, ghcSyb}:
+{ cabal, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ghc-syb-utils";
-  version = "0.2.0.0";
-  sha256 = "457110f7e1f163ccf78acb898f8ca43b6a5b4595156a08a2f1a3d81f944d74a9";
-  propagatedBuildInputs = [ghcSyb];
+  version = "0.2.1.0";
+  sha256 = "02wmd4zkng38z3bhsk4w4dqj1lzznhg2p0ijwr1a0dgx8cqr490z";
+  buildDepends = [ syb ];
   meta = {
+    homepage = "http://github.com/nominolo/ghc-syb";
     description = "Scrap Your Boilerplate utilities for the GHC API";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/ghc-syb/default.nix b/pkgs/development/libraries/haskell/ghc-syb/default.nix
index fa59bd8c15ddd..d0a766940fe89 100644
--- a/pkgs/development/libraries/haskell/ghc-syb/default.nix
+++ b/pkgs/development/libraries/haskell/ghc-syb/default.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ghc-syb";
   version = "0.2.0.0";
   sha256 = "0052bd2ee4d92fbb010bebc7bcfd533a0b78437f1fb0834288ce979c103d9d67";
   meta = {
+    homepage = "http://github.com/nominolo/ghc-syb";
     description = "Data and Typeable instances for the GHC API";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/gitit/default.nix b/pkgs/development/libraries/haskell/gitit/default.nix
index b5a1cfdbfcbe0..a2db60b8d0f85 100644
--- a/pkgs/development/libraries/haskell/gitit/default.nix
+++ b/pkgs/development/libraries/haskell/gitit/default.nix
@@ -1,23 +1,30 @@
-{cabal, happstackServer, happstackUtil, HStringTemplate, HTTP,
- SHA, cgi, datetime,
- filestore, highlightingKate, safe, mtl, network, pandoc, parsec,
- recaptcha, utf8String, xhtml, zlib, ConfigFile, url,
- cautiousFile, feed, xssSanitize}:
+{ cabal, cgi, ConfigFile, feed, filestore, ghcPaths
+, happstackServer, happstackUtil, highlightingKate, hslogger
+, HStringTemplate, HTTP, json, mtl, network, pandoc, pandocTypes
+, parsec, random, recaptcha, safe, SHA, syb, time, url, utf8String
+, xhtml, xml, xssSanitize, zlib
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "gitit";
-  version = "0.7.3.12";
-  sha256 = "1z5cbkgfvwc9h6jciw7ghlj9ra6xph5z4lmliwkdnf38wfparxja";
-  propagatedBuildInputs = [
-    HStringTemplate happstackServer happstackUtil HTTP SHA cgi datetime
-    filestore highlightingKate safe
-    mtl network pandoc parsec recaptcha utf8String xhtml zlib ConfigFile
-    url cautiousFile feed xssSanitize
+  version = "0.8.0.1";
+  sha256 = "0y2gcxlbb44vflj0jl3zkbsn47n7nccikxwdw6ccf9kxgcmrz0zy";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    cgi ConfigFile feed filestore ghcPaths happstackServer
+    happstackUtil highlightingKate hslogger HStringTemplate HTTP json
+    mtl network pandoc pandocTypes parsec random recaptcha safe SHA syb
+    time url utf8String xhtml xml xssSanitize zlib
   ];
   meta = {
+    homepage = "http://github.com/jgm/gitit/tree/master";
     description = "Wiki using happstack, git or darcs, and pandoc";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/glade/default.nix b/pkgs/development/libraries/haskell/glade/default.nix
index 3f1a0529a83d6..8f43af57b8dc1 100644
--- a/pkgs/development/libraries/haskell/glade/default.nix
+++ b/pkgs/development/libraries/haskell/glade/default.nix
@@ -1,14 +1,23 @@
-{cabal, cairo, glib, gtk, mtl, pango, gtk2hsBuildtools, pkgconfig, gnome, glibc}:
+{ cabal, cairo, glib, glibc, gtk, gtk2hsBuildtools, gtkC, libglade
+, mtl, pango, pkgconfig
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "glade";
   version = "0.12.0";
   sha256 = "0h7l1kp9y17xqyz16kv0dvwgblph9r70wimyl8aq9gi1r4is5lmq";
-  extraBuildInputs = [pkgconfig gtk2hsBuildtools gnome.libglade gnome.gtk glibc];
-  propagatedBuildInputs = [cairo glib gtk mtl pango];
+  buildDepends = [ cairo glib gtk mtl pango ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc pkgconfig ];
+  pkgconfigDepends = [ gtkC libglade ];
   meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
     description = "Binding to the glade library";
-    license = "LGPLv2+";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.lgpl21;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/glib/default.nix b/pkgs/development/libraries/haskell/glib/default.nix
index 78fc7d37d0efd..9d7750e24de87 100644
--- a/pkgs/development/libraries/haskell/glib/default.nix
+++ b/pkgs/development/libraries/haskell/glib/default.nix
@@ -1,13 +1,20 @@
-{cabal, gtk2hsBuildtools, pkgconfig, glib, glibc}:
+{ cabal, glib, glibc, gtk2hsBuildtools, pkgconfig }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "glib";
   version = "0.12.0";
   sha256 = "1sqkj6adg87ccdnl9yy1p8yrv5xnfcrlaflj52nrh6anwlqy9z19";
-  extraBuildInputs = [pkgconfig glib glibc gtk2hsBuildtools];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc pkgconfig ];
+  pkgconfigDepends = [ glib ];
   meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
     description = "Binding to the GLIB library for Gtk2Hs";
-    license = "LGPLv2+";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.lgpl21;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/graphviz/default.nix b/pkgs/development/libraries/haskell/graphviz/default.nix
index 7f8b040d971bd..9e1ab17a940aa 100644
--- a/pkgs/development/libraries/haskell/graphviz/default.nix
+++ b/pkgs/development/libraries/haskell/graphviz/default.nix
@@ -1,13 +1,25 @@
-{cabal, colour, fgl, polyparse, transformers, QuickCheck}:
+{ cabal, colour, dlist, extensibleExceptions, fgl, polyparse, text
+, transformers, wlPprintText
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "graphviz";
-  version = "2999.10.0.1";
-  sha256 = "5a3aebd3874303dcf554aef3bf511dd22e72053a9672c823d1d820d2b90ca076";
-  propagatedBuildInputs = [colour fgl polyparse transformers QuickCheck];
+  version = "2999.12.0.3";
+  sha256 = "0qvkmklf2wxac6j01fnh8r352b52xzhr8wryk1b9119wvcbli8md";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    colour dlist extensibleExceptions fgl polyparse text transformers
+    wlPprintText
+  ];
   meta = {
-    description = "Bindings for the Dot language (Graphviz)";
-    license = "BSD3";
+    homepage = "http://projects.haskell.org/graphviz/";
+    description = "Bindings to Graphviz for graph visualisation";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/gtk/default.nix b/pkgs/development/libraries/haskell/gtk/default.nix
index b9c4400bee402..0b9cd20eb0ad5 100644
--- a/pkgs/development/libraries/haskell/gtk/default.nix
+++ b/pkgs/development/libraries/haskell/gtk/default.nix
@@ -1,14 +1,23 @@
-{cabal, cairo, glib, mtl, pango, gtk2hsBuildtools, pkgconfig, gtk, glibc}:
+{ cabal, cairo, glib, glibc, gtk, gtk2hsBuildtools, mtl, pango
+, pkgconfig
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "gtk";
   version = "0.12.0";
   sha256 = "1rqy0390rahdrlb1ba1hjrygwin8ynxzif5flcici22bg5ixsgs2";
-  extraBuildInputs = [pkgconfig gtk2hsBuildtools gtk glibc];
-  propagatedBuildInputs = [cairo glib mtl pango];
+  buildDepends = [ cairo glib mtl pango ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc pkgconfig ];
+  pkgconfigDepends = [ glib gtk ];
   meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
     description = "Binding to the Gtk+ graphical user interface library";
-    license = "LGPLv2+";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.lgpl21;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/gtk2hs-buildtools/default.nix b/pkgs/development/libraries/haskell/gtk2hs-buildtools/default.nix
index 1b7a092cec676..9b0fe07653c43 100644
--- a/pkgs/development/libraries/haskell/gtk2hs-buildtools/default.nix
+++ b/pkgs/development/libraries/haskell/gtk2hs-buildtools/default.nix
@@ -1,13 +1,20 @@
-{cabal, alex, happy}:
+{ cabal, alex, happy }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "gtk2hs-buildtools";
   version = "0.12.0";
   sha256 = "1czlmyr9zhzc0h1j0z3chv06ma77cibq2yc6h1slfphb1lkv66a8";
-  extraBuildInputs = [alex happy];
+  isLibrary = false;
+  isExecutable = true;
+  buildTools = [ alex happy ];
   meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
     description = "Tools to build the Gtk2Hs suite of User Interface libraries";
-    license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.gpl2;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/gtksourceview2/default.nix b/pkgs/development/libraries/haskell/gtksourceview2/default.nix
index f3ae246124e0a..6f69696d1f437 100644
--- a/pkgs/development/libraries/haskell/gtksourceview2/default.nix
+++ b/pkgs/development/libraries/haskell/gtksourceview2/default.nix
@@ -1,14 +1,23 @@
-{cabal, gtk2hsBuildtools, pkgconfig, gtksourceview, glib, gtk, gtkC, glibc}:
+{ cabal, glib, glibc, gtk, gtk2hsBuildtools, gtksourceview, mtl
+, pkgconfig
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "gtksourceview2";
   version = "0.12.2";
   sha256 = "0l9y48kmzqzps6k54fgf0dkmmv0ppxx8amggfdswwk86zsf8j81r";
-  extraBuildInputs = [pkgconfig gtksourceview gtkC glibc gtk2hsBuildtools];
-  propagatedBuildInputs = [glib gtk];
+  buildDepends = [ glib gtk mtl ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc pkgconfig ];
+  pkgconfigDepends = [ gtksourceview ];
   meta = {
-    description = "GtkSourceView is a text widget that extends the standard GTK+ 2.x text widget GtkTextView";
-    license = "LGPLv2+";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://www.haskell.org/gtk2hs/";
+    description = "Binding to the GtkSourceView library";
+    license = self.stdenv.lib.licenses.lgpl21;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hackage-db/default.nix b/pkgs/development/libraries/haskell/hackage-db/default.nix
new file mode 100644
index 0000000000000..4cfc1527f9214
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hackage-db/default.nix
@@ -0,0 +1,18 @@
+{ cabal, tar }:
+
+cabal.mkDerivation (self: {
+  pname = "hackage-db";
+  version = "1.0";
+  sha256 = "0y769ssr9jlyzcdr0l8wh5s3ivc3zbp9mf7xy7vnq6mr9hjh7lcw";
+  buildDepends = [ tar ];
+  meta = {
+    homepage = "http://github.com/peti/hackage-db";
+    description = "provide access to the Hackage database via Data.Map";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hakyll/default.nix b/pkgs/development/libraries/haskell/hakyll/default.nix
index 8c544ccc75e0c..1f42ba532fbc9 100644
--- a/pkgs/development/libraries/haskell/hakyll/default.nix
+++ b/pkgs/development/libraries/haskell/hakyll/default.nix
@@ -1,17 +1,23 @@
-{cabal, binary, blazeHtml, hamlet, hopenssl, mtl, network, pandoc, regexBase
-, regexPCRE, snapCore, snapServer, strictConcurrency}:
+{ cabal, binary, blazeHtml, hamlet, hopenssl, mtl, pandoc, parsec
+, regexBase, regexPcre, snapCore, snapServer, tagsoup, time
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hakyll";
-  version = "3.2.0.3";
-  sha256 = "0biy9p662anhhlmwa502iy8cck597q0vlwj57l6cj8kpyxj4g0lz";
-  propagatedBuildInputs =
-    [ binary blazeHtml hamlet hopenssl mtl network pandoc regexBase
-     regexPCRE snapCore snapServer strictConcurrency
-    ];
+  version = "3.2.0.5";
+  sha256 = "1rwmdkzwshhi6b27zff42gg65vds866l68h33p4kn6pq1rns3bz4";
+  buildDepends = [
+    binary blazeHtml hamlet hopenssl mtl pandoc parsec regexBase
+    regexPcre snapCore snapServer tagsoup time
+  ];
   meta = {
-    description = "A simple static site generator library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://jaspervdj.be/hakyll";
+    description = "A static website compiler library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hamlet/0.10.0.nix b/pkgs/development/libraries/haskell/hamlet/0.10.0.nix
new file mode 100644
index 0000000000000..280e49ea43545
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hamlet/0.10.0.nix
@@ -0,0 +1,22 @@
+{ cabal, blazeBuilder, blazeHtml, failure, parsec, shakespeare
+, text
+}:
+
+cabal.mkDerivation (self: {
+  pname = "hamlet";
+  version = "0.10.0";
+  sha256 = "0xqlc03g0qnpnrw957108rpjbs88p9wwvcgmz7vc1f0k88lc0h6n";
+  buildDepends = [
+    blazeBuilder blazeHtml failure parsec shakespeare text
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/book/templates";
+    description = "Haml-like template files that are compile-time checked";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hamlet/0.8.2.1.nix b/pkgs/development/libraries/haskell/hamlet/0.8.2.1.nix
new file mode 100644
index 0000000000000..0bf489ae98308
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hamlet/0.8.2.1.nix
@@ -0,0 +1,18 @@
+{ cabal, blazeBuilder, blazeHtml, failure, parsec, text }:
+
+cabal.mkDerivation (self: {
+  pname = "hamlet";
+  version = "0.8.2.1";
+  sha256 = "0798ic6qap4npw2rx42xcgmi1fcbwqvyic5x6vyyf6abvxv16925";
+  buildDepends = [ blazeBuilder blazeHtml failure parsec text ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Haml-like template files that are compile-time checked";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hamlet/default.nix b/pkgs/development/libraries/haskell/hamlet/default.nix
deleted file mode 100644
index 6eb100c36f373..0000000000000
--- a/pkgs/development/libraries/haskell/hamlet/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, blazeBuilder, blazeHtml, failure, parsec, text}:
-
-cabal.mkDerivation (self : {
-  pname = "hamlet";
-  version = "0.8.2.1";
-  sha256 = "0798ic6qap4npw2rx42xcgmi1fcbwqvyic5x6vyyf6abvxv16925";
-  propagatedBuildInputs =
-    [blazeBuilder blazeHtml failure parsec text];
-  meta = {
-    description = "Haml-like template files that are compile-time checked";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-data.nix b/pkgs/development/libraries/haskell/happstack/happstack-data.nix
index 7ba7f354c6cef..d1603e0441a56 100644
--- a/pkgs/development/libraries/haskell/happstack/happstack-data.nix
+++ b/pkgs/development/libraries/haskell/happstack/happstack-data.nix
@@ -1,17 +1,24 @@
-{cabal, mtl, syb, sybWithClass, sybWithClassInstancesText, HaXml,
- happstackUtil, binary, text}:
+{ cabal, binary, mtl, syb, sybWithClass, sybWithClassInstancesText
+, text, time
+}:
 
-cabal.mkDerivation (self : {
-    pname = "happstack-data";
-    version = "0.5.0.3";
-    sha256 = "0zjsb9n1iawg2jv6i5q52awifly7yi6w0ilndivwp168qvi25awn";
-    propagatedBuildInputs = [
-        mtl syb sybWithClass sybWithClassInstancesText HaXml
-        happstackUtil binary text
+cabal.mkDerivation (self: {
+  pname = "happstack-data";
+  version = "6.0.0";
+  sha256 = "1wdvylqgy3iw41ksw2ys4f0vyak8sbk6gginljvz07rrh04klyhl";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    binary mtl syb sybWithClass sybWithClassInstancesText text time
+  ];
+  meta = {
+    homepage = "http://happstack.com";
+    description = "Happstack data manipulation libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
     ];
-    meta = {
-        description = "Happstack data manipulation libraries";
-        license = "BSD";
-        maintainers = [self.stdenv.lib.maintainers.andres];
-    };
+  };
 })
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-server.nix b/pkgs/development/libraries/haskell/happstack/happstack-server.nix
index 377e725dd59ff..4d8e874a8bf5b 100644
--- a/pkgs/development/libraries/haskell/happstack/happstack-server.nix
+++ b/pkgs/development/libraries/haskell/happstack/happstack-server.nix
@@ -1,16 +1,27 @@
-{cabal, HUnit, HaXml, MaybeT, parsec, sendfile, utf8String, mtl, network, hslogger, happstackData, happstackUtil, xhtml, html, zlib}:
+{ cabal, blazeHtml, extensibleExceptions, happstackData
+, happstackUtil, hslogger, html, MaybeT, mtl, network, parsec
+, sendfile, syb, text, time, utf8String, xhtml, zlib
+}:
 
-cabal.mkDerivation (self : {
-    pname = "happstack-server";
-    version = "0.5.0.4";
-    sha256 = "1iyjrlg5x6rlx8bfhn62a0ckjap0zv22hb6yazqph53jx6vn9b7q";
-    propagatedBuildInputs = [
-      HUnit HaXml MaybeT happstackData happstackUtil hslogger html
-      mtl network parsec sendfile utf8String xhtml zlib
+cabal.mkDerivation (self: {
+  pname = "happstack-server";
+  version = "6.1.6";
+  sha256 = "1z4c2bymyyvhs47ynrlp4d2cwqws2d2isiwj82c33qcmk4znargg";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    blazeHtml extensibleExceptions happstackData happstackUtil hslogger
+    html MaybeT mtl network parsec sendfile syb text time utf8String
+    xhtml zlib
+  ];
+  meta = {
+    homepage = "http://happstack.com";
+    description = "Web related tools and services";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
     ];
-    meta = {
-        description = "Web related tools and services";
-        license = "BSD";
-        maintainers = [self.stdenv.lib.maintainers.andres];
-    };
+  };
 })
diff --git a/pkgs/development/libraries/haskell/happstack/happstack-util.nix b/pkgs/development/libraries/haskell/happstack/happstack-util.nix
index 4bbe269fc729e..de4c1b9990c6c 100644
--- a/pkgs/development/libraries/haskell/happstack/happstack-util.nix
+++ b/pkgs/development/libraries/haskell/happstack/happstack-util.nix
@@ -1,17 +1,25 @@
-{cabal, mtl, hslogger, HUnit, QuickCheck, strictConcurrency,
- unixCompat, SMTPClient}:
+{ cabal, extensibleExceptions, hslogger, mtl, network, parsec
+, random, time, unixCompat
+}:
 
-cabal.mkDerivation (self : {
-    pname = "happstack-util";
-    version = "0.5.0.3";
-    sha256 = "1ipr09d0s1d0dffc1g3js8infhybw9rimabrl96a2vw7app3ys44";
-    propagatedBuildInputs = [
-      mtl hslogger HUnit QuickCheck strictConcurrency unixCompat
-      SMTPClient
+cabal.mkDerivation (self: {
+  pname = "happstack-util";
+  version = "6.0.0";
+  sha256 = "06qla74kb58q0rvlfa9k16s4crnylq99hm80xx4phlddyzn0cy4z";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    extensibleExceptions hslogger mtl network parsec random time
+    unixCompat
+  ];
+  meta = {
+    homepage = "http://happstack.com";
+    description = "Web framework";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
     ];
-    meta = {
-        description = "Miscellaneous utilities for Happstack packages";
-        license = "BSD";
-        maintainers = [self.stdenv.lib.maintainers.andres];
-    };
+  };
 })
diff --git a/pkgs/development/libraries/haskell/hashable/default.nix b/pkgs/development/libraries/haskell/hashable/default.nix
index 5da274d41f6f4..5149da865c704 100644
--- a/pkgs/development/libraries/haskell/hashable/default.nix
+++ b/pkgs/development/libraries/haskell/hashable/default.nix
@@ -1,14 +1,18 @@
-{cabal, text}:
+{ cabal, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hashable";
   version = "1.1.2.1";
   sha256 = "1kmx3jr9cmkbapd7gywx7zvyd22nyz2mgs8lnzspp5hi7crx3wcx";
-  propagatedBuildInputs = [text];
+  buildDepends = [ text ];
   meta = {
+    homepage = "http://github.com/tibbe/hashable";
     description = "A class for types that can be converted to a hash value";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/hashed-storage/default.nix b/pkgs/development/libraries/haskell/hashed-storage/default.nix
index 94b38fe0fb1ca..dc7378ce047ed 100644
--- a/pkgs/development/libraries/haskell/hashed-storage/default.nix
+++ b/pkgs/development/libraries/haskell/hashed-storage/default.nix
@@ -1,12 +1,21 @@
-{cabal, mtl, zlib, mmap, binary, dataenc}:
+{ cabal, binary, dataenc, extensibleExceptions, mmap, mtl, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hashed-storage";
-  version = "0.5.5";
-  sha256 = "03wx21kgnvkny8b6fz86wg85pr2sxbm15ndznnpqjg5gf126n842";
-  propagatedBuildInputs = [mtl zlib mmap binary dataenc];
+  version = "0.5.8";
+  sha256 = "1730hg6h7a1b0vgr9dvish41bpgly5cjpdwhqny75fi5in7dqplh";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    binary dataenc extensibleExceptions mmap mtl zlib
+  ];
   meta = {
     description = "Hashed file storage support code";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/haskeline-class/default.nix b/pkgs/development/libraries/haskell/haskeline-class/default.nix
index d5658adf3c149..acf6a6c0d4fa2 100644
--- a/pkgs/development/libraries/haskell/haskeline-class/default.nix
+++ b/pkgs/development/libraries/haskell/haskeline-class/default.nix
@@ -1,12 +1,18 @@
-{cabal, haskeline, mtl}:
+{ cabal, haskeline, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haskeline-class";
-  version = "0.6.1";
-  sha256 = "da954acea7ae215865a647fff776df9621ee5c5133a5f95c16b1ac5646ef0b31";
-  propagatedBuildInputs = [haskeline mtl];
+  version = "0.6.2";
+  sha256 = "0xgdq2xgw2ccyfzkj5n36s5n6km5l947d2iy4y1qms8kbc05zmfl";
+  buildDepends = [ haskeline mtl ];
   meta = {
+    homepage = "http://community.haskell.org/~aslatter/code/haskeline-class";
     description = "Class interface for working with Haskeline";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/haskeline/default.nix b/pkgs/development/libraries/haskell/haskeline/default.nix
index f3a87459acef4..12e1448c04168 100644
--- a/pkgs/development/libraries/haskell/haskeline/default.nix
+++ b/pkgs/development/libraries/haskell/haskeline/default.nix
@@ -1,12 +1,18 @@
-{cabal, extensibleExceptions, mtl, utf8String}:
+{ cabal, extensibleExceptions, mtl, terminfo, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haskeline";
-  version = "0.6.3.2";
-  sha256 = "0ragimzrilsk5r8n0fbq3lyjww28bmc1r1vgjf9pb4kpfpbz0cq8";
-  propagatedBuildInputs = [extensibleExceptions mtl utf8String];
+  version = "0.6.4.3";
+  sha256 = "1dlrsazprvn6xcd12k5ln536rv9sljjccrjgpq6jj6b9ziadwiwr";
+  buildDepends = [ extensibleExceptions mtl terminfo utf8String ];
   meta = {
+    homepage = "http://trac.haskell.org/haskeline";
     description = "A command-line interface for user input, written in Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/haskell-lexer/default.nix b/pkgs/development/libraries/haskell/haskell-lexer/default.nix
index 465c2a39ac1bd..90c4a599bc4ce 100644
--- a/pkgs/development/libraries/haskell/haskell-lexer/default.nix
+++ b/pkgs/development/libraries/haskell/haskell-lexer/default.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haskell-lexer";
   version = "1.0";
   sha256 = "86d0c4071295c8613eb965768cb61a0c8422fc0c429a49c7a93e93a72b185b86";
   meta = {
     description = "A fully compliant Haskell 98 lexer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix b/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix
index 33bc493b3cc32..da70d32861d0f 100644
--- a/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix
+++ b/pkgs/development/libraries/haskell/haskell-platform/2011.2.0.1.nix
@@ -3,25 +3,29 @@
  stm, syb, deepseq, text, transformers, mtl, xhtml, zlib,
  cabalInstall, alex, happy, haddock, ghc}:
 
+# This is just a meta-package. Because upstream fails to provide proper versioned
+# release tarballs that can be used for the purpose of verifying this package, we
+# just create it on the fly from a simple Setup.hs file and a .cabal file that we
+# store directly in the nixpkgs repository.
+
 cabal.mkDerivation (self : {
   pname = "haskell-platform";
   version = "2011.2.0.1";
-  src = fetchurl {
-    url = "http://lambda.haskell.org/hp-tmp/2011.2.0.0/cabal/${self.pname}-2011.2.0.0.tar.gz";
-    sha256 = "01ppv8jdyvbngml9vgvrvnani6fj1nbk8mqmrkd8c508l7q9g6vb";
-  };
-  cabalFile = fetchurl {
-    url = http://code.galois.com/darcs/haskell-platform/haskell-platform.cabal;
-    sha256 = "158a1g4ak9mm2q5ri4zdpmbvjgfkz7svxnkxlz8117zpnbs12i3d";
-  };
+  cabalFile = ./haskell-platform-2011.2.0.1.cabal;
+  setupFile = ./Setup.hs;
+  src = null;
   propagatedBuildInputs = [
     GLUT HTTP HUnit OpenGL QuickCheck cgi fgl
     haskellSrc html network parallel parsec regexBase regexCompat regexPosix
     stm syb deepseq text transformers mtl xhtml zlib
     cabalInstall alex happy ghc haddock
   ];
-  preConfigure = ''
-    cp ${self.cabalFile} ${self.pname}.cabal
+  unpackPhase = ''
+    sourceRoot=haskell-platform
+    mkdir $sourceRoot
+    cp ${self.cabalFile} $sourceRoot/${self.pname}.cabal
+    cp ${self.setupFile} $sourceRoot/Setup.hs
+    touch $sourceRoot/LICENSE
   '';
   noHaddock = true;
   meta = {
diff --git a/pkgs/development/libraries/haskell/haskell-platform/Setup.hs b/pkgs/development/libraries/haskell/haskell-platform/Setup.hs
new file mode 100644
index 0000000000000..47fd3a5c71b11
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-platform/Setup.hs
@@ -0,0 +1,10 @@
+import Distribution.Simple
+import Distribution.Simple.Program
+
+main = defaultMainWithHooks simpleUserHooks { hookedPrograms = [cabal] }
+
+cabal :: Program
+cabal = (simpleProgram "cabal-install") {
+  programFindLocation = \x -> findProgramLocation x "cabal",
+  programFindVersion  = findProgramVersion "--numeric-version" id
+}
diff --git a/pkgs/development/libraries/haskell/haskell-platform/haskell-platform-2011.2.0.1.cabal b/pkgs/development/libraries/haskell/haskell-platform/haskell-platform-2011.2.0.1.cabal
new file mode 100644
index 0000000000000..fa09cb039dab2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-platform/haskell-platform-2011.2.0.1.cabal
@@ -0,0 +1,90 @@
+name:                haskell-platform
+version:             2011.2.0.1
+homepage:            http://haskell.org/platform
+license:             BSD3
+license-file:        LICENSE
+author:              libraries@haskell.org
+maintainer:          haskell-platform@projects.haskell.org
+category:            System
+synopsis:            The Haskell Platform
+description:
+    The Haskell Platform (HP) is the blessed set of libraries and tools on
+    which to build further Haskell libraries and applications. It is
+    intended to provide a comprehensive, stable, and quality tested base for
+    Haskell projects to work from.
+    .
+    This version specifies the following additional developer tools be
+    installed, for a system to be in full compliance:
+    . 
+    * cabal-install
+    * alex
+    * happy
+    * haddock
+
+cabal-version:       >= 1.6
+build-type:          Custom
+tested-with:         GHC ==7.0.3
+
+library
+  build-depends:
+    -- ghc 7.x
+    -- Core libraries: provided by every ghc installation
+    -- We don't include "non-API" packages here.
+    -- array                    ==0.3.0.2
+    -- base                     ==4.3.1.0
+    -- bytestring               ==0.9.1.10
+    -- Cabal                    ==1.10.1.0
+    -- containers               ==0.4.0.0
+    -- directory                ==1.1.0.0
+    -- extensible-exceptions    ==0.1.1.2
+    -- filepath                 ==1.2.0.0
+    -- haskell2010              ==1.0.0.0
+    -- haskell98                ==1.1.0.1
+    -- hpc                      ==0.5.0.6
+    -- old-locale               ==1.0.0.2
+    -- old-time                 ==1.0.0.6
+    -- pretty                   ==1.0.1.2
+    -- process                  ==1.0.1.5
+    -- random                   ==1.0.0.3
+    -- template-haskell         ==2.5.0.0
+    -- time                     ==1.2.0.3
+    -- unix                     ==XXX 2.4.2.0
+    -- Win32                    ==XXX 2.2.0.1
+
+    -- Libraries in addition to what GHC provides:
+    -- Note: newer versions of cgi need monad-catchio.
+    cgi                         ==3001.1.7.4,
+    fgl                         ==5.4.2.3,
+    GLUT                        ==2.1.2.1,
+    haskell-src                 ==1.0.1.4,
+    html                        ==1.0.1.2,
+    HUnit                       ==1.2.2.3,
+    network                     ==2.3.0.2,
+    OpenGL                      ==2.2.3.0,
+    parallel                    ==3.1.0.1,
+    parsec                      ==3.1.1,
+    QuickCheck                  ==2.4.0.1,
+    regex-base                  ==0.93.2,
+    regex-compat                ==0.93.1,
+    regex-posix                 ==0.94.4,
+    stm                         ==2.2.0.1,
+    syb                         ==0.3,
+    xhtml                       ==3000.2.0.1,
+    zlib                        ==0.5.3.1,
+    HTTP                        ==4000.1.1,
+    deepseq                     ==1.1.0.2,
+
+    -- 2011.1 proposals:
+    text                        ==0.11.0.6,
+    transformers                ==0.2.2.0,
+    mtl                         ==2.0.1.0
+
+  -- Depending on programs does not work, they are not registered
+  -- We list them to help distro packaging.
+  build-tools:
+    cabal-install ==0.10.2,
+    alex          ==2.3.5,
+    happy         ==1.18.6
+    -- hscolour      ==1.17       
+  --  haddock       ==2.9.2     -- need to use the one shipped with ghc
+
diff --git a/pkgs/development/libraries/haskell/haskell-src-exts/1.11.1.nix b/pkgs/development/libraries/haskell/haskell-src-exts/1.11.1.nix
new file mode 100644
index 0000000000000..649bf29f58f7f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-src-exts/1.11.1.nix
@@ -0,0 +1,19 @@
+{ cabal, cpphs, happy }:
+
+cabal.mkDerivation (self: {
+  pname = "haskell-src-exts";
+  version = "1.11.1";
+  sha256 = "1jqf8l81zw7x5ryf8h2n0b2636yhxkfp3j4ndbqw6hc7i5q581m6";
+  buildDepends = [ cpphs ];
+  buildTools = [ happy ];
+  meta = {
+    homepage = "http://code.haskell.org/haskell-src-exts";
+    description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/haskell-src-exts/1.9.6.nix b/pkgs/development/libraries/haskell/haskell-src-exts/1.9.6.nix
new file mode 100644
index 0000000000000..42b69258397e0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/haskell-src-exts/1.9.6.nix
@@ -0,0 +1,19 @@
+{ cabal, cpphs, happy }:
+
+cabal.mkDerivation (self: {
+  pname = "haskell-src-exts";
+  version = "1.9.6";
+  sha256 = "1bdbjwhzms962ncwiszp82a8m6jkgz6d9cns5585kipy9n224d3h";
+  buildDepends = [ cpphs ];
+  buildTools = [ happy ];
+  meta = {
+    homepage = "http://code.haskell.org/haskell-src-exts";
+    description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/haskell-src-exts/default.nix b/pkgs/development/libraries/haskell/haskell-src-exts/default.nix
deleted file mode 100644
index c3c433b92a437..0000000000000
--- a/pkgs/development/libraries/haskell/haskell-src-exts/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{cabal, cpphs, happy}:
-
-cabal.mkDerivation (self : {
-  pname = "haskell-src-exts";
-  version = "1.9.6";
-  sha256 = "1bdbjwhzms962ncwiszp82a8m6jkgz6d9cns5585kipy9n224d3h";
-  extraBuildInputs = [happy];
-  propagatedBuildInputs = [cpphs];
-  meta = {
-    description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/haskell-src-meta/default.nix b/pkgs/development/libraries/haskell/haskell-src-meta/default.nix
index bc4455cadf3c1..fd16c1151f20c 100644
--- a/pkgs/development/libraries/haskell/haskell-src-meta/default.nix
+++ b/pkgs/development/libraries/haskell/haskell-src-meta/default.nix
@@ -1,12 +1,17 @@
-{cabal, haskellSrcExts}:
+{ cabal, haskellSrcExts, syb, thLift }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haskell-src-meta";
-  version = "0.0.5";
-  sha256 = "96e55d6b5237043f8b3943b40c55e26ef6a2806d1314d784202135497e645add";
-  propagatedBuildInputs = [haskellSrcExts];
+  version = "0.5";
+  sha256 = "0403j2ks2as61rfl049v4h43xpgx06bm739y80vada6jc85rfinr";
+  buildDepends = [ haskellSrcExts syb thLift ];
   meta = {
     description = "Parse source to template-haskell abstract syntax";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/haskell-src/1.0.1.3.nix b/pkgs/development/libraries/haskell/haskell-src/1.0.1.3.nix
index c70bdc252fc63..0bec73765444c 100644
--- a/pkgs/development/libraries/haskell/haskell-src/1.0.1.3.nix
+++ b/pkgs/development/libraries/haskell/haskell-src/1.0.1.3.nix
@@ -1,12 +1,17 @@
-{cabal, happy}:
+{ cabal, happy }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haskell-src";
-  version = "1.0.1.3"; # Haskell Platform 2009.0.0 and 2010.1.0.0 and 2010.2.0.0
+  version = "1.0.1.3";
   sha256 = "a7872900acd2293775a6bdc6dc8f70438ccd80e62d2d1e2394ddff15b1883e89";
-  extraBuildInputs = [happy];
+  buildTools = [ happy ];
   meta = {
     description = "Manipulating Haskell source code";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/haskell-src/1.0.1.4.nix b/pkgs/development/libraries/haskell/haskell-src/1.0.1.4.nix
index b58b0ad7f88d4..949efadea96af 100644
--- a/pkgs/development/libraries/haskell/haskell-src/1.0.1.4.nix
+++ b/pkgs/development/libraries/haskell/haskell-src/1.0.1.4.nix
@@ -1,13 +1,18 @@
-{cabal, happy, syb}:
+{ cabal, happy, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haskell-src";
-  version = "1.0.1.4"; # Haskell Platform 2011.2.0.0
+  version = "1.0.1.4";
   sha256 = "02h33d7970641p9vi62sgcxb5v4yaz8xx9vf2yxyvxs3hglm7f0j";
-  extraBuildInputs = [happy];
-  propagatedBuildInputs = [syb];
+  buildDepends = [ syb ];
+  buildTools = [ happy ];
   meta = {
-    description = "Manipulating Haskell source code";
+    description = "Support for manipulating Haskell source code";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/haxr-th/default.nix b/pkgs/development/libraries/haskell/haxr-th/default.nix
index 207da9831afc3..83917cf889194 100644
--- a/pkgs/development/libraries/haskell/haxr-th/default.nix
+++ b/pkgs/development/libraries/haskell/haxr-th/default.nix
@@ -1,11 +1,18 @@
-{cabal, haxr, HaXml, HTTP}:
+{ cabal, haxr }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haxr-th";
-  version = "3000.0.0";
-  sha256 = "00wqhri2fljjds6rwws0hgk7z27ii1lgvxr8db2li0780q5fa6ic";
+  version = "3000.5";
+  sha256 = "1h1g4r7c5k3rja49ip4m21f2sscn06xjxharnlyazvvs6mzfysif";
+  buildDepends = [ haxr ];
   meta = {
-    description = "Automatic deriving of XML-RPC structs for Haskell records.";
+    homepage = "http://www.haskell.org/haxr/";
+    description = "Automatic deriving of XML-RPC structs for Haskell records";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-  propagatedBuildInputs = [HaXml HTTP haxr];
 })
diff --git a/pkgs/development/libraries/haskell/haxr/default.nix b/pkgs/development/libraries/haskell/haxr/default.nix
index 0f25200516bb8..94070a34c1854 100644
--- a/pkgs/development/libraries/haskell/haxr/default.nix
+++ b/pkgs/development/libraries/haskell/haxr/default.nix
@@ -1,12 +1,22 @@
-{cabal, HaXml, HTTP, dataenc, time}:
+{ cabal, blazeBuilder, dataenc, HaXml, HTTP, mtl, network, time
+, utf8String
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "haxr";
-  version = "3000.1.1.2";
-  sha256 = "c24741a92e27d851a3376158230a52782c1e2b494405ebdde1d256819598c8e8";
+  version = "3000.8.4";
+  sha256 = "0cyf1q1ngz0jqxdrvblcy9iw7l478v0rfr7bgkpq0l4brw0ca1pg";
+  buildDepends = [
+    blazeBuilder dataenc HaXml HTTP mtl network time utf8String
+  ];
   meta = {
-    description = "a Haskell library for writing XML-RPC client and server applications";
+    homepage = "http://www.haskell.org/haskellwiki/HaXR";
+    description = "XML-RPC client and server library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
-  propagatedBuildInputs = [HaXml HTTP dataenc time];
 })
-
diff --git a/pkgs/development/libraries/haskell/hfuse/default.nix b/pkgs/development/libraries/haskell/hfuse/default.nix
new file mode 100644
index 0000000000000..ef51afca0c719
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hfuse/default.nix
@@ -0,0 +1,23 @@
+{ cabal, fuse }:
+
+cabal.mkDerivation (self: {
+  pname = "HFuse";
+  version = "0.2.4";
+  sha256 = "1v3kfkm2rz7bvwk0j8p9rhnnsffbnkismnsq0fkgnzi5z0bz5sgv";
+  extraLibraries = [ fuse ];
+
+  preConfigure = ''
+    sed -i -e "s@  Extra-Lib-Dirs:         /usr/local/lib@  Extra-Lib-Dirs:         ${fuse}/lib@" HFuse.cabal
+  '';
+
+  meta = {
+    homepage = "https://github.com/realdesktop/hfuse";
+    description = "HFuse is a binding for the Linux FUSE library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/highlighting-kate/default.nix b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
index cce66f3ec109c..ecaf46c0b77cf 100644
--- a/pkgs/development/libraries/haskell/highlighting-kate/default.nix
+++ b/pkgs/development/libraries/haskell/highlighting-kate/default.nix
@@ -1,11 +1,20 @@
-{cabal, parsec, pcreLight, xhtml}:
+{ cabal, parsec, regexPcreBuiltin, xhtml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "highlighting-kate";
-  version = "0.2.9";
-  sha256 = "0mk8m01mqw6vnjldr5idc6611475j4m292cm18kn3wa83000mbgk";
-  propagatedBuildInputs = [parsec pcreLight xhtml];
+  version = "0.2.10";
+  sha256 = "0cw89qsslrp4zh47ics7bg79fkqnxpnyz1a9xws0xzd9xmg3zrhh";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ parsec regexPcreBuiltin xhtml ];
   meta = {
+    homepage = "http://github.com/jgm/highlighting-kate";
     description = "Syntax highlighting";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hint/default.nix b/pkgs/development/libraries/haskell/hint/default.nix
index b37d7739148e0..ac6e81e702e02 100644
--- a/pkgs/development/libraries/haskell/hint/default.nix
+++ b/pkgs/development/libraries/haskell/hint/default.nix
@@ -1,16 +1,23 @@
-{cabal, extensibleExceptions, filepath, ghcMtl,
- ghcPaths, haskellSrc, MonadCatchIOMtl, mtl, utf8String} :
+{ cabal, extensibleExceptions, ghcMtl, ghcPaths, haskellSrc
+, MonadCatchIOMtl, mtl, random, utf8String
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hint";
-  version = "0.3.2.3";
-  sha256 = "1cc01037cfd32eb1a299ce625487411a97ce70178778d7bbd1d5fcef7d3d40c4";
-  propagatedBuildInputs = [
-    extensibleExceptions filepath ghcMtl ghcPaths haskellSrc
-    MonadCatchIOMtl mtl utf8String
+  version = "0.3.3.2";
+  sha256 = "1qm74hjz8cxypvavcw7s094zg9ic3r1ll2lj3y159ipc79cw2sn1";
+  buildDepends = [
+    extensibleExceptions ghcMtl ghcPaths haskellSrc MonadCatchIOMtl mtl
+    random utf8String
   ];
   meta = {
-    description = "An mtl compatible version of the Ghc-Api monads and monad-transformers";
+    homepage = "http://projects.haskell.org/hint";
+    description = "Runtime Haskell interpreter (GHC API wrapper)";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/hjsmin/default.nix b/pkgs/development/libraries/haskell/hjsmin/default.nix
new file mode 100644
index 0000000000000..f9b823eeb8b20
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hjsmin/default.nix
@@ -0,0 +1,20 @@
+{ cabal, blazeBuilder, languageJavascript, text }:
+
+cabal.mkDerivation (self: {
+  pname = "hjsmin";
+  version = "0.0.14";
+  sha256 = "16053hnxnr9vsqvasbibjwjdg0jpsl5fwzgy54ac1xkh4rhp3a5i";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ blazeBuilder languageJavascript text ];
+  meta = {
+    homepage = "http://github.com/alanz/hjsmin";
+    description = "Haskell implementation of a javascript minifier";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hledger-chart/default.nix b/pkgs/development/libraries/haskell/hledger-chart/default.nix
new file mode 100644
index 0000000000000..f20c2daf5410a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hledger-chart/default.nix
@@ -0,0 +1,20 @@
+{ cabal, Chart, colour, hledger, hledgerLib, safe }:
+
+cabal.mkDerivation (self: {
+  pname = "hledger-chart";
+  version = "0.14";
+  sha256 = "fe321e4e31c72aef22945080323992a0033ae8fb48213ad7b708f86f9e2f6462";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ Chart colour hledger hledgerLib safe ];
+  meta = {
+    homepage = "http://hledger.org";
+    description = "A pie chart generator for the hledger accounting tool";
+    license = "GPL";
+    platforms = self.stdenv.lib.platforms.linux;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hledger-lib/default.nix b/pkgs/development/libraries/haskell/hledger-lib/default.nix
new file mode 100644
index 0000000000000..569bd7c5291f3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hledger-lib/default.nix
@@ -0,0 +1,21 @@
+{ cabal, HUnit, mtl, parsec, regexpr, safe, split, time, utf8String
+}:
+
+cabal.mkDerivation (self: {
+  pname = "hledger-lib";
+  version = "0.14";
+  sha256 = "9a6d6ab4383800279e135e9bbcd886e95cea45232d093202c5d43e6edd1f927c";
+  buildDepends = [
+    HUnit mtl parsec regexpr safe split time utf8String
+  ];
+  meta = {
+    homepage = "http://hledger.org";
+    description = "Reusable types and utilities for the hledger accounting tool and financial apps in general";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hledger-vty/default.nix b/pkgs/development/libraries/haskell/hledger-vty/default.nix
new file mode 100644
index 0000000000000..fa9d5ddab34da
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hledger-vty/default.nix
@@ -0,0 +1,20 @@
+{ cabal, hledger, hledgerLib, safe, vty }:
+
+cabal.mkDerivation (self: {
+  pname = "hledger-vty";
+  version = "0.14";
+  sha256 = "3d9972430053548a65bfe5fb39ba374d1c930c6e0cfc704be5c59de742a4287e";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ hledger hledgerLib safe vty ];
+  meta = {
+    homepage = "http://hledger.org";
+    description = "A curses-style interface for the hledger accounting tool";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hledger/default.nix b/pkgs/development/libraries/haskell/hledger/default.nix
new file mode 100644
index 0000000000000..046ca56b33913
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hledger/default.nix
@@ -0,0 +1,25 @@
+{ cabal, csv, haskeline, hledgerLib, HUnit, mtl, parsec, regexpr
+, safe, split, time, utf8String
+}:
+
+cabal.mkDerivation (self: {
+  pname = "hledger";
+  version = "0.14";
+  sha256 = "1bfcb1dcc88d8cec924afbf7aefd1ccf88b7be785b522c1595b75b91f8c82d35";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    csv haskeline hledgerLib HUnit mtl parsec regexpr safe split time
+    utf8String
+  ];
+  meta = {
+    homepage = "http://hledger.org";
+    description = "A robust command-line accounting tool with a simple human-editable data format, similar to ledger";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hmatrix/default.nix b/pkgs/development/libraries/haskell/hmatrix/default.nix
index 5a0ff3e09caa5..bd149b5aa9215 100644
--- a/pkgs/development/libraries/haskell/hmatrix/default.nix
+++ b/pkgs/development/libraries/haskell/hmatrix/default.nix
@@ -1,19 +1,24 @@
-{cabal, QuickCheck, HUnit, storableComplex, gsl, liblapack, blas, vector}:
+{ cabal, binary, blas, gsl, HUnit, liblapack, QuickCheck, random
+, storableComplex, vector
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hmatrix";
-  version = "0.9.3.0";
-  sha256 = "1p2c37j29nxq1ijs78xn7293cwjzgcl6hx8ri5qz7nijifmpcrkr";
-  propagatedBuildInputs = [QuickCheck HUnit storableComplex blas gsl liblapack vector];
-  configureFlags = "-fvector";
-  /* dirty hack to find blas at link time */
-  postConfigure = ''
-    sed -i -e "/^extra-libraries/ s/: /: blas /" hmatrix.buildinfo
-    sed -i -e "/^extra-libraries/ s/$/ blas/" hmatrix.buildinfo
-  '';
-  extraLibDirs = "--extra-lib-dir=${blas}/lib --extra-lib-dir=${gsl}/lib --extra-lib-dir=${liblapack}/lib";
+  version = "0.11.1.0";
+  sha256 = "19915xmf6m2092s1rzwirxy0rwjcr6482y5wg4bil0afm0xjnb9n";
+  buildDepends = [
+    binary HUnit QuickCheck random storableComplex vector
+  ];
+  extraLibraries = [ blas gsl liblapack ];
   meta = {
+    homepage = "http://perception.inf.um.es/hmatrix";
     description = "Linear algebra and numerical computation";
-    maintainers = [ self.stdenv.lib.maintainers.guibert ];
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.guibert
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hopenssl/default.nix b/pkgs/development/libraries/haskell/hopenssl/default.nix
index 7251fe4303daa..fec3f5dccf490 100644
--- a/pkgs/development/libraries/haskell/hopenssl/default.nix
+++ b/pkgs/development/libraries/haskell/hopenssl/default.nix
@@ -1,14 +1,19 @@
-{cabal, mtl, openssl}:
+{ cabal, mtl, openssl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hopenssl";
   version = "1.6.1";
-  sha256 = "12lmhpg7m2amqld95lpv6d2j3rfzgdbmz8jsgh2hjb5hx72l5fkm";
-  propagatedBuildInputs = [mtl];
-  extraBuildInputs = [openssl];
+  sha256 = "75ba42c5e9b02c09057c5aa25f577bdfe5214533fbd2921ac555897ade85958a";
+  buildDepends = [ mtl ];
+  extraLibraries = [ openssl ];
   meta = {
+    homepage = "http://gitorious.org/hopenssl";
     description = "FFI bindings to OpenSSL's EVP digest interface";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/hostname/default.nix b/pkgs/development/libraries/haskell/hostname/default.nix
index 543776e084c8d..69653ca2699ff 100644
--- a/pkgs/development/libraries/haskell/hostname/default.nix
+++ b/pkgs/development/libraries/haskell/hostname/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hostname";
   version = "1.0";
   sha256 = "0p6gm4328946qxc295zb6vhwhf07l1fma82vd0siylnsnsqxlhwv";
   meta = {
     description = "A very simple package providing a cross-platform means of determining the hostname";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/hp2any-core/default.nix b/pkgs/development/libraries/haskell/hp2any-core/default.nix
index b7e7d1da40dcf..8bc4620ac26f0 100644
--- a/pkgs/development/libraries/haskell/hp2any-core/default.nix
+++ b/pkgs/development/libraries/haskell/hp2any-core/default.nix
@@ -1,14 +1,18 @@
-{cabal, bytestringTrie, network}:
+{ cabal, bytestringTrie, network, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hp2any-core";
   version = "0.10.1";
   sha256 = "1qblsvlj4x22ml3k5mlr28r5xk9rmi7lpipd369dbvdzm0rflf03";
-  propagatedBuildInputs = [bytestringTrie network];
+  buildDepends = [ bytestringTrie network time ];
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Hp2any";
     description = "Heap profiling helper library";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/hp2any-graph/default.nix b/pkgs/development/libraries/haskell/hp2any-graph/default.nix
index b0e3d3ddfcde6..4dd915db7d372 100644
--- a/pkgs/development/libraries/haskell/hp2any-graph/default.nix
+++ b/pkgs/development/libraries/haskell/hp2any-graph/default.nix
@@ -1,14 +1,21 @@
-{cabal, GLUT, OpenGL, hp2anyCore, network, parseargs}:
+{ cabal, GLUT, glut, hp2anyCore, network, OpenGL, parseargs }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hp2any-graph";
   version = "0.5.3";
   sha256 = "1al20pxfgkgwynrx7vr0i57342s91lcm3cnd9qjx8b6vkqmzykkq";
-  propagatedBuildInputs = [GLUT OpenGL hp2anyCore network parseargs];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ GLUT hp2anyCore network OpenGL parseargs ];
+  extraLibraries = [ glut ];
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Hp2any";
     description = "Real-time heap graphing utility and profile stream server with a reusable graphing module";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/hs-bibutils/default.nix b/pkgs/development/libraries/haskell/hs-bibutils/default.nix
new file mode 100644
index 0000000000000..ebba81acf4f63
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hs-bibutils/default.nix
@@ -0,0 +1,18 @@
+{ cabal, syb }:
+
+cabal.mkDerivation (self: {
+  pname = "hs-bibutils";
+  version = "4.12";
+  sha256 = "0akxi69as7k5c0955yla9wcl1xvcvgzpzy3p1jj781w1lf89p537";
+  buildDepends = [ syb ];
+  meta = {
+    homepage = "http://code.haskell.org/hs-bibutils";
+    description = "Haskell bindings to bibutils, the bibliography conversion utilities";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hscolour/default.nix b/pkgs/development/libraries/haskell/hscolour/default.nix
index 30d1956268e4f..9992faf048ca2 100644
--- a/pkgs/development/libraries/haskell/hscolour/default.nix
+++ b/pkgs/development/libraries/haskell/hscolour/default.nix
@@ -1,11 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hscolour";
-  version = "1.17"; # Haskell Platform 2011.2.0.0
-  sha256 = "1c14rrw69a5yjni2mdgdm21fsssc3c1j6i4sa7hxl9vq3ggcsidn";
+  version = "1.19";
+  sha256 = "17wzd1b7kd4di7djj8d203rn6r1zvd6rykpxhqv7j06kzgx2r7bz";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://code.haskell.org/~malcolm/hscolour/";
     description = "Colourise Haskell code";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/hsdns/default.nix b/pkgs/development/libraries/haskell/hsdns/default.nix
new file mode 100644
index 0000000000000..2a83df47f090a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hsdns/default.nix
@@ -0,0 +1,20 @@
+{ cabal, adns, network }:
+
+cabal.mkDerivation (self: {
+  pname = "hsdns";
+  version = "1.5";
+  sha256 = "2788d1ad5ef07ae5f356a460fb92316118f3a4d9c779ec27fb8243602bcf6399";
+  buildDepends = [ network ];
+  extraLibraries = [ adns ];
+  noHaddock = true;
+  meta = {
+    homepage = "http://gitorious.org/hsdns";
+    description = "Asynchronous DNS Resolver";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/hsemail/default.nix b/pkgs/development/libraries/haskell/hsemail/default.nix
index f9315e43c3e57..3ba0249c4df28 100644
--- a/pkgs/development/libraries/haskell/hsemail/default.nix
+++ b/pkgs/development/libraries/haskell/hsemail/default.nix
@@ -1,14 +1,18 @@
-{cabal, mtl, parsec}:
+{ cabal, mtl, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hsemail";
-  version = "1.6";
-  sha256 = "a8ba7e8cfb9213bb2ee61166bc8352e4353560d06f418a0c729aeb1d50b3a1fd";
-  propagatedBuildInputs = [mtl parsec];
+  version = "1.7.1";
+  sha256 = "0059015ab93d5facf6060404984a295090ebfc667ae5b84b283163e126805a9e";
+  buildDepends = [ mtl parsec ];
   meta = {
+    homepage = "http://gitorious.org/hsemail";
     description = "Internet Message Parsers";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/hslogger-template/default.nix b/pkgs/development/libraries/haskell/hslogger-template/default.nix
index 79e6ab2a75698..4ee2f0e75df3e 100644
--- a/pkgs/development/libraries/haskell/hslogger-template/default.nix
+++ b/pkgs/development/libraries/haskell/hslogger-template/default.nix
@@ -1,12 +1,17 @@
-{cabal, hslogger, mtl}:
+{ cabal, hslogger, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hslogger-template";
-  version = "1.0.0";
-  sha256 = "0lnscbilzr5avi2h831kv2xhahh7pi5g054bw0sy57a1ccm2pvs1";
-  propagatedBuildInputs = [ hslogger mtl ];
+  version = "2.0.0";
+  sha256 = "1x8c132ckxjhnhlrnm92h0hkalkrgcc91cn73kv9kvcwy9b2fqcr";
+  buildDepends = [ hslogger mtl ];
   meta = {
-    description = "Library for generating hslogger functions using Template Haskell";
+    description = "Automatic generation of hslogger functions";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/hspread/default.nix b/pkgs/development/libraries/haskell/hspread/default.nix
index cab021d152419..c1ee264ea84a3 100644
--- a/pkgs/development/libraries/haskell/hspread/default.nix
+++ b/pkgs/development/libraries/haskell/hspread/default.nix
@@ -1,11 +1,17 @@
-{cabal, binary, network}:
+{ cabal, binary, extensibleExceptions, network }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "hspread";
   version = "0.3.3";
   sha256 = "6e8a9ecc1a6b1cc767aa188e2f4c04b77b321fd14000cac8f71dd6a7b82afbfc";
-  propagatedBuildInputs = [binary network];
+  buildDepends = [ binary extensibleExceptions network ];
   meta = {
     description = "A client library for the spread toolkit";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/hsyslog/default.nix b/pkgs/development/libraries/haskell/hsyslog/default.nix
new file mode 100755
index 0000000000000..baa1906504129
--- /dev/null
+++ b/pkgs/development/libraries/haskell/hsyslog/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "hsyslog";
+  version = "1.4";
+  sha256 = "f3bf4bf47565cb0245afb0e8ffa3f79635b02f0032081845a5999964d828f4db";
+  meta = {
+    homepage = "http://gitorious.org/hsyslog";
+    description = "FFI interface to syslog(3) from POSIX.1-2001.";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/html/1.0.1.2.nix b/pkgs/development/libraries/haskell/html/1.0.1.2.nix
index fa671f934e82c..f420bad2959c2 100644
--- a/pkgs/development/libraries/haskell/html/1.0.1.2.nix
+++ b/pkgs/development/libraries/haskell/html/1.0.1.2.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "html";
-  version = "1.0.1.2"; # Haskell Platform 2009.0.0, 2010.1.0.0, 2010.2.0.0, 2011.2.0.0
+  version = "1.0.1.2";
   sha256 = "0c35495ea33d65e69c69bc7441ec8e1af69fbb43433c2aa3406c0a13a3ab3061";
   meta = {
     description = "HTML combinator library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/http-date/default.nix b/pkgs/development/libraries/haskell/http-date/default.nix
new file mode 100644
index 0000000000000..e7dbaedb591d6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/http-date/default.nix
@@ -0,0 +1,17 @@
+{ cabal, attoparsec }:
+
+cabal.mkDerivation (self: {
+  pname = "http-date";
+  version = "0.0.0";
+  sha256 = "0jia05636xk9k70hqjjiny5298pkb8g7mck7zybfwvigi1fppa46";
+  buildDepends = [ attoparsec ];
+  meta = {
+    description = "HTTP Date parser/formatter";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/http-enumerator/default.nix b/pkgs/development/libraries/haskell/http-enumerator/default.nix
new file mode 100644
index 0000000000000..b92d69ec80ba1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/http-enumerator/default.nix
@@ -0,0 +1,30 @@
+{ cabal, asn1Data, attoparsec, attoparsecEnumerator
+, base64Bytestring, blazeBuilder, blazeBuilderEnumerator
+, caseInsensitive, certificate, cprngAes, enumerator, failure
+, httpTypes, monadControl, network, tls, tlsExtra, transformers
+, utf8String, zlibEnum
+}:
+
+cabal.mkDerivation (self: {
+  pname = "http-enumerator";
+  version = "0.6.7";
+  sha256 = "13x8p0dfaq2nkqh9ym7rbslnacvmdf5v1lpny2cia2im09hd1xbi";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    asn1Data attoparsec attoparsecEnumerator base64Bytestring
+    blazeBuilder blazeBuilderEnumerator caseInsensitive certificate
+    cprngAes enumerator failure httpTypes monadControl network tls
+    tlsExtra transformers utf8String zlibEnum
+  ];
+  meta = {
+    homepage = "http://github.com/snoyberg/http-enumerator";
+    description = "HTTP client package with enumerator interface and HTTPS support";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/http-types/default.nix b/pkgs/development/libraries/haskell/http-types/default.nix
index d8ee2cab1d489..4966803af3652 100644
--- a/pkgs/development/libraries/haskell/http-types/default.nix
+++ b/pkgs/development/libraries/haskell/http-types/default.nix
@@ -1,14 +1,20 @@
-{cabal, blazeBuilder, caseInsensitive, text}:
+{ cabal, blazeBuilder, caseInsensitive, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "http-types";
-  version = "0.6.5";
-  sha256 = "1z2y219170n6rrmmffkg8xa450xzl42zpwahv7m71bxlz4cvxjc1";
-  propagatedBuildInputs = [blazeBuilder caseInsensitive text];
+  version = "0.6.5.1";
+  sha256 = "1gmf5ghfm8hzifinknyk10m7ayxkn48h1l0mchi2vl6h5rg0nnca";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ blazeBuilder caseInsensitive text ];
   meta = {
+    homepage = "https://github.com/aristidb/http-types";
     description = "Generic HTTP types for Haskell (for both client and server code)";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/httpd-shed/default.nix b/pkgs/development/libraries/haskell/httpd-shed/default.nix
index c0a8634d3613c..e56a95437dbe9 100644
--- a/pkgs/development/libraries/haskell/httpd-shed/default.nix
+++ b/pkgs/development/libraries/haskell/httpd-shed/default.nix
@@ -1,12 +1,19 @@
-{cabal, network}:
+{ cabal, network }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "httpd-shed";
   version = "0.4";
   sha256 = "c03f784742bdc3053c7e867e587ee859a9a3adaa082d36bdb2ea69da1b02069f";
-  propagatedBuildInputs = [network];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ network ];
   meta = {
     description = "A simple web-server with an interact style API";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/irc/default.nix b/pkgs/development/libraries/haskell/irc/default.nix
new file mode 100644
index 0000000000000..be3818cb7d855
--- /dev/null
+++ b/pkgs/development/libraries/haskell/irc/default.nix
@@ -0,0 +1,17 @@
+{ cabal, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "irc";
+  version = "0.4.4.2";
+  sha256 = "1bbxlmb6jzz0zw18nr3d6lgd83vi9hrjahfcf1dswc946wi31s97";
+  buildDepends = [ parsec ];
+  meta = {
+    description = "A small library for parsing IRC messages";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/ivor/default.nix b/pkgs/development/libraries/haskell/ivor/default.nix
index fd690e8b91b2e..a7fc6b7e6e11e 100644
--- a/pkgs/development/libraries/haskell/ivor/default.nix
+++ b/pkgs/development/libraries/haskell/ivor/default.nix
@@ -1,14 +1,18 @@
-{cabal, mtl, parsec, binary}:
+{ cabal, binary, mtl, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ivor";
-  version = "0.1.12";
-  sha256 = "77f17df646afbe5199d4ab0291515013ad1bda471b2690512f752b752a2905f5";
-  propagatedBuildInputs = [mtl parsec binary];
+  version = "0.1.14.1";
+  sha256 = "0r9ykfkxpwsrhsvv691r361pf79a7y511hxy2mvd6ysz1441mych";
+  buildDepends = [ binary mtl parsec ];
   meta = {
+    homepage = "http://www.dcs.st-and.ac.uk/~eb/Ivor/";
     description = "Theorem proving library based on dependent type theory";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/jpeg/default.nix b/pkgs/development/libraries/haskell/jpeg/default.nix
index a1f63769cdece..872f2fb394f7f 100644
--- a/pkgs/development/libraries/haskell/jpeg/default.nix
+++ b/pkgs/development/libraries/haskell/jpeg/default.nix
@@ -1,14 +1,17 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "jpeg";
   version = "0.0.1";
   sha256 = "848e047cfec5781a28f472e9cd27d016362211d88dd6adb4f826c37d29d8bba6";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
-    description = "JPEG decompression library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "A library for decoding JPEG files written in pure Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/json/0.3.6.nix b/pkgs/development/libraries/haskell/json/0.3.6.nix
deleted file mode 100644
index 1d644d88a41a1..0000000000000
--- a/pkgs/development/libraries/haskell/json/0.3.6.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, mtl}:
-
-cabal.mkDerivation (self : {
-  pname = "json";
-  version = "0.3.6";
-  sha256 = "05047879ed0c7a9aa168a981e238da94758281af3cb1a1f78a6427322b946fd7";
-  propagatedBuildInputs = [mtl];
-  meta = {
-    description = "Support for serialising Haskell to and from JSON";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/json/default.nix b/pkgs/development/libraries/haskell/json/default.nix
index ce0d150c045b5..a318cf3c5ee1a 100644
--- a/pkgs/development/libraries/haskell/json/default.nix
+++ b/pkgs/development/libraries/haskell/json/default.nix
@@ -1,15 +1,17 @@
-# syb isn't listed by the HackageDB web interface, but is
-# a dependency for Text.JSON.Generic which is only exposed
-# if syb is available.
-{cabal, mtl, syb}:
+{ cabal, mtl, parsec, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "json";
   version = "0.4.4";
   sha256 = "102qmz55b2mgcca3q1c2pkcr6hz7kmpldad3f6blhmp1cz15f081";
-  propagatedBuildInputs = [mtl syb];
+  buildDepends = [ mtl parsec syb ];
   meta = {
     description = "Support for serialising Haskell to and from JSON";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/jsonEnumerator/default.nix b/pkgs/development/libraries/haskell/jsonEnumerator/default.nix
index 4b01a25dcc378..a400382128506 100644
--- a/pkgs/development/libraries/haskell/jsonEnumerator/default.nix
+++ b/pkgs/development/libraries/haskell/jsonEnumerator/default.nix
@@ -1,13 +1,23 @@
-{cabal, blazeBuilder, blazeBuilderEnumerator, enumerator, jsonTypes, text, transformers}:
+{ cabal, blazeBuilder, blazeBuilderEnumerator, enumerator
+, jsonTypes, text, transformers
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "json-enumerator";
   version = "0.0.1.1";
   sha256 = "0k94x9vwwaprqbc8gay5l0vg6hjmjpjp852yncncb8kr0r344z7l";
-  propagatedBuildInputs =
-    [blazeBuilder blazeBuilderEnumerator enumerator jsonTypes text transformers];
+  buildDepends = [
+    blazeBuilder blazeBuilderEnumerator enumerator jsonTypes text
+    transformers
+  ];
   meta = {
-    description = "Provides the ability to render JSON in a streaming manner using the enumerator package";
-    license = "BSD3";
+    homepage = "http://github.com/snoyberg/json-enumerator";
+    description = "Pure-Haskell utilities for dealing with JSON with the enumerator package";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/jsonTypes/default.nix b/pkgs/development/libraries/haskell/jsonTypes/default.nix
index 69c21730c1f47..44be8624a41aa 100644
--- a/pkgs/development/libraries/haskell/jsonTypes/default.nix
+++ b/pkgs/development/libraries/haskell/jsonTypes/default.nix
@@ -1,12 +1,17 @@
-{cabal, text}:
+{ cabal, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "json-types";
   version = "0.1";
   sha256 = "088if9qv0didjyb6y1583viihjgc4nwr61qfjqdg9rzc2ya6vqdn";
-  propagatedBuildInputs = [text];
+  buildDepends = [ text ];
   meta = {
     description = "Basic types for representing JSON";
-    license = "MIT";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/language-haskell-extract/default.nix b/pkgs/development/libraries/haskell/language-haskell-extract/default.nix
new file mode 100644
index 0000000000000..d0ecb017dba73
--- /dev/null
+++ b/pkgs/development/libraries/haskell/language-haskell-extract/default.nix
@@ -0,0 +1,18 @@
+{ cabal, haskellSrcExts, regexPosix }:
+
+cabal.mkDerivation (self: {
+  pname = "language-haskell-extract";
+  version = "0.2.1";
+  sha256 = "0lmg16g3z8cx0vb037bk4j2nr3qvybfcqfsr8l6jk57b2nz3yhbf";
+  buildDepends = [ haskellSrcExts regexPosix ];
+  meta = {
+    homepage = "http://github.com/finnsson/template-helper";
+    description = "Module to automatically extract functions from the local code";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/language-javascript/default.nix b/pkgs/development/libraries/haskell/language-javascript/default.nix
new file mode 100644
index 0000000000000..68f8006d2a97b
--- /dev/null
+++ b/pkgs/development/libraries/haskell/language-javascript/default.nix
@@ -0,0 +1,21 @@
+{ cabal, alex, happy, mtl, utf8Light }:
+
+cabal.mkDerivation (self: {
+  pname = "language-javascript";
+  version = "0.4.5";
+  sha256 = "0rsggjpxsvaipkibhl90qcj2w2i16g53srbb54v0hajx2msmi0ci";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ mtl utf8Light ];
+  buildTools = [ alex happy ];
+  meta = {
+    homepage = "http://github.com/alanz/language-javascript";
+    description = "Parser for JavaScript";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/largeword/default.nix b/pkgs/development/libraries/haskell/largeword/default.nix
new file mode 100644
index 0000000000000..d6716abe55ff0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/largeword/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "largeword";
+  version = "1.0.1";
+  sha256 = "0kkkck220wap3ad2k6461ylhshiqbizv0qh35i2325fhqx892gyr";
+  meta = {
+    homepage = "http://trac.haskell.org/largeword/wiki";
+    description = "Provides Word128, Word192 and Word256 and a way of producing other large words if required";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/leksah/leksah-server.nix b/pkgs/development/libraries/haskell/leksah/leksah-server.nix
index c61b89cbcc567..5f2584cfef5ca 100644
--- a/pkgs/development/libraries/haskell/leksah/leksah-server.nix
+++ b/pkgs/development/libraries/haskell/leksah/leksah-server.nix
@@ -1,15 +1,25 @@
-{cabal, haddock, binary, binaryShared, deepseq, hslogger, ltk, mtl,
- network, parsec, processLeksah}:
+{ cabal, binary, binaryShared, deepseq, haddock, hslogger, ltk, mtl
+, network, parsec, processLeksah, time
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "leksah-server";
-  version = "0.8.0.8";
-  sha256 = "10srf3wzrnyjhw7q8lzzfqammjr9k1fgwqlkkcfkljbmsz9j0nfm";
-  propagatedBuildInputs =
-    [binary binaryShared deepseq hslogger ltk mtl network parsec processLeksah haddock];
+  version = "0.10.0.4";
+  sha256 = "0g523dkiaclk5ym16vzqiabh7mwksjqp0kbx17a899k5gzfwfjp6";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    binary binaryShared deepseq haddock hslogger ltk mtl network parsec
+    processLeksah time
+  ];
   meta = {
-    description = "The interface to GHC-API for leksah";
+    homepage = "http://leksah.org";
+    description = "Metadata collection for leksah";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.stdenv.lib.platforms.linux;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/leksah/process-leksah.nix b/pkgs/development/libraries/haskell/leksah/process-leksah.nix
index a5223233fd4b2..39e62a93d4500 100644
--- a/pkgs/development/libraries/haskell/leksah/process-leksah.nix
+++ b/pkgs/development/libraries/haskell/leksah/process-leksah.nix
@@ -1,12 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "process-leksah";
-  version = "1.0.1.3";
-  sha256 = "1pssbpcslrl39z495gf0v2xjgy2i6qpvxbrf4p0hkvrwycr7pnd8";
+  version = "1.0.1.4";
+  sha256 = "1899ybhnsj22sir2l933lhkk9fpcgjbb4qd6gscnby28qcs5bwbv";
   meta = {
-    description = "This package contains libraries for dealing with system processes";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "Process libraries";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/logfloat/default.nix b/pkgs/development/libraries/haskell/logfloat/default.nix
index 386eb6eb85714..5f438fb406013 100644
--- a/pkgs/development/libraries/haskell/logfloat/default.nix
+++ b/pkgs/development/libraries/haskell/logfloat/default.nix
@@ -1,13 +1,17 @@
-{cabal, deepseq}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "logfloat";
   version = "0.12.1";
   sha256 = "1k13jjqv4df341hcj9hzrlisfx9wrsmyqvzi6ricx341d9z4ch05";
   meta = {
+    homepage = "http://code.haskell.org/~wren/";
     description = "Log-domain floating point numbers";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/ltk/default.nix b/pkgs/development/libraries/haskell/ltk/default.nix
index dd4aaf29a1a22..103c11361e91b 100644
--- a/pkgs/development/libraries/haskell/ltk/default.nix
+++ b/pkgs/development/libraries/haskell/ltk/default.nix
@@ -1,13 +1,18 @@
-{cabal, glib, gtk, haddock, mtl, parsec}:
+{ cabal, glib, gtk, haddock, mtl, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ltk";
-  version = "0.8.0.8";
-  sha256 = "172l3nvvyqqgzy43b7mjxs8vpfw0wlyl993g77zjiy8qbhlcd9mg";
-  propagatedBuildInputs = [glib gtk mtl parsec haddock];
+  version = "0.10.0.4";
+  sha256 = "1dp6dl8a0pfj6lx8n8a2y1j3c2z57k9pf81yr45qsp7wg53d6qhf";
+  buildDepends = [ glib gtk haddock mtl parsec ];
   meta = {
-    description = "UI framework used by leksah";
+    homepage = "http://www.leksah.org";
+    description = "Leksah tool kit";
     license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    platforms = self.stdenv.lib.platforms.linux;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/maybench/default.nix b/pkgs/development/libraries/haskell/maybench/default.nix
deleted file mode 100644
index a1549a5a41772..0000000000000
--- a/pkgs/development/libraries/haskell/maybench/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, benchpress}:
-
-cabal.mkDerivation (self : {
-  pname = "maybench";
-  version = "0.2.4";
-  sha256 = "1g7hby0ffjry60xhs09gf1n848c9n60mjjq7jf94c116x24w1gdd";
-  meta = {
-    description = "Automated benchmarking tool.";
-  };
-  propagatedBuildInputs = [benchpress];
-})
-
diff --git a/pkgs/development/libraries/haskell/mersenne-random-pure64/default.nix b/pkgs/development/libraries/haskell/mersenne-random-pure64/default.nix
index e7e33e39a8660..3153bb6f60860 100644
--- a/pkgs/development/libraries/haskell/mersenne-random-pure64/default.nix
+++ b/pkgs/development/libraries/haskell/mersenne-random-pure64/default.nix
@@ -1,13 +1,18 @@
-{cabal}:
+{ cabal, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "mersenne-random-pure64";
   version = "0.2.0.3";
   sha256 = "0cyjfdl17n5al04vliykx0m7zncqh3201vn9b9fqfqqpmm61grqz";
+  buildDepends = [ random ];
   meta = {
+    homepage = "http://code.haskell.org/~dons/code/mersenne-random-pure64/";
     description = "Generate high quality pseudorandom numbers purely using a Mersenne Twister";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/mime-mail/default.nix b/pkgs/development/libraries/haskell/mime-mail/default.nix
new file mode 100644
index 0000000000000..7651d36aca8f3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/mime-mail/default.nix
@@ -0,0 +1,18 @@
+{ cabal, blazeBuilder, dataenc, random, text }:
+
+cabal.mkDerivation (self: {
+  pname = "mime-mail";
+  version = "0.3.0.3";
+  sha256 = "0aag2mj1jchgwgnlh6hmv9qz78qjxffn1b52nwl6257sk0qv6va6";
+  buildDepends = [ blazeBuilder dataenc random text ];
+  meta = {
+    homepage = "http://github.com/snoyberg/mime-mail";
+    description = "Compose MIME email messages";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/mmap/default.nix b/pkgs/development/libraries/haskell/mmap/default.nix
index cce2e7d1b0925..817cae5229536 100644
--- a/pkgs/development/libraries/haskell/mmap/default.nix
+++ b/pkgs/development/libraries/haskell/mmap/default.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "mmap";
   version = "0.5.7";
   sha256 = "0f08x9kmv3a03kz5a6dpxr30nks55cs9sp55qpn2jnw31qx6hg6p";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
     description = "Memory mapped files for POSIX and Windows";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/monad-control/default.nix b/pkgs/development/libraries/haskell/monad-control/default.nix
index 30a46369df635..b3d9208bd256e 100644
--- a/pkgs/development/libraries/haskell/monad-control/default.nix
+++ b/pkgs/development/libraries/haskell/monad-control/default.nix
@@ -1,14 +1,18 @@
-{cabal, baseUnicodeSymbols, transformers}:
+{ cabal, baseUnicodeSymbols, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "monad-control";
-  version = "0.2.0.1";
-  sha256 = "1pnckk9080g64ipvsg3n1vn4jr1083giacgy58if2ppw3dk7m97k";
-  propagatedBuildInputs = [baseUnicodeSymbols transformers];
+  version = "0.2.0.3";
+  sha256 = "0z7wjilrx6phqs2gxwv65dy1n3mc0j8hj3adshkwy6z8ggj283nh";
+  buildDepends = [ baseUnicodeSymbols transformers ];
   meta = {
+    homepage = "https://github.com/basvandijk/monad-control/";
     description = "Lift control operations, like exception catching, through monad transformers";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/monad-loops/default.nix b/pkgs/development/libraries/haskell/monad-loops/default.nix
index abac15618d581..669df22a95102 100644
--- a/pkgs/development/libraries/haskell/monad-loops/default.nix
+++ b/pkgs/development/libraries/haskell/monad-loops/default.nix
@@ -1,13 +1,18 @@
-{cabal}:
+{ cabal, stm }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "monad-loops";
   version = "0.3.1.1";
   sha256 = "086aqd1x1xc6irp24z1lwhzrknw9r2wbs8fnxz6vyi75m3rqvdcv";
+  buildDepends = [ stm ];
   meta = {
+    homepage = "http://code.haskell.org/~mokus/monad-loops";
     description = "Monadic loops";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/monad-par/default.nix b/pkgs/development/libraries/haskell/monad-par/default.nix
new file mode 100644
index 0000000000000..01d6a40a43327
--- /dev/null
+++ b/pkgs/development/libraries/haskell/monad-par/default.nix
@@ -0,0 +1,18 @@
+{ cabal, deepseq, HUnit }:
+
+cabal.mkDerivation (self: {
+  pname = "monad-par";
+  version = "0.1.0.1";
+  sha256 = "0sd5w09vi12jwzz8xgh51r27577byr6pqp15dw0z5nhf4w869qxq";
+  buildDepends = [ deepseq HUnit ];
+  meta = {
+    homepage = "https://github.com/simonmar/monad-par";
+    description = "A library for parallel programming based on a monad";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/monad-peel/default.nix b/pkgs/development/libraries/haskell/monad-peel/default.nix
index 25be7fb1a1ae2..670b6aaf79b69 100644
--- a/pkgs/development/libraries/haskell/monad-peel/default.nix
+++ b/pkgs/development/libraries/haskell/monad-peel/default.nix
@@ -1,13 +1,18 @@
-{cabal, transformers}:
+{ cabal, extensibleExceptions, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "monad-peel";
   version = "0.1";
   sha256 = "0q56hdjgbj7ykpjx5z8qlqqkngmgm5wzm9vwcd7v675k2ywcl3ys";
-  propagatedBuildInputs = [transformers];
+  buildDepends = [ extensibleExceptions transformers ];
   meta = {
+    homepage = "http://andersk.mit.edu/haskell/monad-peel/";
     description = "Lift control operations like exception catching through monad transformers";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/monadlab/default.nix b/pkgs/development/libraries/haskell/monadlab/default.nix
deleted file mode 100644
index b391e3a749fd2..0000000000000
--- a/pkgs/development/libraries/haskell/monadlab/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal, parsec}:
-
-cabal.mkDerivation (self : {
-  pname = "MonadLab";
-  version = "0.0.1";
-  sha256 = "06fdfkm79653s08ykcf3gl84cf2jl7h3vj00jv3khji5448fwsaw";
-  meta = {
-    description = "Automatically generate layered monads.";
-  };
-  propagatedBuildInputs = [parsec];
-})
diff --git a/pkgs/development/libraries/haskell/monads-fd/default.nix b/pkgs/development/libraries/haskell/monads-fd/default.nix
deleted file mode 100644
index e2981063135c9..0000000000000
--- a/pkgs/development/libraries/haskell/monads-fd/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, transformers}:
-
-cabal.mkDerivation (self : {
-  pname = "monads-fd";
-  version = "0.0.0.1";
-  sha256 = "7eaac97b2c91a670171f18ebeb3f73b1a45e16576851279f73ea2e1f5ec63b25";
-  propagatedBuildInputs = [transformers];
-  meta = {
-    description = "Monad classes, using functional dependencies";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/mpppc/default.nix b/pkgs/development/libraries/haskell/mpppc/default.nix
index fd841dd6d8871..31dd91a2d2f8b 100644
--- a/pkgs/development/libraries/haskell/mpppc/default.nix
+++ b/pkgs/development/libraries/haskell/mpppc/default.nix
@@ -1,12 +1,17 @@
-{cabal, ansiTerminal, split, text}:
+{ cabal, ansiTerminal, split, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "mpppc";
-  version = "0.1.0";
-  sha256 = "73796138cc10df77217568d59fb999567436bedefaa8579ed6648c6cfb841c86";
-  propagatedBuildInputs = [ansiTerminal split text];
+  version = "0.1.2";
+  sha256 = "1zms71wx5a6rd60xy1pv6g1kxlx0hzh36pbr5a5lkfflc583z1k5";
+  buildDepends = [ ansiTerminal split text ];
   meta = {
     description = "Multi-dimensional parametric pretty-printer with color";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/mtl/1.1.0.2.nix b/pkgs/development/libraries/haskell/mtl/1.1.0.2.nix
index 6fcdb41e3f1bd..d609fc75cd780 100644
--- a/pkgs/development/libraries/haskell/mtl/1.1.0.2.nix
+++ b/pkgs/development/libraries/haskell/mtl/1.1.0.2.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "mtl";
-  version = "1.1.0.2"; # Haskell Platform 2009.0.0 and 2010.1.0.0 and 2010.2.0.0
+  version = "1.1.0.2";
   sha256 = "a225aaf2b1e337f40c31e5c42f95eec9a4608322b0e4c135d2b31b8421a58d36";
   meta = {
     description = "Monad transformer library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/mtl/1.1.1.1.nix b/pkgs/development/libraries/haskell/mtl/1.1.1.1.nix
index 174df4bda495e..05e84b90dd078 100644
--- a/pkgs/development/libraries/haskell/mtl/1.1.1.1.nix
+++ b/pkgs/development/libraries/haskell/mtl/1.1.1.1.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "mtl";
-  version = "1.1.1.1"; # version of mtl1 compatible with ghc7
+  version = "1.1.1.1";
   sha256 = "157gbrgrg0l9r72nq45dkach53yncysif4qglsaql28g37djc4x6";
   meta = {
     description = "Monad transformer library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/mtl/2.0.1.0.nix b/pkgs/development/libraries/haskell/mtl/2.0.1.0.nix
index dc55078d0fc2a..dc2ddedc121e2 100644
--- a/pkgs/development/libraries/haskell/mtl/2.0.1.0.nix
+++ b/pkgs/development/libraries/haskell/mtl/2.0.1.0.nix
@@ -1,12 +1,17 @@
-{cabal, transformers}:
+{ cabal, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "mtl";
-  version = "2.0.1.0"; # Haskell Platform 2011.2.0.0
+  version = "2.0.1.0";
   sha256 = "1w6jpzyl08mringnd6gxwcl3y9q506r240vm1sv0aacml1hy8szk";
-  propagatedBuildInputs = [transformers];
+  buildDepends = [ transformers ];
   meta = {
-    description = "Monad transformer library";
+    description = "Monad classes, using functional dependencies";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/mtlparse/default.nix b/pkgs/development/libraries/haskell/mtlparse/default.nix
new file mode 100644
index 0000000000000..349fea712eba5
--- /dev/null
+++ b/pkgs/development/libraries/haskell/mtlparse/default.nix
@@ -0,0 +1,18 @@
+{ cabal, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "mtlparse";
+  version = "0.1.2";
+  sha256 = "cd85d985e4eff842b1c053a2ff507094a20995c5757acc06ea34ff07d9edd142";
+  buildDepends = [ mtl ];
+  meta = {
+    homepage = "http://homepage3.nifty.com/salamander/second/projects/mtlparse/";
+    description = "parse library using mtl package";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/multiplate/default.nix b/pkgs/development/libraries/haskell/multiplate/default.nix
index 8338d07ef3fa8..13059f0183e37 100644
--- a/pkgs/development/libraries/haskell/multiplate/default.nix
+++ b/pkgs/development/libraries/haskell/multiplate/default.nix
@@ -1,14 +1,18 @@
-{cabal, transformers}:
+{ cabal, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "multiplate";
-  version = "0.0.1";
-  sha256 = "06bdj0r83arxxl6vqif9dmna140qcgvjizcyhvyqymsid605hrp4";
-  propagatedBuildInputs = [transformers];
+  version = "0.0.1.1";
+  sha256 = "00rxgkvgx1rfvk15gjyyg00vqyg4j24d8d19q6rj07j2mgfvdxw6";
+  buildDepends = [ transformers ];
   meta = {
-    description = "Lightweight generic library for mutually recursive datatypes";
-    license = "MIT";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://haskell.org/haskellwiki/Multiplate";
+    description = "Lightweight generic library for mutually recursive data types";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/multirec/0.5.1.nix b/pkgs/development/libraries/haskell/multirec/0.5.1.nix
new file mode 100644
index 0000000000000..3e994f878cc64
--- /dev/null
+++ b/pkgs/development/libraries/haskell/multirec/0.5.1.nix
@@ -0,0 +1,18 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "multirec";
+  version = "0.5.1";
+  sha256 = "0y62gb2ml0799a3f1ny5ydjc4rjwj1dgs48f5fj6hf2fpl4hk02l";
+  noHaddock = true;
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/Multirec";
+    description = "Generic programming for families of recursive datatypes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/multirec/0.6.nix b/pkgs/development/libraries/haskell/multirec/0.6.nix
new file mode 100644
index 0000000000000..6fb6acd58ed35
--- /dev/null
+++ b/pkgs/development/libraries/haskell/multirec/0.6.nix
@@ -0,0 +1,18 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "multirec";
+  version = "0.6";
+  sha256 = "1k0icyz9i4hc5vfpwrv42l3q4lrnsb1bswhyyv63d9azffn5flys";
+  noHaddock = true;
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/Multirec";
+    description = "Generic programming for families of recursive datatypes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/multirec/default.nix b/pkgs/development/libraries/haskell/multirec/default.nix
deleted file mode 100644
index f30caeb2fb146..0000000000000
--- a/pkgs/development/libraries/haskell/multirec/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal}:
-
-cabal.mkDerivation (self : {
-  pname = "multirec";
-  version = "0.5";
-  sha256 = "1nrfbiy5g51cpaqqi1adrr32x74wjjvplyyrphvzf4rxhnhj3xpw";
-  noHaddock = true; # don't know why Haddock causes an error
-  meta = {
-    description = "Generic programming with systems of recursive datatypes";
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/multiset/default.nix b/pkgs/development/libraries/haskell/multiset/default.nix
index 5850e0ce94777..eb5df93d5bca6 100644
--- a/pkgs/development/libraries/haskell/multiset/default.nix
+++ b/pkgs/development/libraries/haskell/multiset/default.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "multiset";
-  version = "0.2";
-  sha256 = "35d76c026bab0dbdf761c8590297d718507bb9ef93c30bce4f524efee23f5323";
+  version = "0.2.1";
+  sha256 = "0snlm6s9ikf5gngdwb7rm7v6017f5bffajv6777y56pjmd7bk9sy";
   meta = {
-    description = "A variation of Data.Set. Multisets, sometimes also called bags, can contain multiple copies of the same key";
+    description = "The Data.MultiSet container type";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/murmur-hash/default.nix b/pkgs/development/libraries/haskell/murmur-hash/default.nix
index 30eb3dc16577c..468c18f9051ae 100644
--- a/pkgs/development/libraries/haskell/murmur-hash/default.nix
+++ b/pkgs/development/libraries/haskell/murmur-hash/default.nix
@@ -1,12 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "murmur-hash";
-  version = "0.1.0.2";
-  sha256 = "14amqkcz2dbjyjrsjblsnka8qymllbzjx5x3za58kwlcifnsq9jr";
+  version = "0.1.0.4";
+  sha256 = "08nvdv3r5scqpdcivwp0d77dl4vpkgq58rzxv1xpb8r1krqy588d";
   meta = {
+    homepage = "http://github.com/nominolo/murmur-hash";
     description = "MurmurHash2 implementation for Haskell";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/mwc-random/default.nix b/pkgs/development/libraries/haskell/mwc-random/default.nix
index c537625d6cfa0..ab762c2db63b7 100644
--- a/pkgs/development/libraries/haskell/mwc-random/default.nix
+++ b/pkgs/development/libraries/haskell/mwc-random/default.nix
@@ -1,14 +1,18 @@
-{cabal, primitive, vector}:
+{ cabal, primitive, time, vector }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "mwc-random";
-  version = "0.8.0.3";
-  sha256 = "1sjjayfhfkfixcwdp21cfqld9pjikdsvlb956c1a7hcs82b68xp3";
-  propagatedBuildInputs = [primitive vector];
+  version = "0.10.0.1";
+  sha256 = "0mmkl90rf57f2rxg3y2nibd37l9mwr2j4c71bwyvxqzfk7cylw9b";
+  buildDepends = [ primitive time vector ];
   meta = {
+    homepage = "https://github.com/bos/mwc-random";
     description = "Fast, high quality pseudo random number generation";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/neither/default.nix b/pkgs/development/libraries/haskell/neither/default.nix
index c02474f8d98e0..6bea3c1084493 100644
--- a/pkgs/development/libraries/haskell/neither/default.nix
+++ b/pkgs/development/libraries/haskell/neither/default.nix
@@ -1,15 +1,18 @@
-{cabal, failure, monadPeel, transformers}:
+{ cabal, failure, monadPeel, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "neither";
   version = "0.2.0";
   sha256 = "0a2lyx3dvgzj4g6p69x1fma4rmwxrykji3hc4diqgc4hx02p16jh";
-  propagatedBuildInputs = [
-    failure monadPeel transformers
-  ];
+  buildDepends = [ failure monadPeel transformers ];
   meta = {
-    description = "A simple type class for success/failure computations";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://github.com/snoyberg/neither";
+    description = "Provide versions of Either with good monad and applicative instances";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/network/2.2.1.4.nix b/pkgs/development/libraries/haskell/network/2.2.1.4.nix
index 09dd52264337c..7d99df9ee1c85 100644
--- a/pkgs/development/libraries/haskell/network/2.2.1.4.nix
+++ b/pkgs/development/libraries/haskell/network/2.2.1.4.nix
@@ -1,12 +1,17 @@
-{cabal, parsec}:
+{ cabal, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "network";
-  version = "2.2.1.4"; # Haskell Platform 2009.2.0.2
+  version = "2.2.1.4";
   sha256 = "16a842bee5db116f754b459ef261426b6705a6d79383c6d545c9df5f6329cd25";
-  propagatedBuildInputs = [parsec];
+  buildDepends = [ parsec ];
   meta = {
     description = "Networking-related facilities";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/network/2.2.1.7.nix b/pkgs/development/libraries/haskell/network/2.2.1.7.nix
index 8074f38825dff..ba33bc36643b5 100644
--- a/pkgs/development/libraries/haskell/network/2.2.1.7.nix
+++ b/pkgs/development/libraries/haskell/network/2.2.1.7.nix
@@ -1,12 +1,17 @@
-{cabal, parsec}:
+{ cabal, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "network";
-  version = "2.2.1.7"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
+  version = "2.2.1.7";
   sha256 = "0e65b28a60764245c1ab6661a3566f286feb36e0e6f0296d6cd2b84adcd45d58";
-  propagatedBuildInputs = [parsec];
+  buildDepends = [ parsec ];
   meta = {
     description = "Networking-related facilities";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/network/2.3.0.2.nix b/pkgs/development/libraries/haskell/network/2.3.0.2.nix
index 17b8af706727b..9d2642a487d24 100644
--- a/pkgs/development/libraries/haskell/network/2.3.0.2.nix
+++ b/pkgs/development/libraries/haskell/network/2.3.0.2.nix
@@ -1,12 +1,18 @@
-{cabal, parsec}:
+{ cabal, parsec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "network";
-  version = "2.3.0.2"; # Haskell Platform 2011.2.0.0
+  version = "2.3.0.2";
   sha256 = "1s4hm0ilsd67ircrl0h5b72kwrw1imb3cj5z52h99bv7qjdbag03";
-  propagatedBuildInputs = [parsec];
+  buildDepends = [ parsec ];
   meta = {
-    description = "Networking-related facilities";
+    homepage = "http://github.com/haskell/network";
+    description = "Low-level networking interface";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/network/2.3.0.5.nix b/pkgs/development/libraries/haskell/network/2.3.0.5.nix
new file mode 100644
index 0000000000000..bf9330eb256a1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/network/2.3.0.5.nix
@@ -0,0 +1,18 @@
+{ cabal, parsec }:
+
+cabal.mkDerivation (self: {
+  pname = "network";
+  version = "2.3.0.5";
+  sha256 = "0y1sbgsffzr0skm6xl8907iclgw9vmf395zvpwgakp69i3snh1z0";
+  buildDepends = [ parsec ];
+  meta = {
+    homepage = "http://github.com/haskell/network";
+    description = "Low-level networking interface";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/nixos-types/default.nix b/pkgs/development/libraries/haskell/nixos-types/default.nix
new file mode 100644
index 0000000000000..b63f8a9fbdc1c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/nixos-types/default.nix
@@ -0,0 +1,18 @@
+{ cabal, regexPosix }:
+
+cabal.mkDerivation (self: {
+  pname = "nixos-types";
+  version = "1.1";
+  sha256 = "0vnlhq2pjnslq1h9h3lyaxw604s3zdhs7k8hfr35m178rdm3a5az";
+  buildDepends = [ regexPosix ];
+  meta = {
+    homepage = "http://github.com/haskell4nix/nixos-types";
+    description = "Data types representing the Nix language";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/non-negative/default.nix b/pkgs/development/libraries/haskell/non-negative/default.nix
index 32d6a629389ae..934bb76dcd421 100644
--- a/pkgs/development/libraries/haskell/non-negative/default.nix
+++ b/pkgs/development/libraries/haskell/non-negative/default.nix
@@ -1,12 +1,20 @@
-{cabal, QuickCheck}:
+{ cabal, QuickCheck, utilityHt }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "non-negative";
-  version = "0.0.4";
-  sha256 = "0b82b7be086c8d4e493d606098d82c2e5d943fe76d18a5eb6836c449ba19fc6f";
-  propagatedBuildInputs = [QuickCheck];
+  version = "0.1";
+  sha256 = "0aebb6f5518191a02b11230798444997a03b84d63d2aaa6c38cac6718f6c351c";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ QuickCheck utilityHt ];
   meta = {
+    homepage = "http://code.haskell.org/~thielema/non-negative/";
     description = "Non-negative numbers";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/numeric-prelude/default.nix b/pkgs/development/libraries/haskell/numeric-prelude/default.nix
index 409a5b3e26891..c420d2677705a 100644
--- a/pkgs/development/libraries/haskell/numeric-prelude/default.nix
+++ b/pkgs/development/libraries/haskell/numeric-prelude/default.nix
@@ -1,12 +1,24 @@
-{cabal, HUnit, QuickCheck, parsec, nonNegative, utilityHt}:
+{ cabal, nonNegative, parsec, QuickCheck, random, storableRecord
+, utilityHt
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "numeric-prelude";
-  version = "0.1";
-  sha256 = "01de33ea483808704f6d2c635763fcbff3abe12db8035c6640124eb8486b6efb";
-  propagatedBuildInputs = [HUnit QuickCheck parsec nonNegative utilityHt];
+  version = "0.2.2";
+  sha256 = "bc6adb8c2f04e0e1f62e183e052974700143dc93b1a3cbafe3562aa1f7a649fd";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    nonNegative parsec QuickCheck random storableRecord utilityHt
+  ];
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Numeric_Prelude";
     description = "An experimental alternative hierarchy of numeric type classes";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/numtype/default.nix b/pkgs/development/libraries/haskell/numtype/default.nix
new file mode 100644
index 0000000000000..b55e0c50b4b3e
--- /dev/null
+++ b/pkgs/development/libraries/haskell/numtype/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "numtype";
+  version = "1.0";
+  sha256 = "2606e81d7bcef0ba76b1e6ffc8d513c36fef5fefaab3bdd02da18761ec504e1f";
+  meta = {
+    homepage = "http://dimensional.googlecode.com/";
+    description = "Type-level (low cardinality) integers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/pandoc-types/default.nix b/pkgs/development/libraries/haskell/pandoc-types/default.nix
index dca729dc50c34..6d5720658ceb8 100644
--- a/pkgs/development/libraries/haskell/pandoc-types/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc-types/default.nix
@@ -1,11 +1,18 @@
-{cabal, syb}:
+{ cabal, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pandoc-types";
-  version = "1.8";
-  sha256 = "1ikr1dmmdag31hgcswrnhzqacv4kl7z6dc8za2cjdq0cpd2mla98";
-  propagatedBuildInputs = [syb];
+  version = "1.8.2";
+  sha256 = "04whkqld2pnfz25i9rcq7d4pi9zkn6c1rpz95vdlg9r5xkhhnn3a";
+  buildDepends = [ syb ];
   meta = {
+    homepage = "http://johnmacfarlane.net/pandoc";
     description = "Types for representing a structured document";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/pandoc/default.nix b/pkgs/development/libraries/haskell/pandoc/default.nix
index e5865a1356af8..455baa9ee1d33 100644
--- a/pkgs/development/libraries/haskell/pandoc/default.nix
+++ b/pkgs/development/libraries/haskell/pandoc/default.nix
@@ -1,12 +1,28 @@
-{cabal, HTTP, citeprocHs, dlist, tagsoup, texmath, xhtml, zipArchive}:
+{ cabal, base64Bytestring, citeprocHs, dlist, extensibleExceptions
+, highlightingKate, HTTP, json, mtl, network, pandocTypes, parsec
+, random, syb, tagsoup, texmath, utf8String, xhtml, xml, zipArchive
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pandoc";
-  version = "1.8.1.1";
-  sha256 = "0g680j8x3v19wcb9k2dxgrdrjr48w0vhvlspfzgw0sgzrgfmaqsj";
-  propagatedBuildInputs =
-    [HTTP citeprocHs dlist tagsoup texmath xhtml zipArchive];
+  version = "1.8.2.1";
+  sha256 = "0cwly0j2rj46h654iwl04l6jkhk6rrhynqvrdnq47067n9vm60pi";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    base64Bytestring citeprocHs dlist extensibleExceptions
+    highlightingKate HTTP json mtl network pandocTypes parsec random
+    syb tagsoup texmath utf8String xhtml xml zipArchive
+  ];
+  configureFlags = "-fhighlighting -fthreaded";
   meta = {
+    homepage = "http://johnmacfarlane.net/pandoc";
     description = "Conversion between markup formats";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/pango/default.nix b/pkgs/development/libraries/haskell/pango/default.nix
index 97700106b17ad..aff6bdb731571 100644
--- a/pkgs/development/libraries/haskell/pango/default.nix
+++ b/pkgs/development/libraries/haskell/pango/default.nix
@@ -1,14 +1,23 @@
-{cabal, cairo, glib, mtl, gtk2hsBuildtools, pkgconfig, pango, glibc}:
+{ cabal, cairo, glib, glibc, gtk2hsBuildtools, mtl, pango
+, pkgconfig
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pango";
   version = "0.12.0";
   sha256 = "1vp0hl4kpgcc3xphml1hmy04hqcn12y0ks03nn32g6g33ni9mwrb";
-  extraBuildInputs = [pkgconfig gtk2hsBuildtools pango glibc];
-  propagatedBuildInputs = [cairo glib mtl];
+  buildDepends = [ cairo glib mtl ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc pkgconfig ];
+  pkgconfigDepends = [ cairo pango ];
   meta = {
+    homepage = "http://www.haskell.org/gtk2hs/";
     description = "Binding to the Pango text rendering engine";
-    license = "LGPLv2+";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.lgpl21;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/parallel/1.1.0.1.nix b/pkgs/development/libraries/haskell/parallel/1.1.0.1.nix
index 5cd693f504845..2977a60964cf9 100644
--- a/pkgs/development/libraries/haskell/parallel/1.1.0.1.nix
+++ b/pkgs/development/libraries/haskell/parallel/1.1.0.1.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parallel";
-  version = "1.1.0.1"; # Haskell Platform 2009.0.0
+  version = "1.1.0.1";
   sha256 = "0885086660268f3626effacb29a02b5c81f3e5a8dfa99dabe0981ddbc407999f";
   meta = {
     description = "parallel programming library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/parallel/2.2.0.1.nix b/pkgs/development/libraries/haskell/parallel/2.2.0.1.nix
index aca8f99616ee8..185e86b02e89d 100644
--- a/pkgs/development/libraries/haskell/parallel/2.2.0.1.nix
+++ b/pkgs/development/libraries/haskell/parallel/2.2.0.1.nix
@@ -1,12 +1,17 @@
-{cabal, deepseq}:
+{ cabal, deepseq }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parallel";
-  version = "2.2.0.1"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
+  version = "2.2.0.1";
   sha256 = "255310023138ecf618c8b450203fa2fc65feb68cd08ee4d369ceae72054168fd";
-  propagatedBuildInputs = [deepseq];
+  buildDepends = [ deepseq ];
   meta = {
-    description = "parallel programming library";
+    description = "Parallel programming library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/parallel/3.1.0.1.nix b/pkgs/development/libraries/haskell/parallel/3.1.0.1.nix
index 8cd55d4bed1e3..37d537185cb60 100644
--- a/pkgs/development/libraries/haskell/parallel/3.1.0.1.nix
+++ b/pkgs/development/libraries/haskell/parallel/3.1.0.1.nix
@@ -1,12 +1,17 @@
-{cabal, deepseq}:
+{ cabal, deepseq }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parallel";
-  version = "3.1.0.1"; # Haskell Platform 2011.2.0.0
+  version = "3.1.0.1";
   sha256 = "0j03i5467iyz98fl4fnzlwrr93j2as733kbrxnlcgyh455kb89ns";
-  propagatedBuildInputs = [deepseq];
+  buildDepends = [ deepseq ];
   meta = {
-    description = "parallel programming library";
+    description = "Parallel programming library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/parseargs/default.nix b/pkgs/development/libraries/haskell/parseargs/default.nix
index 08a5ac652e575..4f50be5f70051 100644
--- a/pkgs/development/libraries/haskell/parseargs/default.nix
+++ b/pkgs/development/libraries/haskell/parseargs/default.nix
@@ -1,10 +1,19 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parseargs";
   version = "0.1.3.2";
   sha256 = "1ncdbjzfkhb1f3aznsci26kss9nrv3iilc65q5xdl9nly8p837mv";
+  isLibrary = true;
+  isExecutable = true;
   meta = {
+    homepage = "http://wiki.cs.pdx.edu/bartforge/parseargs";
     description = "Command-line argument parsing library for Haskell programs";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/parsec/2.1.0.1.nix b/pkgs/development/libraries/haskell/parsec/2.1.0.1.nix
index 0d473fd122e75..155e4f09007c9 100644
--- a/pkgs/development/libraries/haskell/parsec/2.1.0.1.nix
+++ b/pkgs/development/libraries/haskell/parsec/2.1.0.1.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parsec";
-  version = "2.1.0.1"; # Haskell Platform 2009.0.0 and 2010.1.0.0 and 2010.2.0.0
+  version = "2.1.0.1";
   sha256 = "2d85e5b5c8b2b1f341037ce67e1db7fa47b31c083136796cfef9e5b945c656df";
   meta = {
+    homepage = "http://www.cs.uu.nl/~daan/parsec.html";
     description = "Monadic parser combinators";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/parsec/3.1.1.nix b/pkgs/development/libraries/haskell/parsec/3.1.1.nix
index 5c5450333985d..e740ca91dba26 100644
--- a/pkgs/development/libraries/haskell/parsec/3.1.1.nix
+++ b/pkgs/development/libraries/haskell/parsec/3.1.1.nix
@@ -1,14 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parsec";
-  version = "3.1.1"; # Haskell Platform 2011.2.0.0
+  version = "3.1.1";
   sha256 = "0x34gwn9k68h69c3hw7yaah6zpdwq8hvqss27f3n4n4cp7dh81fk";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
-    license = "BSD";
+    homepage = "http://www.cs.uu.nl/~daan/parsec.html";
     description = "Monadic parser combinators";
-    maintainer = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/parsimony/default.nix b/pkgs/development/libraries/haskell/parsimony/default.nix
index 95962a4f475de..70709c978b973 100644
--- a/pkgs/development/libraries/haskell/parsimony/default.nix
+++ b/pkgs/development/libraries/haskell/parsimony/default.nix
@@ -1,12 +1,17 @@
-{cabal, utf8String}:
+{ cabal, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "parsimony";
-  version = "1";
-  sha256 = "8196029dc346470301f4535f678724412060a0aafd81b017211b57635a25a378";
-  propagatedBuildInputs = [utf8String];
+  version = "1.1";
+  sha256 = "0476zmsjyjf58lh85806baqblq8hjxcrrnqc6ddxxq17lmvsd5ic";
+  buildDepends = [ utf8String ];
   meta = {
     description = "Monadic parser combinators derived from Parsec";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/path-pieces/default.nix b/pkgs/development/libraries/haskell/path-pieces/default.nix
new file mode 100755
index 0000000000000..6230ac2e8a363
--- /dev/null
+++ b/pkgs/development/libraries/haskell/path-pieces/default.nix
@@ -0,0 +1,18 @@
+{ cabal, text }:
+
+cabal.mkDerivation (self: {
+  pname = "path-pieces";
+  version = "0.0.0";
+  sha256 = "09sk4wlzy37gaii7spisjy4a3pizis9si4kv389bki20gfwpaivf";
+  buildDepends = [ text ];
+  meta = {
+    homepage = "http://github.com/snoyberg/path-pieces";
+    description = "Components of paths";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/pathtype/default.nix b/pkgs/development/libraries/haskell/pathtype/default.nix
index d073f3d9290ca..8c776e68b1a6a 100644
--- a/pkgs/development/libraries/haskell/pathtype/default.nix
+++ b/pkgs/development/libraries/haskell/pathtype/default.nix
@@ -1,13 +1,18 @@
-{cabal, QuickCheck2}:
+{ cabal, QuickCheck }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pathtype";
   version = "0.5.2";
   sha256 = "0rbmq6kzz2l07q9a5k888scpn62hnw2hmzz4ysprhfgdnn5b2cvi";
-  propagatedBuildInputs = [QuickCheck2];
+  buildDepends = [ QuickCheck ];
   meta = {
-    license = "BSD";
-    description = "Type-safe file path manipulations";
-    maintainer = [self.stdenv.lib.maintainers.simons];
+    homepage = "http://code.haskell.org/pathtype";
+    description = "Type-safe replacement for System.FilePath etc";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/pcre-light/default.nix b/pkgs/development/libraries/haskell/pcre-light/default.nix
index 12e86377a5f71..3336b8f1c8a4f 100644
--- a/pkgs/development/libraries/haskell/pcre-light/default.nix
+++ b/pkgs/development/libraries/haskell/pcre-light/default.nix
@@ -1,12 +1,18 @@
-{cabal, pcre}:
+{ cabal, pcre }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pcre-light";
   version = "0.4";
   sha256 = "1xiikiap1bvx9czw64664vifdq64scx0yhfclh5m8mkvn3x6yzxk";
-  propagatedBuildInputs = [pcre];
+  extraLibraries = [ pcre ];
   meta = {
+    homepage = "http://code.haskell.org/~dons/code/pcre-light";
     description = "A small, efficient and portable regex library for Perl 5 compatible regular expressions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/persistent-template/default.nix b/pkgs/development/libraries/haskell/persistent-template/default.nix
index 9b41f8e0396db..8f0e3263ed745 100644
--- a/pkgs/development/libraries/haskell/persistent-template/default.nix
+++ b/pkgs/development/libraries/haskell/persistent-template/default.nix
@@ -1,14 +1,18 @@
-{cabal, monadControl, persistent, text, webRoutesQuasi}:
+{ cabal, monadControl, persistent, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "persistent-template";
-  version = "0.5.1";
-  sha256 = "163j36pm6fl64m4h8kgj9h19snh026ia1166p3c6rjw86qi9fk0r";
-  propagatedBuildInputs = [monadControl persistent text webRoutesQuasi];
+  version = "0.6.1";
+  sha256 = "1ggfdq1d32i5ny57cvdf8yw5pwhbw2sc31mrj1whb0ggkcwaqh9l";
+  buildDepends = [ monadControl persistent text ];
   meta = {
+    homepage = "http://www.yesodweb.com/book/persistent";
     description = "Type-safe, non-relational, multi-backend persistence";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/persistent/default.nix b/pkgs/development/libraries/haskell/persistent/default.nix
index cc093dddfa351..a3ce3564a5241 100644
--- a/pkgs/development/libraries/haskell/persistent/default.nix
+++ b/pkgs/development/libraries/haskell/persistent/default.nix
@@ -1,15 +1,24 @@
-{cabal, blazeHtml, enumerator, monadControl, parsec, pool, text, transformers}:
+{ cabal, blazeHtml, enumerator, monadControl, mtl, parsec
+, pathPieces, pool, sqlite, text, time, transformers
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "persistent";
-  version = "0.5.1";
-  sha256 = "1m0558vi99z15q0w62a9rkz25n8djswggbad9m0il359jb3mrzsd";
-  propagatedBuildInputs = [
-    blazeHtml enumerator monadControl parsec pool text transformers
+  version = "0.6.1";
+  sha256 = "1pb34n7rwj6jvk18c802kd99rrlhrav1hkx600rs6pp5zjic3mp7";
+  buildDepends = [
+    blazeHtml enumerator monadControl mtl parsec pathPieces pool text
+    time transformers
   ];
+  extraLibraries = [ sqlite ];
   meta = {
+    homepage = "http://www.yesodweb.com/book/persistent";
     description = "Type-safe, non-relational, multi-backend persistence";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/polyparse/default.nix b/pkgs/development/libraries/haskell/polyparse/default.nix
index e05ba114938ef..b27dc9cc69529 100644
--- a/pkgs/development/libraries/haskell/polyparse/default.nix
+++ b/pkgs/development/libraries/haskell/polyparse/default.nix
@@ -1,11 +1,18 @@
-{cabal}:
+{ cabal, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "polyparse";
-  version = "1.4";
-  sha256 = "6e599fb0771e8ce2e1d3a3bbe5eddc2d77b2b4bbb54602f01005dc55dc039d44";
+  version = "1.7";
+  sha256 = "de8ed0ce54f1f81bb0783dd97b7b22eca28df4a238684a26b37c5af2d17a364b";
+  buildDepends = [ text ];
   meta = {
+    homepage = "http://code.haskell.org/~malcolm/polyparse/";
     description = "A variety of alternative parser combinator libraries";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/pool/default.nix b/pkgs/development/libraries/haskell/pool/default.nix
index 87dcecb358896..51befe00ce475 100644
--- a/pkgs/development/libraries/haskell/pool/default.nix
+++ b/pkgs/development/libraries/haskell/pool/default.nix
@@ -1,14 +1,18 @@
-{cabal, monadControl, stm, transformers}:
+{ cabal, monadControl, transformers }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pool";
-  version = "0.1.0.2";
-  sha256 = "1w2z3p3iriw43g655rhd5b70r3cbzl4jf8bybyk5d04x6mcg3wfq";
-  propagatedBuildInputs = [monadControl stm transformers];
+  version = "0.1.1";
+  sha256 = "0h498pi7048m4cida10s28dp9f8c2ig3m4s9chwrfw3yiyai926l";
+  buildDepends = [ monadControl transformers ];
   meta = {
+    homepage = "http://www.yesodweb.com/book/persistent";
     description = "Thread-safe resource pools";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/ppm/default.nix b/pkgs/development/libraries/haskell/ppm/default.nix
index e3cfd77bbdb49..df204fa2482fc 100644
--- a/pkgs/development/libraries/haskell/ppm/default.nix
+++ b/pkgs/development/libraries/haskell/ppm/default.nix
@@ -1,13 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ppm";
   version = "2009.5.13";
   sha256 = "9e390ca9a9e6e740fa71d2b72fa2c9c3d521118b0ebb35f10fabbbe543ecfb5b";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
-    license = "BSD";
+    homepage = "http://github.com/nfjinjing/ppm/tree/master";
     description = "a tiny PPM image generator";
-    maintainer = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/pretty-show/default.nix b/pkgs/development/libraries/haskell/pretty-show/default.nix
index 10db565fa97ac..deb9e731ebda7 100644
--- a/pkgs/development/libraries/haskell/pretty-show/default.nix
+++ b/pkgs/development/libraries/haskell/pretty-show/default.nix
@@ -1,14 +1,20 @@
-{cabal, haskellLexer}:
+{ cabal, haskellLexer }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pretty-show";
   version = "1.1.1";
   sha256 = "0w6r68l1452vh9aqnlh4066y62h8ylh45gbsl5l558wjgchlna5k";
-  propagatedBuildInputs = [haskellLexer];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ haskellLexer ];
   meta = {
+    homepage = "http://wiki.github.com/yav/pretty-show";
     description = "Tools for working with derived Show instances";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/primitive/default.nix b/pkgs/development/libraries/haskell/primitive/default.nix
index c39f718e70c91..6e7b485eece0d 100644
--- a/pkgs/development/libraries/haskell/primitive/default.nix
+++ b/pkgs/development/libraries/haskell/primitive/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "primitive";
   version = "0.3.1";
   sha256 = "1903hx88ax4dgyyx00a0k86jy4mkqrprpn7arfy19dqqyfpb2ikj";
   meta = {
+    homepage = "http://code.haskell.org/primitive";
     description = "Wrappers for primitive operations";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/pureMD5/default.nix b/pkgs/development/libraries/haskell/pureMD5/default.nix
index 34b78092b6628..2dfc009179965 100644
--- a/pkgs/development/libraries/haskell/pureMD5/default.nix
+++ b/pkgs/development/libraries/haskell/pureMD5/default.nix
@@ -1,14 +1,19 @@
-{cabal, binary}:
+{ cabal, binary, cereal, cryptoApi, tagged }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "pureMD5";
-  version = "1.0.0.3";
-  sha256 = "3698e5bc8a0e20bed91b52f976235e52f2c1dd876aa40e94d6c7be293d67d482";
-  propagatedBuildInputs = [binary];
+  version = "2.1.0.3";
+  sha256 = "0whlsb6zq4zcp3wq0bd6pgcsl0namr8b2s6i4l5aykq8v7fx40ii";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ binary cereal cryptoApi tagged ];
   meta = {
-    description = "An unrolled implementation of MD5 purely in Haskell";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    description = "A Haskell-only implementation of the MD5 digest (hash) algorithm";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/pwstore-fast/default.nix b/pkgs/development/libraries/haskell/pwstore-fast/default.nix
new file mode 100644
index 0000000000000..a78471d8ebb35
--- /dev/null
+++ b/pkgs/development/libraries/haskell/pwstore-fast/default.nix
@@ -0,0 +1,18 @@
+{ cabal, base64Bytestring, cryptohash, random }:
+
+cabal.mkDerivation (self: {
+  pname = "pwstore-fast";
+  version = "2.2";
+  sha256 = "03b9vr5j6cadvi6w3lr8b9km4jq6jh0vzcmkxzq9qvvly89lx96a";
+  buildDepends = [ base64Bytestring cryptohash random ];
+  meta = {
+    homepage = "https://github.com/PeterScott/pwstore";
+    description = "Secure password storage";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/random-fu/default.nix b/pkgs/development/libraries/haskell/random-fu/default.nix
index d35a9c8579387..a094ee687e6a7 100644
--- a/pkgs/development/libraries/haskell/random-fu/default.nix
+++ b/pkgs/development/libraries/haskell/random-fu/default.nix
@@ -1,17 +1,23 @@
-{cabal, erf, mtl, mersenneRandomPure64, monadLoops, MonadPrompt,
- mwcRandom, randomShuffle, stateref, tagged, vector, syb}:
+{ cabal, erf, gamma, monadLoops, mtl, randomShuffle, randomSource
+, rvar, syb, transformers, vector
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "random-fu";
-  version = "0.1.3";
-  sha256 = "1l7czlll6y02m5xzdky95m78806gnj5y3nk3cxs5zqgxwskq73bk";
-  propagatedBuildInputs =
-    [erf mtl mersenneRandomPure64 monadLoops MonadPrompt
-     mwcRandom randomShuffle stateref tagged vector syb];
+  version = "0.2.1.0";
+  sha256 = "0jm91xjrlzj25f3giiv2ka5r8bn1ircj56d5lpqixi7c7r9dc804";
+  buildDepends = [
+    erf gamma monadLoops mtl randomShuffle randomSource rvar syb
+    transformers vector
+  ];
   meta = {
+    homepage = "https://github.com/mokus0/random-fu";
     description = "Random number generation";
-    license = "Public Domain";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/random-shuffle/default.nix b/pkgs/development/libraries/haskell/random-shuffle/default.nix
index 5ff40e4efbd24..aade5d27965ac 100644
--- a/pkgs/development/libraries/haskell/random-shuffle/default.nix
+++ b/pkgs/development/libraries/haskell/random-shuffle/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "random-shuffle";
   version = "0.0.2";
   sha256 = "1csq0ffsqbbv6ymf707nzfb7c9bmykwk9bcgj21mxmh6khlqn9jp";
+  buildDepends = [ random ];
   meta = {
     description = "Random shuffle implementation";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/random-source/default.nix b/pkgs/development/libraries/haskell/random-source/default.nix
new file mode 100755
index 0000000000000..7bf8a22595616
--- /dev/null
+++ b/pkgs/development/libraries/haskell/random-source/default.nix
@@ -0,0 +1,23 @@
+{ cabal, flexibleDefaults, mersenneRandomPure64, mtl, mwcRandom
+, random, stateref, syb
+}:
+
+cabal.mkDerivation (self: {
+  pname = "random-source";
+  version = "0.3";
+  sha256 = "08nj7mq8gjj9rv1zmkr2m30z295k5b352103wb1ag1ryw5wyzg1n";
+  buildDepends = [
+    flexibleDefaults mersenneRandomPure64 mtl mwcRandom random stateref
+    syb
+  ];
+  meta = {
+    homepage = "https://github.com/mokus0/random-fu";
+    description = "Generic basis for random number generators";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/random/1.0.0.2.nix b/pkgs/development/libraries/haskell/random/1.0.0.2.nix
new file mode 100644
index 0000000000000..e9101a114070f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/random/1.0.0.2.nix
@@ -0,0 +1,17 @@
+{ cabal, time }:
+
+cabal.mkDerivation (self: {
+  pname = "random";
+  version = "1.0.0.2";
+  sha256 = "5433aebb4bbfb999f1d02410c8ca3769c63cd8b02109d2771a37c12918f92dd5";
+  buildDepends = [ time ];
+  meta = {
+    description = "random number library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/random/1.0.0.3.nix b/pkgs/development/libraries/haskell/random/1.0.0.3.nix
new file mode 100644
index 0000000000000..f89cad32f9e95
--- /dev/null
+++ b/pkgs/development/libraries/haskell/random/1.0.0.3.nix
@@ -0,0 +1,17 @@
+{ cabal, time }:
+
+cabal.mkDerivation (self: {
+  pname = "random";
+  version = "1.0.0.3";
+  sha256 = "0k2735vrx0id2dxzk7lkm22w07p7gy86zffygk60jxgh9rvignf6";
+  buildDepends = [ time ];
+  meta = {
+    description = "random number library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/random/1.0.1.0.nix b/pkgs/development/libraries/haskell/random/1.0.1.0.nix
new file mode 100644
index 0000000000000..275a1a097361f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/random/1.0.1.0.nix
@@ -0,0 +1,17 @@
+{ cabal, time }:
+
+cabal.mkDerivation (self: {
+  pname = "random";
+  version = "1.0.1.0";
+  sha256 = "1ghdmjzcn6n02x4gffa4g7wag4g7azrgxk3nsc5fqn9iny6rwp2i";
+  buildDepends = [ time ];
+  meta = {
+    description = "random number library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/random/default.nix b/pkgs/development/libraries/haskell/random/default.nix
deleted file mode 100644
index 370f054dc1e31..0000000000000
--- a/pkgs/development/libraries/haskell/random/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{cabal, time}:
-
-cabal.mkDerivation (self : {
-  pname = "random";
-  version = "1.0.0.2";
-  sha256 = "5433aebb4bbfb999f1d02410c8ca3769c63cd8b02109d2771a37c12918f92dd5";
-  propagatedBuildInputs = [time];
-  meta = {
-    description = "random number library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
diff --git a/pkgs/development/libraries/haskell/ranges/default.nix b/pkgs/development/libraries/haskell/ranges/default.nix
index 194d6227c5079..d7c20f571238f 100644
--- a/pkgs/development/libraries/haskell/ranges/default.nix
+++ b/pkgs/development/libraries/haskell/ranges/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "ranges";
   version = "0.2.3";
   sha256 = "1jmybrwwvg8zkbxjrlrahfavlf2g2584ld15hzhch317683nvr1p";
   meta = {
     description = "Ranges and various functions on them";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/readline/default.nix b/pkgs/development/libraries/haskell/readline/default.nix
index 370764307cbf8..898b005c4da82 100644
--- a/pkgs/development/libraries/haskell/readline/default.nix
+++ b/pkgs/development/libraries/haskell/readline/default.nix
@@ -12,6 +12,11 @@ cabal.mkDerivation (self : {
   '';
   meta = {
     description = "An interface to the GNU readline library";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/recaptcha/default.nix b/pkgs/development/libraries/haskell/recaptcha/default.nix
index 236016d0d77bc..60747bbda68bd 100644
--- a/pkgs/development/libraries/haskell/recaptcha/default.nix
+++ b/pkgs/development/libraries/haskell/recaptcha/default.nix
@@ -1,12 +1,18 @@
-{cabal, HTTP, network, xhtml}:
+{ cabal, HTTP, network, xhtml }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "recaptcha";
   version = "0.1";
   sha256 = "de00e6e3aadd99a1cd036ce4b413ebe02d59c1b9cfd3032f122735cca1f25144";
-  propagatedBuildInputs = [HTTP network xhtml];
+  buildDepends = [ HTTP network xhtml ];
   meta = {
+    homepage = "http://github.com/jgm/recaptcha/tree/master";
     description = "Functions for using the reCAPTCHA service in web applications";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/regex-base/0.72.0.2.nix b/pkgs/development/libraries/haskell/regex-base/0.72.0.2.nix
index e8d84ef292328..09e4906da011b 100644
--- a/pkgs/development/libraries/haskell/regex-base/0.72.0.2.nix
+++ b/pkgs/development/libraries/haskell/regex-base/0.72.0.2.nix
@@ -1,12 +1,17 @@
-{cabal, mtl}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-base";
-  version = "0.72.0.2"; # Haskell Platform 2009.0.0
+  version = "0.72.0.2";
   sha256 = "38a4901b942fea646a422d52c52ef14eec4d6561c258b3c54cd96a8a354141ee";
-  propagatedBuildInputs = [mtl];
   meta = {
-    description = "Replaces/Ehances Text.Regex";
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/regex-base/0.93.1.nix b/pkgs/development/libraries/haskell/regex-base/0.93.1.nix
index 9a1fe37d15562..8fbc2f9e84d03 100644
--- a/pkgs/development/libraries/haskell/regex-base/0.93.1.nix
+++ b/pkgs/development/libraries/haskell/regex-base/0.93.1.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-base";
-  version = "0.93.1"; # Haskell Platform 2010.1.0.0
+  version = "0.93.1";
   sha256 = "24a0e76ab308517a53d2525e18744d9058835626ed4005599ecd8dd4e07f3bef";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
-    description = "Replaces/Ehances Text.Regex";
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/regex-base/0.93.2.nix b/pkgs/development/libraries/haskell/regex-base/0.93.2.nix
index 1d65438ff948b..50f039a3d27a5 100644
--- a/pkgs/development/libraries/haskell/regex-base/0.93.2.nix
+++ b/pkgs/development/libraries/haskell/regex-base/0.93.2.nix
@@ -1,12 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-base";
-  version = "0.93.2"; # Haskell Platform 2010.2.0.0, 2011.2.0.0
+  version = "0.93.2";
   sha256 = "0y1j4h2pg12c853nzmczs263di7xkkmlnsq5dlp5wgbgl49mgp10";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl ];
   meta = {
-    description = "Replaces/Ehances Text.Regex";
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix b/pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix
index 19e643d906ab8..ed88e247e5b77 100644
--- a/pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix
+++ b/pkgs/development/libraries/haskell/regex-compat/0.71.0.1.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase, regexPosix}:
+{ cabal, regexBase, regexPosix }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-compat";
-  version = "0.71.0.1"; # Haskell Platform 2009.0.0
+  version = "0.71.0.1";
   sha256 = "904552f7d690686b2602f37494827d09b09fc0a8a2565522b61847bec8d1de8d";
-  propagatedBuildInputs = [regexBase regexPosix];
+  buildDepends = [ regexBase regexPosix ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/regex-compat/0.92.nix b/pkgs/development/libraries/haskell/regex-compat/0.92.nix
index e65669a8107dd..3db0f5d406564 100644
--- a/pkgs/development/libraries/haskell/regex-compat/0.92.nix
+++ b/pkgs/development/libraries/haskell/regex-compat/0.92.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase, regexPosix}:
+{ cabal, regexBase, regexPosix }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-compat";
-  version = "0.92"; # Haskell Platform 2010.1.0.0
+  version = "0.92";
   sha256 = "430d251bd704071fca1e38c9b250543f00d4e370382ed552ac3d7407d4f27936";
-  propagatedBuildInputs = [regexBase regexPosix];
+  buildDepends = [ regexBase regexPosix ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/regex-compat/0.93.1.nix b/pkgs/development/libraries/haskell/regex-compat/0.93.1.nix
index c1b4536cd114b..3a28e505a82d7 100644
--- a/pkgs/development/libraries/haskell/regex-compat/0.93.1.nix
+++ b/pkgs/development/libraries/haskell/regex-compat/0.93.1.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase, regexPosix}:
+{ cabal, regexBase, regexPosix }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-compat";
-  version = "0.93.1"; # Haskell Platform 2010.2.0.0, 2011.2.0.0
+  version = "0.93.1";
   sha256 = "1zlsx7a2iz5gmgrwzr6w5fz6s4ayab5bm71xlq28r3iph3vp80zf";
-  propagatedBuildInputs = [regexBase regexPosix];
+  buildDepends = [ regexBase regexPosix ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/regex-compat/0.95.1.nix b/pkgs/development/libraries/haskell/regex-compat/0.95.1.nix
new file mode 100644
index 0000000000000..138702e1d416f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-compat/0.95.1.nix
@@ -0,0 +1,18 @@
+{ cabal, regexBase, regexPosix }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-compat";
+  version = "0.95.1";
+  sha256 = "0fwmima3f04p9y4h3c23493n1xj629ia2dxaisqm6rynljjv2z6m";
+  buildDepends = [ regexBase regexPosix ];
+  meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix b/pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix
new file mode 100644
index 0000000000000..f3c6e02caf5c0
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-pcre-builtin/default.nix
@@ -0,0 +1,18 @@
+{ cabal, regexBase }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-pcre-builtin";
+  version = "0.94.2.1.7.7";
+  sha256 = "1c4zxfild1fbpxwqcp2jnf6iwfs0z6nc8dry09gmjykxlhisxi8s";
+  buildDepends = [ regexBase ];
+  meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regex-pcre/default.nix b/pkgs/development/libraries/haskell/regex-pcre/default.nix
index 7b3629ae42f0c..68c3981851735 100644
--- a/pkgs/development/libraries/haskell/regex-pcre/default.nix
+++ b/pkgs/development/libraries/haskell/regex-pcre/default.nix
@@ -1,13 +1,19 @@
-{cabal, regexBase, pcre}:
+{ cabal, pcre, regexBase }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-pcre";
   version = "0.94.2";
   sha256 = "0p4az8z4jlrcmmyz9bjf7n90hpg6n242vq4255w2dz5v29l822wn";
-  propagatedBuildInputs = [regexBase];
-  extraBuildInputs = [pcre];
+  buildDepends = [ regexBase ];
+  extraLibraries = [ pcre ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/regex-posix/0.72.0.3.nix b/pkgs/development/libraries/haskell/regex-posix/0.72.0.3.nix
index a27d267b27bf7..961aab9e2f771 100644
--- a/pkgs/development/libraries/haskell/regex-posix/0.72.0.3.nix
+++ b/pkgs/development/libraries/haskell/regex-posix/0.72.0.3.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase}:
+{ cabal, regexBase }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-posix";
-  version = "0.72.0.3"; # Haskell Platform 2009.0.0
+  version = "0.72.0.3";
   sha256 = "327ab87f3d4f5315a9414331eb382b8b997de8836d577c3f7d232c574606feb1";
-  propagatedBuildInputs = [regexBase];
+  buildDepends = [ regexBase ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/regex-posix/0.94.1.nix b/pkgs/development/libraries/haskell/regex-posix/0.94.1.nix
index b202ce58c9015..223c9baedcdd5 100644
--- a/pkgs/development/libraries/haskell/regex-posix/0.94.1.nix
+++ b/pkgs/development/libraries/haskell/regex-posix/0.94.1.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase}:
+{ cabal, regexBase }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-posix";
-  version = "0.94.1"; # Haskell Platform 2010.1.0.0
+  version = "0.94.1";
   sha256 = "63e76de0610d35f1b576ae65a25a38e04e758ed64b9b3512de95bdffd649485c";
-  propagatedBuildInputs = [regexBase];
+  buildDepends = [ regexBase ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/regex-posix/0.94.2.nix b/pkgs/development/libraries/haskell/regex-posix/0.94.2.nix
index 3d7149607d295..9a570d4ca20da 100644
--- a/pkgs/development/libraries/haskell/regex-posix/0.94.2.nix
+++ b/pkgs/development/libraries/haskell/regex-posix/0.94.2.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase}:
+{ cabal, regexBase }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-posix";
-  version = "0.94.2"; # Haskell Platform 2010.2.0.0
+  version = "0.94.2";
   sha256 = "ea0c1ed0ab49ade4dba1eea7a42197652ccb18b7a98c4040e37ba11d26f33067";
-  propagatedBuildInputs = [regexBase];
+  buildDepends = [ regexBase ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/regex-posix/0.94.4.nix b/pkgs/development/libraries/haskell/regex-posix/0.94.4.nix
index 142827f14cefa..e78c7fe2584da 100644
--- a/pkgs/development/libraries/haskell/regex-posix/0.94.4.nix
+++ b/pkgs/development/libraries/haskell/regex-posix/0.94.4.nix
@@ -1,12 +1,18 @@
-{cabal, regexBase}:
+{ cabal, regexBase }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-posix";
-  version = "0.94.4"; # Haskell Platform 2011.2.0.0
+  version = "0.94.4";
   sha256 = "1ykirysvz9ganm2k7fmrppklsgh0h35mjfsi9g1icv43pqpr6ldw";
-  propagatedBuildInputs = [regexBase];
+  buildDepends = [ regexBase ];
   meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
     description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/regex-posix/0.95.1.nix b/pkgs/development/libraries/haskell/regex-posix/0.95.1.nix
new file mode 100644
index 0000000000000..ca6358baeedb1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regex-posix/0.95.1.nix
@@ -0,0 +1,18 @@
+{ cabal, regexBase }:
+
+cabal.mkDerivation (self: {
+  pname = "regex-posix";
+  version = "0.95.1";
+  sha256 = "02pgxwbgz738kpdmsg18xs6kmq6my5hqd9cl4rm7cg2v39di9vbl";
+  buildDepends = [ regexBase ];
+  meta = {
+    homepage = "http://sourceforge.net/projects/lazy-regex";
+    description = "Replaces/Enhances Text.Regex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regex-tdfa/default.nix b/pkgs/development/libraries/haskell/regex-tdfa/default.nix
index 40414248f9178..82fa24016bc53 100644
--- a/pkgs/development/libraries/haskell/regex-tdfa/default.nix
+++ b/pkgs/development/libraries/haskell/regex-tdfa/default.nix
@@ -1,13 +1,18 @@
-{cabal, mtl, parsec, regexBase}:
+{ cabal, mtl, parsec, regexBase }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regex-tdfa";
   version = "1.1.8";
   sha256 = "1m75xh5bwmmgg5f757dc126kv47yfqqnz9fzj1hc80p6jpzs573x";
-  propagatedBuildInputs = [mtl parsec regexBase];
+  buildDepends = [ mtl parsec regexBase ];
   meta = {
+    homepage = "http://hackage.haskell.org/package/regex-tdfa";
     description = "Replaces/Enhances Text.Regex";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/regexpr/default.nix b/pkgs/development/libraries/haskell/regexpr/default.nix
new file mode 100644
index 0000000000000..538b980b4383d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/regexpr/default.nix
@@ -0,0 +1,18 @@
+{ cabal, HUnit, mtl, mtlparse }:
+
+cabal.mkDerivation (self: {
+  pname = "regexpr";
+  version = "0.5.4";
+  sha256 = "bf7813247f26877d9fba4ba4b66eb80bfddfc2086a5cd8d635b2da0ccde56604";
+  buildDepends = [ HUnit mtl mtlparse ];
+  meta = {
+    homepage = "http://homepage3.nifty.com/salamander/second/projects/regexpr/";
+    description = "regular expression like Perl/Ruby in Haskell";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/regular/default.nix b/pkgs/development/libraries/haskell/regular/default.nix
index bd366d3828e46..8dd7e04ec7988 100644
--- a/pkgs/development/libraries/haskell/regular/default.nix
+++ b/pkgs/development/libraries/haskell/regular/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "regular";
   version = "0.3.2";
   sha256 = "104rz28a22p5pn3rdzvmh13s1hpr46n463cfaz3w3bj9cimi2rcj";
   meta = {
     description = "Generic programming library for regular datatypes";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/repa-algorithms/default.nix b/pkgs/development/libraries/haskell/repa-algorithms/default.nix
index 2849558ef49ca..0ca84003fbf8f 100644
--- a/pkgs/development/libraries/haskell/repa-algorithms/default.nix
+++ b/pkgs/development/libraries/haskell/repa-algorithms/default.nix
@@ -1,14 +1,18 @@
-{cabal, repa, vector}:
+{ cabal, repa, vector }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "repa-algorithms";
-  version = "2.0.0.3";
-  sha256 = "17h5xbn8gy0glryrv7pjdpxaw9adrk0bln683p0xxl6wrx90ngdv";
-  propagatedBuildInputs = [repa vector];
+  version = "2.1.0.1";
+  sha256 = "101j18s2vqaxls87jzrlhzy2hlhqvgs27cs89j187c1s8z5vvjjg";
+  buildDepends = [ repa vector ];
   meta = {
+    homepage = "http://repa.ouroborus.net";
     description = "Algorithms using the Repa array library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/repa-bytestring/default.nix b/pkgs/development/libraries/haskell/repa-bytestring/default.nix
index ae660ab43b25d..8dfe4159d53b8 100644
--- a/pkgs/development/libraries/haskell/repa-bytestring/default.nix
+++ b/pkgs/development/libraries/haskell/repa-bytestring/default.nix
@@ -1,14 +1,18 @@
-{cabal, repa, vector}:
+{ cabal, repa, vector }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "repa-bytestring";
-  version = "2.0.0.3";
-  sha256 = "05kc5d8j4m5g515syvz5jkbjvhhf3jxkak4w6pvyhx6nmzgywrk5";
-  propagatedBuildInputs = [repa vector];
+  version = "2.1.0.1";
+  sha256 = "01kvbd1kn0irldnfihhxa2jrz8fy1x9g7vz60ffgagj6yzp4bsnq";
+  buildDepends = [ repa vector ];
   meta = {
+    homepage = "http://repa.ouroborus.net";
     description = "Conversions between Repa Arrays and ByteStrings";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/repa-examples/default.nix b/pkgs/development/libraries/haskell/repa-examples/default.nix
index b5222dcc88773..04f75ae8c5706 100644
--- a/pkgs/development/libraries/haskell/repa-examples/default.nix
+++ b/pkgs/development/libraries/haskell/repa-examples/default.nix
@@ -1,15 +1,21 @@
-{cabal, repa, repaAlgorithms, repaIO, vector, llvm}:
+{ cabal, llvm, random, repa, repaAlgorithms, repaIo, vector }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "repa-examples";
-  version = "2.0.0.3";
-  sha256 = "0kj93rrr63x34dcljw6hvqjbz4mfzw00gmbddrqya0dhf9ifjnb9";
-  extraBuildInputs = [llvm];
-  propagatedBuildInputs = [repa repaAlgorithms repaIO vector];
+  version = "2.1.0.2";
+  sha256 = "056y2x8kada4d6a89sni2469c736z3d9ldp188n3i58h4kjqqfq7";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [ random repa repaAlgorithms repaIo vector ];
+  extraLibraries = [ llvm ];
   meta = {
+    homepage = "http://repa.ouroborus.net";
     description = "Examples using the Repa array library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/repa-io/default.nix b/pkgs/development/libraries/haskell/repa-io/default.nix
index afb0b99cfa220..000f412a3dad7 100644
--- a/pkgs/development/libraries/haskell/repa-io/default.nix
+++ b/pkgs/development/libraries/haskell/repa-io/default.nix
@@ -1,14 +1,18 @@
-{cabal, bmp, repa, repaBytestring}:
+{ cabal, bmp, repa, repaBytestring }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "repa-io";
-  version = "2.0.0.3";
-  sha256 = "1p8h2855jv8nnvf9vq2ywrmm9qk9qdqy6yqr4dj9p90kfcqxgw2g";
-  propagatedBuildInputs = [bmp repa repaBytestring];
+  version = "2.1.0.1";
+  sha256 = "1mjv90rr1vymrnv5kz8i4kvjal6mwhb2042ylbdggvv8hjsc8awq";
+  buildDepends = [ bmp repa repaBytestring ];
   meta = {
+    homepage = "http://repa.ouroborus.net";
     description = "Read and write Repa arrays in various formats";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/repa/default.nix b/pkgs/development/libraries/haskell/repa/default.nix
index 10f40445df38d..b5667144103d6 100644
--- a/pkgs/development/libraries/haskell/repa/default.nix
+++ b/pkgs/development/libraries/haskell/repa/default.nix
@@ -1,14 +1,18 @@
-{cabal, QuickCheck, vector}:
+{ cabal, QuickCheck, vector }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "repa";
-  version = "2.0.0.4";
-  sha256 = "11cjh4bdwb1kwb6ikig4i6vr3kqs840wdpl22biws16lg74mfxxn";
-  propagatedBuildInputs = [QuickCheck vector];
+  version = "2.1.1.5";
+  sha256 = "14lq6nsifxsap98c1hpxsyv4g973vyzjn2s94b3vfzkbq8vd7695";
+  buildDepends = [ QuickCheck vector ];
   meta = {
+    homepage = "http://repa.ouroborus.net";
     description = "High performance, regular, shape polymorphic parallel arrays";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/rvar/default.nix b/pkgs/development/libraries/haskell/rvar/default.nix
new file mode 100755
index 0000000000000..640faeb7d59cf
--- /dev/null
+++ b/pkgs/development/libraries/haskell/rvar/default.nix
@@ -0,0 +1,18 @@
+{ cabal, MonadPrompt, mtl, randomSource, transformers }:
+
+cabal.mkDerivation (self: {
+  pname = "rvar";
+  version = "0.2";
+  sha256 = "1in2qn1clv9b7ijyllhjflh9zdkna31hpyclhlkfnsc6899z3y1f";
+  buildDepends = [ MonadPrompt mtl randomSource transformers ];
+  meta = {
+    homepage = "https://github.com/mokus0/random-fu";
+    description = "Random Variables";
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/safe/default.nix b/pkgs/development/libraries/haskell/safe/default.nix
index 79e83b30891ae..20044e6905b09 100644
--- a/pkgs/development/libraries/haskell/safe/default.nix
+++ b/pkgs/development/libraries/haskell/safe/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "safe";
   version = "0.3";
   sha256 = "174jm7nlqsgvc6namjpfknlix6yy2sf9pxnb3ifznjvx18kgc7m0";
   meta = {
+    homepage = "http://community.haskell.org/~ndm/safe/";
     description = "Library for safe (pattern match free) functions";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/salvia-protocol/default.nix b/pkgs/development/libraries/haskell/salvia-protocol/default.nix
deleted file mode 100644
index a3c7832312e5f..0000000000000
--- a/pkgs/development/libraries/haskell/salvia-protocol/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, fclabels, parsec, safe, split, utf8String, bimap}:
-
-cabal.mkDerivation (self : {
-  pname = "salvia-protocol";
-  version = "1.0.1";
-  sha256 = "6b2312e52efaa81feec7461b1a3db77e1f2a8dfd829ae878b614c206a5e48928";
-  propagatedBuildInputs = [fclabels parsec safe split utf8String bimap];
-  meta = {
-    description = "Salvia webserver protocol suite";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/salvia/default.nix b/pkgs/development/libraries/haskell/salvia/default.nix
deleted file mode 100644
index 16f1afe8f28fb..0000000000000
--- a/pkgs/development/libraries/haskell/salvia/default.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{cabal, fclabels, MaybeTTransformers, monadsFd, pureMD5, safe,
- salviaProtocol, split, text, threadmanager, transformers, utf8String,
- network, stm, time}:
-
-cabal.mkDerivation (self : {
-  pname = "salvia";
-  version = "1.0.0";
-  sha256 = "d1be63e3eb7cb071e8e339d730692b3ce52576e513f718b89a194b17878496e1";
-  propagatedBuildInputs = [
-    fclabels MaybeTTransformers monadsFd pureMD5 safe salviaProtocol
-    split text threadmanager transformers utf8String network stm time
-  ];
-  meta = {
-    description = "Modular web application framework";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/scion/default.nix b/pkgs/development/libraries/haskell/scion/default.nix
deleted file mode 100644
index 43fff2132e133..0000000000000
--- a/pkgs/development/libraries/haskell/scion/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{cabal, ghcPaths, ghcSyb, hslogger, json, multiset, time, uniplate}:
-
-cabal.mkDerivation (self : {
-  pname = "scion";
-  version = "0.1";
-  sha256 = "5c9fd9922182abed57c6ec260dfa497de411124c63851a72c640232b9cf78d83";
-  propagatedBuildInputs = [ghcPaths ghcSyb hslogger json multiset time uniplate];
-  meta = {
-    description = "Haskell IDE library";
-  };
-})
diff --git a/pkgs/development/libraries/haskell/semigroups/default.nix b/pkgs/development/libraries/haskell/semigroups/default.nix
new file mode 100755
index 0000000000000..71b9a6c6c478a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/semigroups/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "semigroups";
+  version = "0.8";
+  sha256 = "12ly9f1lxzrxvwkcx25cjik7d1f1l2j1rkd0cabgpcg53hz4158c";
+  meta = {
+    homepage = "http://github.com/ekmett/semigroups/";
+    description = "Haskell 98 semigroups";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/sendfile/default.nix b/pkgs/development/libraries/haskell/sendfile/default.nix
index 12554817992a4..94244755b7311 100644
--- a/pkgs/development/libraries/haskell/sendfile/default.nix
+++ b/pkgs/development/libraries/haskell/sendfile/default.nix
@@ -1,14 +1,18 @@
-{cabal, network}:
+{ cabal, network }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "sendfile";
-  version = "0.6.2";
-  sha256 = "2d7bf7fdcae7e2ffa24bf70bc1bdc7ea4e6b1726f6cee63cd14c2eeb5545749a";
-  propagatedBuildInputs = [network];
+  version = "0.7.3";
+  sha256 = "0xa5ryyznw7cizdqjnisvyhirdljw5z7aydwv5m9lv9hkx3bs6l0";
+  buildDepends = [ network ];
   meta = {
+    homepage = "http://patch-tag.com/r/mae/sendfile";
     description = "A portable sendfile library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/shakespeare-css/default.nix b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
new file mode 100644
index 0000000000000..cb5f5ca39b504
--- /dev/null
+++ b/pkgs/development/libraries/haskell/shakespeare-css/default.nix
@@ -0,0 +1,18 @@
+{ cabal, parsec, shakespeare, text }:
+
+cabal.mkDerivation (self: {
+  pname = "shakespeare-css";
+  version = "0.10.0";
+  sha256 = "12gdpxsh6x95m9vp0nrffri1bh8d6zhd7qqjrrkp49rvjf8fjwrk";
+  buildDepends = [ parsec shakespeare text ];
+  meta = {
+    homepage = "http://www.yesodweb.com/book/templates";
+    description = "Stick your haskell variables into css at compile time";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/shakespeare-js/default.nix b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
new file mode 100644
index 0000000000000..064e1828f9dfb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/shakespeare-js/default.nix
@@ -0,0 +1,18 @@
+{ cabal, shakespeare, text }:
+
+cabal.mkDerivation (self: {
+  pname = "shakespeare-js";
+  version = "0.10.1";
+  sha256 = "0j9jzrnvarwkab9zynz8k60ilgj5kyqdm56lricpii27qlkqnmf3";
+  buildDepends = [ shakespeare text ];
+  meta = {
+    homepage = "http://www.yesodweb.com/book/templates";
+    description = "Stick your haskell variables into javascript/coffeescript at compile time";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/shakespeare/default.nix b/pkgs/development/libraries/haskell/shakespeare/default.nix
new file mode 100644
index 0000000000000..e99b6c4b7cc27
--- /dev/null
+++ b/pkgs/development/libraries/haskell/shakespeare/default.nix
@@ -0,0 +1,18 @@
+{ cabal, blazeBuilder, blazeHtml, failure, parsec, text }:
+
+cabal.mkDerivation (self: {
+  pname = "shakespeare";
+  version = "0.10.0";
+  sha256 = "14q0z2q7c27pp6hnwzn50zjb4rzhy7znmahnzn8b59274jkbbzjs";
+  buildDepends = [ blazeBuilder blazeHtml failure parsec text ];
+  meta = {
+    homepage = "http://www.yesodweb.com/book/templates";
+    description = "A toolkit for making compile-time interpolated templates";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/simple-sendfile/default.nix b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
index c3a455a547547..fd362b44b8852 100644
--- a/pkgs/development/libraries/haskell/simple-sendfile/default.nix
+++ b/pkgs/development/libraries/haskell/simple-sendfile/default.nix
@@ -1,14 +1,17 @@
-{cabal, network}:
+{ cabal, network }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "simple-sendfile";
   version = "0.1.2";
   sha256 = "08w5ria2x41j85z1126kddi918zdqrwmr4vwqczgzh9kdi49wv8j";
-  propagatedBuildInputs = [network];
+  buildDepends = [ network ];
   meta = {
     description = "Cross platform library for the sendfile system call";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/smallcheck/default.nix b/pkgs/development/libraries/haskell/smallcheck/default.nix
index 39ee91b09f376..a4106ea800275 100644
--- a/pkgs/development/libraries/haskell/smallcheck/default.nix
+++ b/pkgs/development/libraries/haskell/smallcheck/default.nix
@@ -1,13 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "smallcheck";
   version = "0.4";
   sha256 = "0nq13jm3akrmgk6n2clisip16v0jf1xkm0hm678v63s87hxqb1ma";
   meta = {
     description = "Another lightweight testing library in Haskell";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/snap/core.nix b/pkgs/development/libraries/haskell/snap/core.nix
index c95d36f7d504f..4cc036ef08019 100644
--- a/pkgs/development/libraries/haskell/snap/core.nix
+++ b/pkgs/development/libraries/haskell/snap/core.nix
@@ -1,17 +1,27 @@
-{cabal, attoparsec, attoparsecEnumerator, MonadCatchIOTransformers, blazeBuilder
-, bytestringNums, caseInsensitive, dlist, mtl, unixCompat, vector, zlib}:
+{ cabal, attoparsec, attoparsecEnumerator, blazeBuilder
+, bytestringMmap, bytestringNums, caseInsensitive, deepseq, dlist
+, enumerator, MonadCatchIOTransformers, mtl, text, time
+, transformers, unixCompat, vector, zlib
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "snap-core";
-  version = "0.5.1.4";
-  sha256 = "0fvff7hjyfwnii057vpg8m75qaipsklk6v6cbvms4p6wp14zqaj1";
-  propagatedBuildInputs =
-    [ attoparsec attoparsecEnumerator MonadCatchIOTransformers blazeBuilder
-     bytestringNums caseInsensitive dlist mtl unixCompat vector zlib
-    ];
+  version = "0.5.3.1";
+  sha256 = "0qwlcak1hi4cqyhnks7qqf4zq0rw2486paf0mlasyzb6ba0pwl6m";
+  buildDepends = [
+    attoparsec attoparsecEnumerator blazeBuilder bytestringMmap
+    bytestringNums caseInsensitive deepseq dlist enumerator
+    MonadCatchIOTransformers mtl text time transformers unixCompat
+    vector zlib
+  ];
   meta = {
+    homepage = "http://snapframework.com/";
     description = "Snap: A Haskell Web Framework (Core)";
-    license = "BSD3";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/snap/server.nix b/pkgs/development/libraries/haskell/snap/server.nix
index 14417dd0e80e3..474719a90a9e6 100644
--- a/pkgs/development/libraries/haskell/snap/server.nix
+++ b/pkgs/development/libraries/haskell/snap/server.nix
@@ -1,19 +1,28 @@
-{cabal, attoparsec, attoparsecEnumerator, binary, blazeBuilder, blazeBuilderEnumerator
-, bytestringNums, directoryTree, enumerator, MonadCatchIOTransformers, mtl, murmurHash
-, network, PSQueue, snapCore, unixCompat, utf8String, vector, vectorAlgorithms, zlib}:
+{ cabal, attoparsec, attoparsecEnumerator, binary, blazeBuilder
+, blazeBuilderEnumerator, bytestringNums, caseInsensitive
+, directoryTree, enumerator, MonadCatchIOTransformers, mtl
+, murmurHash, network, PSQueue, snapCore, text, time, transformers
+, unixCompat, vector, vectorAlgorithms
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "snap-server";
-  version = "0.5.1.4";
-  sha256 = "17b95db48as418whcvbxzyvql16z1c706n0s4jryyqr6kvgpsvzp";
-  propagatedBuildInputs =
-    [ attoparsec attoparsecEnumerator binary blazeBuilder blazeBuilderEnumerator
-     bytestringNums directoryTree enumerator MonadCatchIOTransformers mtl murmurHash
-     network PSQueue snapCore unixCompat utf8String vector vectorAlgorithms zlib
-    ];
+  version = "0.5.3.1";
+  sha256 = "0rbfklgngrpp2aggkmyamfxn9hpnz3bsxd58lw0fi4ls76bagxvz";
+  buildDepends = [
+    attoparsec attoparsecEnumerator binary blazeBuilder
+    blazeBuilderEnumerator bytestringNums caseInsensitive directoryTree
+    enumerator MonadCatchIOTransformers mtl murmurHash network PSQueue
+    snapCore text time transformers unixCompat vector vectorAlgorithms
+  ];
   meta = {
-    description = "Snap: A Haskell Web Framework (Server)";
-    license = "BSD3";
+    homepage = "http://snapframework.com/";
+    description = "A fast, iteratee-based, epoll-enabled web server for the Snap Framework";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/split/default.nix b/pkgs/development/libraries/haskell/split/default.nix
index 131fa06fd7b48..8463200e387a6 100644
--- a/pkgs/development/libraries/haskell/split/default.nix
+++ b/pkgs/development/libraries/haskell/split/default.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "split";
-  version = "0.1.3";
-  sha256 = "1i43xa11d5jn30j9948bypi8dzdxr7nx4v9xhcgpmaggssv9bvcs";
+  version = "0.1.4.1";
+  sha256 = "0cdn2sb3m62bnxdz59diwwaxysh3kj4kk1srn4m80p03fj60s0q5";
   meta = {
+    homepage = "http://code.haskell.org/~byorgey/code/split";
     description = "Combinator library for splitting lists";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/stateref/default.nix b/pkgs/development/libraries/haskell/stateref/default.nix
index 88049490c334b..b14fd6ebadebf 100644
--- a/pkgs/development/libraries/haskell/stateref/default.nix
+++ b/pkgs/development/libraries/haskell/stateref/default.nix
@@ -1,14 +1,18 @@
-{cabal, mtl}:
+{ cabal, mtl, stm }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "stateref";
   version = "0.3";
   sha256 = "0hdpw6g255lj7jjvgqwhjdpzmka546vda5qjvry8gjj6nfm91lvx";
-  propagatedBuildInputs = [mtl];
+  buildDepends = [ mtl stm ];
   meta = {
+    homepage = "http://code.haskell.org/~mokus/stateref/";
     description = "Abstraction for things that work like IORef";
-    license = "Public Domain";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/statistics/default.nix b/pkgs/development/libraries/haskell/statistics/default.nix
index 8dc70c410449a..18347fc374e0c 100644
--- a/pkgs/development/libraries/haskell/statistics/default.nix
+++ b/pkgs/development/libraries/haskell/statistics/default.nix
@@ -1,15 +1,23 @@
-{cabal, primitive, vector, vectorAlgorithms, mwcRandom, erf}:
+{ cabal, aeson, deepseq, erf, monadPar, mwcRandom, primitive, time
+, vector, vectorAlgorithms
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "statistics";
-  version = "0.8.0.5";
-  sha256 = "0rzrx1wjil88ksqk5kmcxm4ypryiy9j1c4qa2s2bs71338hhzpxn";
-  propagatedBuildInputs =
-    [primitive vector vectorAlgorithms mwcRandom erf];
+  version = "0.9.0.0";
+  sha256 = "1rwp9gkjs011lxzhkajiljs6x2a4xc8cg558kpfy9xj4q1lk43x7";
+  buildDepends = [
+    aeson deepseq erf monadPar mwcRandom primitive time vector
+    vectorAlgorithms
+  ];
   meta = {
-    description = "A library of statistical types, data and functions";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://bitbucket.org/bos/statistics";
+    description = "A library of statistical types, data, and functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/stb-image/default.nix b/pkgs/development/libraries/haskell/stb-image/default.nix
index 4574b80ce2a5f..43e56473b650c 100644
--- a/pkgs/development/libraries/haskell/stb-image/default.nix
+++ b/pkgs/development/libraries/haskell/stb-image/default.nix
@@ -1,14 +1,18 @@
-{cabal, bitmap}:
+{ cabal, bitmap }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "stb-image";
   version = "0.2";
   sha256 = "7d027b6de52d07bbe439a84897aaa6e26a8f05c6fa6f4aeaa3060be23ae11937";
-  propagatedBuildInputs = [bitmap];
+  buildDepends = [ bitmap ];
   meta = {
+    homepage = "http://code.haskell.org/~bkomuves/";
     description = "A wrapper around Sean Barrett's JPEG/PNG decoder";
-    license = "free";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.publicDomain;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/stm/2.1.1.2.nix b/pkgs/development/libraries/haskell/stm/2.1.1.2.nix
index 691eb63cdb1da..6184a324181f9 100644
--- a/pkgs/development/libraries/haskell/stm/2.1.1.2.nix
+++ b/pkgs/development/libraries/haskell/stm/2.1.1.2.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "stm";
-  version = "2.1.1.2"; # Haskell Platform 2009.0.0 and 2010.1.0.0
+  version = "2.1.1.2";
   sha256 = "68d550067ae180373142c51f3fa14bdf0a1516310aee9a37e28f9ac7cf3b8c6d";
   meta = {
     description = "Software Transactional Memory";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/stm/2.1.2.1.nix b/pkgs/development/libraries/haskell/stm/2.1.2.1.nix
index a3c77c4d3711c..8615f10be80fc 100644
--- a/pkgs/development/libraries/haskell/stm/2.1.2.1.nix
+++ b/pkgs/development/libraries/haskell/stm/2.1.2.1.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "stm";
-  version = "2.1.2.1"; # Haskell Platform 2010.2.0.0
+  version = "2.1.2.1";
   sha256 = "0d7d8babd2f07c726909030461e1f9b3aaf02dc809fd5e1c0509a67d23b784b8";
   meta = {
     description = "Software Transactional Memory";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/stm/2.2.0.1.nix b/pkgs/development/libraries/haskell/stm/2.2.0.1.nix
index b9d7b51c52277..1174a9740e5b1 100644
--- a/pkgs/development/libraries/haskell/stm/2.2.0.1.nix
+++ b/pkgs/development/libraries/haskell/stm/2.2.0.1.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "stm";
-  version = "2.2.0.1"; # Haskell Platform 2011.2.0.0
+  version = "2.2.0.1";
   sha256 = "1p0x414ffsd77mmlfz1cmwg2cbhinnbpxypxgvygg05js67msj8q";
   meta = {
     description = "Software Transactional Memory";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/storable-complex/default.nix b/pkgs/development/libraries/haskell/storable-complex/default.nix
index 334cada046d32..dc36d53f046a8 100644
--- a/pkgs/development/libraries/haskell/storable-complex/default.nix
+++ b/pkgs/development/libraries/haskell/storable-complex/default.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "storable-complex";
-  version = "0.2";
-  sha256 = "4e0e48e641d415b8e549ca3db84468ae18fc74aa3e9848674c48a9024635b8bb";
+  version = "0.2.1";
+  sha256 = "0dnxnsi7m5whwwki3fry6db6gyy5qzfz8jcj1fg3fhfyf4f9wpaz";
   meta = {
     description = "Storable instance for Complex";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/storable-record/default.nix b/pkgs/development/libraries/haskell/storable-record/default.nix
new file mode 100644
index 0000000000000..180f47939ccdb
--- /dev/null
+++ b/pkgs/development/libraries/haskell/storable-record/default.nix
@@ -0,0 +1,20 @@
+{ cabal, transformers, utilityHt }:
+
+cabal.mkDerivation (self: {
+  pname = "storable-record";
+  version = "0.0.2.4";
+  sha256 = "5ed2680dcfc4c3d4fe605d23e797b847fe047b7acd3f4acfd82155c93e72b280";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ transformers utilityHt ];
+  meta = {
+    homepage = "http://code.haskell.org/~thielema/storable-record/";
+    description = "Elegant definition of Storable instances for records";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/streamproc/default.nix b/pkgs/development/libraries/haskell/streamproc/default.nix
new file mode 100755
index 0000000000000..5e327ac78a5ac
--- /dev/null
+++ b/pkgs/development/libraries/haskell/streamproc/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "streamproc";
+  version = "1.4";
+  sha256 = "fbff569d7b294850998e9a6b6a14bf81484b1adb312801ea15d1d890faff12cf";
+  meta = {
+    homepage = "http://gitorious.org/streamproc";
+    description = "Stream Processer Arrow";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/strict/default.nix b/pkgs/development/libraries/haskell/strict/default.nix
new file mode 100644
index 0000000000000..99239884b0a3a
--- /dev/null
+++ b/pkgs/development/libraries/haskell/strict/default.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "strict";
+  version = "0.3.2";
+  sha256 = "08cjajqz9h47fkq98mlf3rc8n5ghbmnmgn8pfsl3bdldjdkmmlrc";
+  meta = {
+    homepage = "http://www.cse.unsw.edu.au/~rl/code/strict.html";
+    description = "Strict data types and String IO";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/strictConcurrency/default.nix b/pkgs/development/libraries/haskell/strictConcurrency/default.nix
index 33734eb875382..083f3e06d5b71 100644
--- a/pkgs/development/libraries/haskell/strictConcurrency/default.nix
+++ b/pkgs/development/libraries/haskell/strictConcurrency/default.nix
@@ -1,12 +1,18 @@
-{cabal, parallel, deepseq}:
+{ cabal, deepseq }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "strict-concurrency";
   version = "0.2.4.1";
   sha256 = "0939212dd0cc3b9bd228dfbb233d9eccad22ca626752d9bad8026ceb0a5c1a89";
-  propagatedBuildInputs = [parallel deepseq];
+  buildDepends = [ deepseq ];
   meta = {
+    homepage = "http://code.haskell.org/~dons/code/strict-concurrency";
     description = "Strict concurrency abstractions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/svgcairo/default.nix b/pkgs/development/libraries/haskell/svgcairo/default.nix
index fb756ec30f0a0..007b17507bf5e 100644
--- a/pkgs/development/libraries/haskell/svgcairo/default.nix
+++ b/pkgs/development/libraries/haskell/svgcairo/default.nix
@@ -1,14 +1,21 @@
-{cabal, gtk2hsBuildtools, cairo, glib, mtl, pkgconfig, librsvg, glibc}:
+{ cabal, cairo, glib, glibc, gtk2hsBuildtools, librsvg, mtl }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "svgcairo";
   version = "0.12.0";
   sha256 = "1zialw59njmq0sfz9f0rx6v50d4bvld2ivmwljkp5bmxii3hcjl3";
-  extraBuildInputs = [pkgconfig librsvg glibc gtk2hsBuildtools];
-  propagatedBuildInputs = [cairo glib mtl];
+  buildDepends = [ cairo glib mtl ];
+  buildTools = [ gtk2hsBuildtools ];
+  extraLibraries = [ glibc ];
+  pkgconfigDepends = [ cairo librsvg ];
   meta = {
-    description = "Binding to the Cairo library";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://www.haskell.org/gtk2hs/";
+    description = "Binding to the libsvg-cairo library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/syb/0.2.2.nix b/pkgs/development/libraries/haskell/syb/0.2.2.nix
index 613badbb5f32a..070279fadfde0 100644
--- a/pkgs/development/libraries/haskell/syb/0.2.2.nix
+++ b/pkgs/development/libraries/haskell/syb/0.2.2.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "syb";
   version = "0.2.2";
   sha256 = "0m29vnqkkmpf4m3gi42kcbr2gfyxgkcw85xsyrq0mgbxb0zg6ky9";
   meta = {
-    description = "generics system described in the Scrap Your Boilerplate papers";
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB";
+    description = "Scrap Your Boilerplate";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/syb/0.3.3.nix b/pkgs/development/libraries/haskell/syb/0.3.3.nix
new file mode 100644
index 0000000000000..01cc80c883dd5
--- /dev/null
+++ b/pkgs/development/libraries/haskell/syb/0.3.3.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "syb";
+  version = "0.3.3";
+  sha256 = "0jskxbnzariq2ahcymvjrp4bhl9cpflc1nh51whdl9axcrd5c901";
+  meta = {
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB";
+    description = "Scrap Your Boilerplate";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/syb/0.3.nix b/pkgs/development/libraries/haskell/syb/0.3.nix
index 0fdf7cce0a698..ddf16ad41e553 100644
--- a/pkgs/development/libraries/haskell/syb/0.3.nix
+++ b/pkgs/development/libraries/haskell/syb/0.3.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "syb";
-  version = "0.3"; # Haskell Platform 2011.2.0.0
+  version = "0.3";
   sha256 = "1gnqw76zy7xvlabhbyk8hml88hpz2igf7b3mz2ic091f77qkkch7";
   meta = {
-    description = "generics system described in the Scrap Your Boilerplate papers";
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB";
+    description = "Scrap Your Boilerplate";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/syb/default.nix b/pkgs/development/libraries/haskell/syb/default.nix
index 93e503e7cdc1f..a98cf1e2da67a 100644
--- a/pkgs/development/libraries/haskell/syb/default.nix
+++ b/pkgs/development/libraries/haskell/syb/default.nix
@@ -1,12 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "syb";
   version = "0.1.0.1";
-  name = self.fname;
   sha256 = "08nf4id26s5iasxzdy5jds6h87fy3a55zgw0zrig4dg6difmwjp3";
-  extraBuildInputs = [];
   meta = {
-    description = "generics system described in the Scrap Your Boilerplate papers [..]";
+    description = "Scrap Your Boilerplate";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/syb/syb-with-class-instances-text.nix b/pkgs/development/libraries/haskell/syb/syb-with-class-instances-text.nix
index f295e489402f0..2f3167ff62801 100644
--- a/pkgs/development/libraries/haskell/syb/syb-with-class-instances-text.nix
+++ b/pkgs/development/libraries/haskell/syb/syb-with-class-instances-text.nix
@@ -1,11 +1,17 @@
-{cabal, sybWithClass, text}:
+{ cabal, sybWithClass, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "syb-with-class-instances-text";
   version = "0.0.1";
   sha256 = "0e0aa90c02cbe76380274830be51e04cb3cc13d5ea5761ba5540779bd0c4d76e";
-  propagatedBuildInputs = [sybWithClass text];
+  buildDepends = [ sybWithClass text ];
   meta = {
-    description = "Scrap Your Boilerplate With Class";
+    description = "Scrap Your Boilerplate With Class Text instance";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/syb/syb-with-class.nix b/pkgs/development/libraries/haskell/syb/syb-with-class.nix
index 42e83c679761f..980c24b2d4591 100644
--- a/pkgs/development/libraries/haskell/syb/syb-with-class.nix
+++ b/pkgs/development/libraries/haskell/syb/syb-with-class.nix
@@ -1,10 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "syb-with-class";
-  version = "0.6.1.1";
-  sha256 = "15i6df470c2qcf9vc05yg809c5imrj00mf72p5njapx88qnk2p67";
+  version = "0.6.1.2";
+  sha256 = "1hzwhfpl4w5nblkr2l4l4i7xxkvv7n5adr3i9miqmw1krlxs852d";
   meta = {
     description = "Scrap Your Boilerplate With Class";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/tabular/default.nix b/pkgs/development/libraries/haskell/tabular/default.nix
new file mode 100644
index 0000000000000..a649ca04fecbc
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tabular/default.nix
@@ -0,0 +1,18 @@
+{ cabal, csv, html, mtl }:
+
+cabal.mkDerivation (self: {
+  pname = "tabular";
+  version = "0.2.2.3";
+  sha256 = "cf6d9f1928ec6981edcbb06c4dcbaea7a96deef5272192ad4290caa18711ea76";
+  buildDepends = [ csv html mtl ];
+  meta = {
+    homepage = "http://patch-tag.com/r/kowey/tabular";
+    description = "Two-dimensional data tables with rendering functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/tagged/default.nix b/pkgs/development/libraries/haskell/tagged/default.nix
index e68b628253f86..1f30245a320a3 100644
--- a/pkgs/development/libraries/haskell/tagged/default.nix
+++ b/pkgs/development/libraries/haskell/tagged/default.nix
@@ -1,14 +1,18 @@
-{cabal, dataDefault}:
+{ cabal, dataDefault, semigroups }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "tagged";
-  version = "0.2";
-  sha256 = "0hwc0hhq5pzihx6danxvgs4k1z0nqcrwf3ji0w2i1gx3298cwrz5";
-  propagatedBuildInputs = [dataDefault];
+  version = "0.2.3.1";
+  sha256 = "0ldc9w35yzlrz78kakkqial32g2c7da9b5v334jh5wpgsn7lrm3n";
+  buildDepends = [ dataDefault semigroups ];
   meta = {
+    homepage = "http://github.com/ekmett/tagged";
     description = "Provides newtype wrappers for phantom types to avoid unsafely passing dummy arguments";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/tagsoup/default.nix b/pkgs/development/libraries/haskell/tagsoup/default.nix
index a7c2e7e1f60a1..e31cb09fdf467 100644
--- a/pkgs/development/libraries/haskell/tagsoup/default.nix
+++ b/pkgs/development/libraries/haskell/tagsoup/default.nix
@@ -1,13 +1,20 @@
-{cabal}:
+{ cabal, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "tagsoup";
-  version = "0.12";
-  sha256 = "0jaqr6q8asn7gd336xsblcc55lzm8glzlhvs61mhzjvk4hg9pmg7";
+  version = "0.12.3";
+  sha256 = "0f41kc6kdzslyhskyql431nq0kkdzf13vn9saqi48ycajnrm1vcb";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ text ];
   meta = {
+    homepage = "http://community.haskell.org/~ndm/tagsoup/";
     description = "Parsing and extracting information from (possibly malformed) HTML/XML documents";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/terminfo/default.nix b/pkgs/development/libraries/haskell/terminfo/default.nix
index fb881fb2466e7..240b72d7a8f2c 100644
--- a/pkgs/development/libraries/haskell/terminfo/default.nix
+++ b/pkgs/development/libraries/haskell/terminfo/default.nix
@@ -1,11 +1,19 @@
-{cabal, ncurses, extensibleExceptions}:
+{ cabal, extensibleExceptions, ncurses }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "terminfo";
-  version = "0.3.0.2";
-  sha256 = "2303d934fcec0f6413f15887f7f42e8e2e5b27812534a929bf585bfa6f3a9229";
-  propagatedBuildInputs = [ncurses extensibleExceptions];
+  version = "0.3.2.2";
+  sha256 = "1370vxvv32aarmk64yvwb8rav523xk7fg5h65cgxvn4ppjqv0f51";
+  buildDepends = [ extensibleExceptions ];
+  extraLibraries = [ ncurses ];
   meta = {
-    description = "Haskell bindings for the terminfo library";
+    homepage = "http://code.haskell.org/terminfo";
+    description = "Haskell bindings to the terminfo library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/test-framework-hunit/default.nix b/pkgs/development/libraries/haskell/test-framework-hunit/default.nix
index 491a73e7616ae..e196322190dee 100644
--- a/pkgs/development/libraries/haskell/test-framework-hunit/default.nix
+++ b/pkgs/development/libraries/haskell/test-framework-hunit/default.nix
@@ -1,14 +1,18 @@
-{cabal, HUnit, testFramework}:
+{ cabal, extensibleExceptions, HUnit, testFramework }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "test-framework-hunit";
   version = "0.2.6";
   sha256 = "1ivgyh71wwvrrgnk3fp6hsfssvy39jikhjdzr7x68pv1ca7f247r";
-  propagatedBuildInputs = [HUnit testFramework];
+  buildDepends = [ extensibleExceptions HUnit testFramework ];
   meta = {
+    homepage = "http://batterseapower.github.com/test-framework/";
     description = "HUnit support for the test-framework package";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix b/pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix
index 80e0b1a0f00ea..20d86feaa1b75 100644
--- a/pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix
+++ b/pkgs/development/libraries/haskell/test-framework-quickcheck/default.nix
@@ -1,14 +1,22 @@
-{cabal, QuickCheck1, testFramework, deepseq}:
+{ cabal, deepseq, extensibleExceptions, QuickCheck, random
+, testFramework
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "test-framework-quickcheck";
   version = "0.2.7";
   sha256 = "065nazli8vh9dz8xi71gwzlwy81anfd471jhz6hv3m893cc9vvx8";
-  propagatedBuildInputs = [QuickCheck1 testFramework deepseq];
+  buildDepends = [
+    deepseq extensibleExceptions QuickCheck random testFramework
+  ];
   meta = {
+    homepage = "http://batterseapower.github.com/test-framework/";
     description = "QuickCheck support for the test-framework package";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix b/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix
index c8d84f710505a..e3787bbd05754 100644
--- a/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix
+++ b/pkgs/development/libraries/haskell/test-framework-quickcheck2/default.nix
@@ -1,14 +1,20 @@
-{cabal, QuickCheck2, testFramework}:
+{ cabal, extensibleExceptions, QuickCheck, random, testFramework }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "test-framework-quickcheck2";
   version = "0.2.10";
   sha256 = "12c37m74idjydxshgms9ib9ii2rpvy4647kra2ards1w2jmnr6w3";
-  propagatedBuildInputs = [QuickCheck2 testFramework];
+  buildDepends = [
+    extensibleExceptions QuickCheck random testFramework
+  ];
   meta = {
+    homepage = "http://batterseapower.github.com/test-framework/";
     description = "QuickCheck2 support for the test-framework package";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/test-framework-th/default.nix b/pkgs/development/libraries/haskell/test-framework-th/default.nix
new file mode 100644
index 0000000000000..0c16a9e9e24f6
--- /dev/null
+++ b/pkgs/development/libraries/haskell/test-framework-th/default.nix
@@ -0,0 +1,22 @@
+{ cabal, haskellSrcExts, languageHaskellExtract, regexPosix
+, testFramework
+}:
+
+cabal.mkDerivation (self: {
+  pname = "test-framework-th";
+  version = "0.2.2";
+  sha256 = "0nzfvxr5bnxinx41a5w5mwhyxzz2936dl0xhd80cv9plx19ylh0w";
+  buildDepends = [
+    haskellSrcExts languageHaskellExtract regexPosix testFramework
+  ];
+  meta = {
+    homepage = "http://github.com/finnsson/test-generator";
+    description = "Automagically generate the HUnit- and Quickcheck-bulk-code using Template Haskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/test-framework/default.nix b/pkgs/development/libraries/haskell/test-framework/default.nix
index 34d2db546b639..21ea2ebe95496 100644
--- a/pkgs/development/libraries/haskell/test-framework/default.nix
+++ b/pkgs/development/libraries/haskell/test-framework/default.nix
@@ -1,14 +1,25 @@
-{cabal, ansiTerminal, ansiWLPprint, hostname, regexPosix, xml}:
+{ cabal, ansiTerminal, ansiWlPprint, extensibleExceptions, hostname
+, random, regexPosix, time, xml
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "test-framework";
-  version = "0.4.0";
-  sha256 = "0zxrdndycr63kzfibk0c2n4j39x6b8s4332sgqm54g1vdl3fxzbl";
-  propagatedBuildInputs = [ansiTerminal ansiWLPprint hostname regexPosix xml];
+  version = "0.4.1.1";
+  sha256 = "1ig4v2y8xba2rg6pc8yjf0j20cwa3czknnfqn1sgpqhmip2961pc";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    ansiTerminal ansiWlPprint extensibleExceptions hostname random
+    regexPosix time xml
+  ];
   meta = {
-    description = "Framework for running and organising tests";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://batterseapower.github.com/test-framework/";
+    description = "Framework for running and organising tests, with HUnit and QuickCheck support";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/testpack/default.nix b/pkgs/development/libraries/haskell/testpack/default.nix
index 626155f6a3cf7..35b619166a4f5 100644
--- a/pkgs/development/libraries/haskell/testpack/default.nix
+++ b/pkgs/development/libraries/haskell/testpack/default.nix
@@ -1,12 +1,18 @@
-{cabal, HUnit, QuickCheck2, mtl}:
+{ cabal, HUnit, mtl, QuickCheck, random }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "testpack";
-  version = "2.1.0";
-  sha256 = "8128f3a409855fca1d431391b2cbf6a9f4dec32dd6f26825960b936fe578c476";
-  propagatedBuildInputs = [HUnit QuickCheck2 mtl];
+  version = "2.1.1";
+  sha256 = "1z8g3xhvy901h7kr7q4wcms5b23xniskrgxfpq42w4b34acwvhmg";
+  buildDepends = [ HUnit mtl QuickCheck random ];
   meta = {
-    description = "Test Utility Pack for HUnit and QuickCheck";
+    homepage = "http://hackage.haskell.org/cgi-bin/hackage-scripts/package/testpack";
+    description = "Test Utililty Pack for HUnit and QuickCheck";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/texmath/0.4.nix b/pkgs/development/libraries/haskell/texmath/0.4.nix
new file mode 100644
index 0000000000000..a59120015dd0f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/texmath/0.4.nix
@@ -0,0 +1,20 @@
+{ cabal, parsec, syb, xml }:
+
+cabal.mkDerivation (self: {
+  pname = "texmath";
+  version = "0.4";
+  sha256 = "1rvnhqljxkljy8ncpaj8p7b14nvvm6zmiixv13m1zxlcr457j2ai";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ parsec syb xml ];
+  meta = {
+    homepage = "http://github.com/jgm/texmath";
+    description = "Conversion of LaTeX math formulas to MathML";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/texmath/0.5.0.1.nix b/pkgs/development/libraries/haskell/texmath/0.5.0.1.nix
new file mode 100644
index 0000000000000..f82e98703c786
--- /dev/null
+++ b/pkgs/development/libraries/haskell/texmath/0.5.0.1.nix
@@ -0,0 +1,20 @@
+{ cabal, parsec, syb, xml }:
+
+cabal.mkDerivation (self: {
+  pname = "texmath";
+  version = "0.5.0.1";
+  sha256 = "0kw23b1df7456d2h48g2p7k8nvfv80a8a70xgkq4pn7v50vqipdy";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ parsec syb xml ];
+  meta = {
+    homepage = "http://github.com/jgm/texmath";
+    description = "Conversion of LaTeX math formulas to MathML";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/texmath/default.nix b/pkgs/development/libraries/haskell/texmath/default.nix
deleted file mode 100644
index a329076c3527f..0000000000000
--- a/pkgs/development/libraries/haskell/texmath/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, parsec, syb, xml}:
-
-cabal.mkDerivation (self : {
-  pname = "texmath";
-  version = "0.5.0.1";
-  sha256 = "0kw23b1df7456d2h48g2p7k8nvfv80a8a70xgkq4pn7v50vqipdy";
-  propagatedBuildInputs = [parsec syb xml];
-  meta = {
-    description = "Conversion of LaTeX math formulas to MathML";
-    license = "GPL";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/text/0.11.0.5.nix b/pkgs/development/libraries/haskell/text/0.11.0.5.nix
index 8a0328ec40a8e..b997c60868b2f 100644
--- a/pkgs/development/libraries/haskell/text/0.11.0.5.nix
+++ b/pkgs/development/libraries/haskell/text/0.11.0.5.nix
@@ -1,14 +1,18 @@
-{cabal, deepseq}:
+{ cabal, deepseq }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "text";
-  version = "0.11.0.5"; # Haskell Platform 2011.2.0.0
+  version = "0.11.0.5";
   sha256 = "1a5y2i7qrkyyvm112q44rhd7jbqxvfxssz2g5ngbx11yypl3hcdv";
-  propagatedBuildInputs = [deepseq];
+  buildDepends = [ deepseq ];
   meta = {
-    description = "An efficient package Unicode text type";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://bitbucket.org/bos/text";
+    description = "An efficient packed Unicode text type";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/text/0.11.0.6.nix b/pkgs/development/libraries/haskell/text/0.11.0.6.nix
index 2775eae076038..5c593235dee0a 100644
--- a/pkgs/development/libraries/haskell/text/0.11.0.6.nix
+++ b/pkgs/development/libraries/haskell/text/0.11.0.6.nix
@@ -1,14 +1,18 @@
-{cabal, deepseq}:
+{ cabal, deepseq }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "text";
-  version = "0.11.0.6"; # Haskell Platform 2011.2.0.1
+  version = "0.11.0.6";
   sha256 = "103l1c8jfwpddsqzwj9jqh89vay8ax1znxqgjqprv2fvr7s0zvkp";
-  propagatedBuildInputs = [deepseq];
+  buildDepends = [ deepseq ];
   meta = {
-    description = "An efficient package Unicode text type";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://bitbucket.org/bos/text";
+    description = "An efficient packed Unicode text type";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/text/0.11.1.5.nix b/pkgs/development/libraries/haskell/text/0.11.1.5.nix
new file mode 100644
index 0000000000000..db438a54bc24c
--- /dev/null
+++ b/pkgs/development/libraries/haskell/text/0.11.1.5.nix
@@ -0,0 +1,18 @@
+{ cabal, deepseq }:
+
+cabal.mkDerivation (self: {
+  pname = "text";
+  version = "0.11.1.5";
+  sha256 = "0fxxhw932gdvaqafsbw7dfzccc43hv92yhxppzp6jrg0npbyz04l";
+  buildDepends = [ deepseq ];
+  meta = {
+    homepage = "https://bitbucket.org/bos/text";
+    description = "An efficient packed Unicode text type";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/th-lift/default.nix b/pkgs/development/libraries/haskell/th-lift/default.nix
new file mode 100644
index 0000000000000..2a5fe84c20ace
--- /dev/null
+++ b/pkgs/development/libraries/haskell/th-lift/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "th-lift";
+  version = "0.5.4";
+  sha256 = "1ax5rniainbw4lynfng0wv8a6x2cfv7k69n5nv1pwpb4s76am1hi";
+  meta = {
+    description = "Derive Template Haskell's Lift class for datatypes";
+    license = "unknown";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/threadmanager/default.nix b/pkgs/development/libraries/haskell/threadmanager/default.nix
index 431f8e587ddf9..d7f5a70bc3436 100644
--- a/pkgs/development/libraries/haskell/threadmanager/default.nix
+++ b/pkgs/development/libraries/haskell/threadmanager/default.nix
@@ -1,13 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "threadmanager";
-  version = "0.1.3";
-  sha256 = "22ca45d7e32518736abb9cde6d2d14163128888769fc02bbc2641fd97318a15a";
+  version = "0.1.4";
+  sha256 = "0p35ihdc9k9svzbwiszll5i53km09rvw5mqshph273fby7nvni9i";
   meta = {
+    homepage = "http://github.com/bsl/threadmanager";
     description = "Simple thread management";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/time/1.1.2.4.nix b/pkgs/development/libraries/haskell/time/1.1.2.4.nix
index 430e836068d78..7ced3956a8a36 100644
--- a/pkgs/development/libraries/haskell/time/1.1.2.4.nix
+++ b/pkgs/development/libraries/haskell/time/1.1.2.4.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "time";
-  version = "1.1.2.4"; # Haskell Platform 2009.0.0
+  version = "1.1.2.4";
   sha256 = "11dfcb9b5ca76428a7a31019928c3c1898320f774e5d3df8e4407580d074fad3";
   meta = {
+    homepage = "http://semantic.org/TimeLib/";
     description = "A time library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/time/1.1.3.nix b/pkgs/development/libraries/haskell/time/1.1.3.nix
index 2d3703b235100..c8a7fe1298552 100644
--- a/pkgs/development/libraries/haskell/time/1.1.3.nix
+++ b/pkgs/development/libraries/haskell/time/1.1.3.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "time";
   version = "1.1.3";
   sha256 = "46d32400bc0099ccef1fb670684c00a31055725403ea15c7a39278ff7dccc65b";
   meta = {
+    homepage = "http://semantic.org/TimeLib/";
     description = "A time library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/time/1.2.0.3.nix b/pkgs/development/libraries/haskell/time/1.2.0.3.nix
index fbdf4aa100f3b..23cec7ab90fdd 100644
--- a/pkgs/development/libraries/haskell/time/1.2.0.3.nix
+++ b/pkgs/development/libraries/haskell/time/1.2.0.3.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "time";
   version = "1.2.0.3";
   sha256 = "acb1e3cf2b98a73632d35b0665808b05df6c03fcefd62796fe291f5b2ef4348e";
   meta = {
+    homepage = "http://semantic.org/TimeLib/";
     description = "A time library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/time/1.2.0.5.nix b/pkgs/development/libraries/haskell/time/1.2.0.5.nix
new file mode 100644
index 0000000000000..78fed9b5754cf
--- /dev/null
+++ b/pkgs/development/libraries/haskell/time/1.2.0.5.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "time";
+  version = "1.2.0.5";
+  sha256 = "0y4plv9qvpmzzzb5855zngm6lmd38m0vr2mzwm94xhz2xsqhdh2z";
+  meta = {
+    homepage = "http://semantic.org/TimeLib/";
+    description = "A time library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/time/1.3.nix b/pkgs/development/libraries/haskell/time/1.3.nix
new file mode 100644
index 0000000000000..7a37345979845
--- /dev/null
+++ b/pkgs/development/libraries/haskell/time/1.3.nix
@@ -0,0 +1,17 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "time";
+  version = "1.3";
+  sha256 = "0pkd77qz6lpalj166g91f8nz3mzcpxlzcw83yf8sl5yy4wskhmwz";
+  meta = {
+    homepage = "http://semantic.org/TimeLib/";
+    description = "A time library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/tls-extra/default.nix b/pkgs/development/libraries/haskell/tls-extra/default.nix
new file mode 100644
index 0000000000000..7b7517b0d42d7
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tls-extra/default.nix
@@ -0,0 +1,25 @@
+{ cabal, certificate, cryptoApi, cryptocipher, cryptohash, mtl
+, network, text, time, tls, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "tls-extra";
+  version = "0.3.1";
+  sha256 = "1zj8l5nglfaarbbzb1icil6cp6rjqfs33nryxc34akz22zwwmln4";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    certificate cryptoApi cryptocipher cryptohash mtl network text time
+    tls vector
+  ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-tls-extra";
+    description = "TLS extra default values and helpers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/tls/default.nix b/pkgs/development/libraries/haskell/tls/default.nix
new file mode 100644
index 0000000000000..8da9fbbf4b558
--- /dev/null
+++ b/pkgs/development/libraries/haskell/tls/default.nix
@@ -0,0 +1,24 @@
+{ cabal, cereal, certificate, cryptoApi, cryptocipher, cryptohash
+, mtl
+}:
+
+cabal.mkDerivation (self: {
+  pname = "tls";
+  version = "0.7.2";
+  sha256 = "0x24jf83sfsnpvfm645lng5bc21zsbv6mbagr6q1q71zhfzfyb74";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    cereal certificate cryptoApi cryptocipher cryptohash mtl
+  ];
+  meta = {
+    homepage = "http://github.com/vincenthz/hs-tls";
+    description = "TLS/SSL protocol native implementation (Server and Client)";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/transformers/0.2.2.0.nix b/pkgs/development/libraries/haskell/transformers/0.2.2.0.nix
index c3fec93abeb62..f38605c17ad3a 100644
--- a/pkgs/development/libraries/haskell/transformers/0.2.2.0.nix
+++ b/pkgs/development/libraries/haskell/transformers/0.2.2.0.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "transformers";
-  version = "0.2.2.0"; # Haskell Platform 2011.2.0.0
+  version = "0.2.2.0";
   sha256 = "1nkazxy2p0w5ad76vg1lc4l0nla1kdqjdf9pymjgk75dpiyijbdz";
   meta = {
     description = "Concrete functor and monad transformers";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/tuple/default.nix b/pkgs/development/libraries/haskell/tuple/default.nix
index dd7fd36089da8..fa06558fc0dd3 100644
--- a/pkgs/development/libraries/haskell/tuple/default.nix
+++ b/pkgs/development/libraries/haskell/tuple/default.nix
@@ -1,14 +1,17 @@
-{cabal, OneTuple}:
+{ cabal, OneTuple }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "tuple";
   version = "0.2.0.1";
   sha256 = "1c4vf798rjwshnk04avyjp4rjzj8i9qx4yksv00m3rjy6psr57xg";
-  propagatedBuildInputs = [OneTuple];
+  buildDepends = [ OneTuple ];
   meta = {
     description = "Various functions on tuples";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/uniplate/default.nix b/pkgs/development/libraries/haskell/uniplate/default.nix
index f44755983a7c4..c9320595e55b3 100644
--- a/pkgs/development/libraries/haskell/uniplate/default.nix
+++ b/pkgs/development/libraries/haskell/uniplate/default.nix
@@ -1,12 +1,18 @@
-{cabal, mtl, syb}:
+{ cabal, syb }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "uniplate";
-  version = "1.6";
-  sha256 = "13nlyzsnj6hshgl839ww1kp49r87kpdcdyn7hxahg8k2qkj5zzxr";
-  propagatedBuildInputs = [mtl syb];
+  version = "1.6.2";
+  sha256 = "1lns0llhszk68jnq5if3xrk997idzszqc267q63kkdwp1zxdicrd";
+  buildDepends = [ syb ];
   meta = {
-    description = "Uniform type generic traversals";
+    homepage = "http://community.haskell.org/~ndm/uniplate/";
+    description = "Help writing simple, concise and fast generic operations";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/uniqueid/default.nix b/pkgs/development/libraries/haskell/uniqueid/default.nix
index 5ab87f341282c..d717bd27871af 100644
--- a/pkgs/development/libraries/haskell/uniqueid/default.nix
+++ b/pkgs/development/libraries/haskell/uniqueid/default.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "uniqueid";
   version = "0.1.1";
   sha256 = "e69df591c1ab9901af24bf0e63032765eb2b1ba4ca4fb720a234e9f292e03268";
   meta = {
+    homepage = "http://github.com/sebfisch/uniqueid/wikis";
     description = "Splittable Unique Identifier Supply";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/unix-compat/default.nix b/pkgs/development/libraries/haskell/unix-compat/default.nix
index aee31438d10ab..34cbd4072f6e6 100644
--- a/pkgs/development/libraries/haskell/unix-compat/default.nix
+++ b/pkgs/development/libraries/haskell/unix-compat/default.nix
@@ -1,12 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "unix-compat";
-  version = "0.2.1.3";
-  sha256 = "12645n23b7b86w3fllg3vl39pvbxazqx9rflgnhc6qrlfklkyxxd";
+  version = "0.2.2.1";
+  sha256 = "009dg6mxjmdkcmr2d1qq9r3f4qfx4d362lyxj9vvgwrzcdnsgzqi";
   meta = {
+    homepage = "http://github.com/jystic/unix-compat";
     description = "Portable POSIX-compatibility layer";
-    license = "BSD";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/unordered-containers/default.nix b/pkgs/development/libraries/haskell/unordered-containers/default.nix
index 62cc44ac89f3a..b007d137d6059 100644
--- a/pkgs/development/libraries/haskell/unordered-containers/default.nix
+++ b/pkgs/development/libraries/haskell/unordered-containers/default.nix
@@ -1,14 +1,17 @@
-{cabal, deepseq, hashable}:
+{ cabal, deepseq, hashable }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "unordered-containers";
-  version = "0.1.4.0";
-  sha256 = "1v5m92rn2k7knhca91ldzi082hy4z0hp4nm66ihns4vxgslywgb9";
-  propagatedBuildInputs = [deepseq hashable];
+  version = "0.1.4.2";
+  sha256 = "0nfw82zng9y5dinjn78k05i4c4bjc1y6yb2dwqwczb85hbrqiha6";
+  buildDepends = [ deepseq hashable ];
   meta = {
     description = "Efficient hashing-based container types";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/url/default.nix b/pkgs/development/libraries/haskell/url/default.nix
index f12cc629b7f7d..466d53090191b 100644
--- a/pkgs/development/libraries/haskell/url/default.nix
+++ b/pkgs/development/libraries/haskell/url/default.nix
@@ -1,14 +1,18 @@
-{cabal, utf8String}:
+{ cabal, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "url";
   version = "2.1.2";
   sha256 = "2cf5c4296418afe3940ae4de66d867897b1382cc4d37a0b9a5ccffa16743ef91";
-  propagatedBuildInputs = [utf8String];
+  buildDepends = [ utf8String ];
   meta = {
+    homepage = "http://www.haskell.org/haskellwiki/Url";
     description = "A library for working with URLs";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/utf8-light/default.nix b/pkgs/development/libraries/haskell/utf8-light/default.nix
new file mode 100644
index 0000000000000..59ebfe3b5e6fc
--- /dev/null
+++ b/pkgs/development/libraries/haskell/utf8-light/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "utf8-light";
+  version = "0.4.0.1";
+  sha256 = "1y2vfxjgq8r90bpaxhha0s837vklpwdj4cj3h61bimc0lcx22905";
+  meta = {
+    description = "Unicode";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/utf8-string/default.nix b/pkgs/development/libraries/haskell/utf8-string/default.nix
index bc1a4c157141f..0928ae0347b13 100644
--- a/pkgs/development/libraries/haskell/utf8-string/default.nix
+++ b/pkgs/development/libraries/haskell/utf8-string/default.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "utf8-string";
-  version = "0.3.6";
-  sha256 = "c8c74555174edfb96145585c9b80780d0fc55ba249282b8a4c5968cca7c09d69";
+  version = "0.3.7";
+  sha256 = "1s59xsw1i311rpxb7arnd280pjqab5mrlfjmxbabknka8wqlnnvq";
   meta = {
-    description = "A UTF8 layer for IO and Strings";
+    homepage = "http://github.com/glguy/utf8-string/";
+    description = "Support for reading and writing UTF8 Strings";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/utility-ht/default.nix b/pkgs/development/libraries/haskell/utility-ht/default.nix
index 74671673030fd..6c67d98c3bb1d 100644
--- a/pkgs/development/libraries/haskell/utility-ht/default.nix
+++ b/pkgs/development/libraries/haskell/utility-ht/default.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "utility-ht";
-  version = "0.0.5.1";
-  sha256 = "f15fd1450b31f002e6d4fe3720cff7c899f23f8a68b890ea3854e68e596c97cb";
+  version = "0.0.7";
+  sha256 = "83ffd750088a0eef5485b5dfadd13158ab7883655a3773bcc8d22485ba8d3a20";
   meta = {
     description = "Various small helper functions for Lists, Maybes, Tuples, Functions";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
index 8f881fa0721e5..de2d1e1f020ae 100644
--- a/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
+++ b/pkgs/development/libraries/haskell/uu-parsinglib/default.nix
@@ -1,12 +1,18 @@
-{cabal, ListLike}:
+{ cabal, ListLike, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "uu-parsinglib";
-  version = "2.7.1";
-  sha256 = "10zpgpg93lp1jkrd77wkcdhf1a78hdzbvshq87q846nbv74f59cd";
-  propagatedBuildInputs = [ListLike];
+  version = "2.7.1.1";
+  sha256 = "1qn3impl64cvbzyvhc73yxyibgak4dkgl1vkbrzxrxb770kb5r4p";
+  buildDepends = [ ListLike time ];
   meta = {
-    description = "New version of the Utrecht University parser combinator library";
+    homepage = "http://www.cs.uu.nl/wiki/bin/view/HUT/ParserCombinators";
+    description = "Fast, online, error-correcting, monadic, applicative, merging, permuting, idiomatic parser combinators";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/uulib/default.nix b/pkgs/development/libraries/haskell/uulib/default.nix
index 98399dd11ccb8..38e9d27f1f080 100644
--- a/pkgs/development/libraries/haskell/uulib/default.nix
+++ b/pkgs/development/libraries/haskell/uulib/default.nix
@@ -1,10 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "uulib";
-  version = "0.9.13";
-  sha256 = "115fxvx5lqyjdwws6gkcixk1gi2p5gkyqinww7gbp54p4n0yy7n0";
+  version = "0.9.14";
+  sha256 = "0bi62l9fp1ghqq4dagdy4nsxmm08gpsrnfgy6d6k8f4239s3yr0z";
   meta = {
-    description = "Haskell Utecht Tools Library";
+    homepage = "http://www.cs.uu.nl/wiki/HUT/WebHome";
+    description = "Haskell Utrecht Tools Library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/vacuum-cairo/default.nix b/pkgs/development/libraries/haskell/vacuum-cairo/default.nix
index 249951659aaad..ccabd8cc7fa22 100644
--- a/pkgs/development/libraries/haskell/vacuum-cairo/default.nix
+++ b/pkgs/development/libraries/haskell/vacuum-cairo/default.nix
@@ -1,13 +1,21 @@
-{cabal, vacuum, cairo, svgcairo, gtk, parallel, strictConcurrency}:
+{ cabal, cairo, deepseq, gtk, strictConcurrency, svgcairo, vacuum
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "vacuum-cairo";
   version = "0.5";
   sha256 = "0jp3xn1h28igcg3xb97ifawx11i7adnyi0ff264w0fril9b8ylwc";
-  propagatedBuildInputs =
-    [vacuum cairo svgcairo gtk parallel strictConcurrency];
+  buildDepends = [
+    cairo deepseq gtk strictConcurrency svgcairo vacuum
+  ];
   meta = {
+    homepage = "http://code.haskell.org/~dons/code/vacuum-cairo";
     description = "Visualize live Haskell data structures using vacuum, graphviz and cairo";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/vacuum/default.nix b/pkgs/development/libraries/haskell/vacuum/default.nix
index 657ede90b0f73..960e90d645d87 100644
--- a/pkgs/development/libraries/haskell/vacuum/default.nix
+++ b/pkgs/development/libraries/haskell/vacuum/default.nix
@@ -1,12 +1,18 @@
-{cabal, ghcPaths}:
+{ cabal, ghcPaths }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "vacuum";
   version = "1.0.0";
   sha256 = "2229948ce801052c5ffb70ffc07e301d87d60740b053df8a7b7851ad02c01d9f";
-  propagatedBuildInputs = [ghcPaths];
+  extraLibraries = [ ghcPaths ];
   meta = {
+    homepage = "http://moonpatio.com/vacuum/";
     description = "Extract graph representations of ghc heap values";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/vector-algorithms/0.4.nix b/pkgs/development/libraries/haskell/vector-algorithms/0.4.nix
new file mode 100644
index 0000000000000..c8b1175542024
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vector-algorithms/0.4.nix
@@ -0,0 +1,18 @@
+{ cabal, primitive, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "vector-algorithms";
+  version = "0.4";
+  sha256 = "04ig2bx3gm42mwhcz5n8kp9sy33d1hrwm940kfxny74fc06422h8";
+  buildDepends = [ primitive vector ];
+  meta = {
+    homepage = "http://code.haskell.org/~dolio/";
+    description = "Efficient algorithms for vector arrays";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vector-algorithms/0.5.2.nix b/pkgs/development/libraries/haskell/vector-algorithms/0.5.2.nix
new file mode 100644
index 0000000000000..d58da61decc6f
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vector-algorithms/0.5.2.nix
@@ -0,0 +1,18 @@
+{ cabal, primitive, vector }:
+
+cabal.mkDerivation (self: {
+  pname = "vector-algorithms";
+  version = "0.5.2";
+  sha256 = "0ijn4hfaxqjvm91d7mihv62bdd7ph15h880w9lmbr93czbsp8mw1";
+  buildDepends = [ primitive vector ];
+  meta = {
+    homepage = "http://code.haskell.org/~dolio/";
+    description = "Efficient algorithms for vector arrays";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vector-algorithms/default.nix b/pkgs/development/libraries/haskell/vector-algorithms/default.nix
deleted file mode 100644
index 8759d960342db..0000000000000
--- a/pkgs/development/libraries/haskell/vector-algorithms/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, primitive, vector}:
-
-cabal.mkDerivation (self : {
-  pname = "vector-algorithms";
-  version = "0.4";
-  sha256 = "04ig2bx3gm42mwhcz5n8kp9sy33d1hrwm940kfxny74fc06422h8";
-  propagatedBuildInputs = [primitive vector];
-  meta = {
-    description = "Efficient algorithms for vector arrays";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/vector-space/default.nix b/pkgs/development/libraries/haskell/vector-space/default.nix
index a798cb7d589d9..0052b9b481591 100644
--- a/pkgs/development/libraries/haskell/vector-space/default.nix
+++ b/pkgs/development/libraries/haskell/vector-space/default.nix
@@ -1,14 +1,18 @@
-{cabal, Boolean, MemoTrie}:
+{ cabal, Boolean, MemoTrie }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "vector-space";
-  version = "0.5.9";
-  sha256 = "39045384ee1f37f92fc8a84b75eb63091d083298f7be5f51f81112dd42a553b0";
-  propagatedBuildInputs = [Boolean MemoTrie];
+  version = "0.7.3";
+  sha256 = "00lzhml1pc328iw9cip9yh54n0yqkwz1mxkv4gq2wlb7bzpfq1fx";
+  buildDepends = [ Boolean MemoTrie ];
   meta = {
-    description = "Vector & affine spaces, linear maps, and derivatives";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://haskell.org/haskellwiki/vector-space";
+    description = "Vector & affine spaces, linear maps, and derivatives (requires ghc 6.9 or better)";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/vector/default.nix b/pkgs/development/libraries/haskell/vector/default.nix
index 38159786245ed..8762d148e2816 100644
--- a/pkgs/development/libraries/haskell/vector/default.nix
+++ b/pkgs/development/libraries/haskell/vector/default.nix
@@ -1,14 +1,18 @@
-{cabal, primitive}:
+{ cabal, primitive }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "vector";
-  version = "0.7.0.1";
-  sha256 = "147kwm3p6w1qg1sg3ls7i8zj3mcnyxf80il4r5kz5fd3n1ibvyxj";
-  propagatedBuildInputs = [primitive];
+  version = "0.7.1";
+  sha256 = "1cdbkabw49pgc1j5h96inpmhn8ly230885d22smmynrq369pmg07";
+  buildDepends = [ primitive ];
   meta = {
-    description = "Efficient arrays";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    homepage = "http://code.haskell.org/vector";
+    description = "Efficient Arrays";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/vty/4.6.0.4.nix b/pkgs/development/libraries/haskell/vty/4.6.0.4.nix
new file mode 100644
index 0000000000000..55c7311844626
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vty/4.6.0.4.nix
@@ -0,0 +1,18 @@
+{ cabal, deepseq, mtl, parallel, parsec, terminfo, utf8String }:
+
+cabal.mkDerivation (self: {
+  pname = "vty";
+  version = "4.6.0.4";
+  sha256 = "0kabssw3v7nglvsr687ppmdnnmii1q2g5zg8rxwi2hcmvnjx7567";
+  buildDepends = [ deepseq mtl parallel parsec terminfo utf8String ];
+  meta = {
+    homepage = "http://trac.haskell.org/vty/";
+    description = "A simple terminal access library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vty/4.7.0.4.nix b/pkgs/development/libraries/haskell/vty/4.7.0.4.nix
new file mode 100644
index 0000000000000..8ef4c51d03d1d
--- /dev/null
+++ b/pkgs/development/libraries/haskell/vty/4.7.0.4.nix
@@ -0,0 +1,22 @@
+{ cabal, deepseq, mtl, parallel, parsec, terminfo, utf8String
+, vector
+}:
+
+cabal.mkDerivation (self: {
+  pname = "vty";
+  version = "4.7.0.4";
+  sha256 = "1rwki3ch1r3dqzb1cxmzxn05k49ams64licl0silbhsj3qibbj53";
+  buildDepends = [
+    deepseq mtl parallel parsec terminfo utf8String vector
+  ];
+  meta = {
+    homepage = "https://github.com/coreyoconnor/vty";
+    description = "A simple terminal access library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/vty/default.nix b/pkgs/development/libraries/haskell/vty/default.nix
deleted file mode 100644
index c0d536482211a..0000000000000
--- a/pkgs/development/libraries/haskell/vty/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{cabal, utf8String, terminfo, deepseq, mtl, parallel, parsec, vectorSpace}:
-
-cabal.mkDerivation (self : {
-  pname = "vty";
-  version = "4.6.0.4";
-  sha256 = "0kabssw3v7nglvsr687ppmdnnmii1q2g5zg8rxwi2hcmvnjx7567";
-  propagatedBuildInputs =
-    [utf8String terminfo deepseq mtl parallel parsec vectorSpace];
-  meta = {
-    description = "A simple terminal access library";
-  };
-})
diff --git a/pkgs/development/libraries/haskell/wai-app-static/default.nix b/pkgs/development/libraries/haskell/wai-app-static/default.nix
new file mode 100644
index 0000000000000..3fa0595bc13c3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wai-app-static/default.nix
@@ -0,0 +1,24 @@
+{ cabal, base64Bytestring, blazeBuilder, blazeHtml, cryptohash
+, fileEmbed, httpDate, httpTypes, text, time, transformers
+, unixCompat, wai
+}:
+
+cabal.mkDerivation (self: {
+  pname = "wai-app-static";
+  version = "0.3.3";
+  sha256 = "04b4cw93agw136xjh9rssiw96vz3kxji7zh209brwfnwh13bra17";
+  buildDepends = [
+    base64Bytestring blazeBuilder blazeHtml cryptohash fileEmbed
+    httpDate httpTypes text time transformers unixCompat wai
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/book/wai";
+    description = "WAI application for static serving";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/wai-extra/default.nix b/pkgs/development/libraries/haskell/wai-extra/default.nix
index 9b2ea52ed43a8..9fce21f06db31 100644
--- a/pkgs/development/libraries/haskell/wai-extra/default.nix
+++ b/pkgs/development/libraries/haskell/wai-extra/default.nix
@@ -1,18 +1,24 @@
-{cabal, blazeBuilder, blazeBuilderEnumerator, caseInsensitive, enumerator,
- httpTypes, network, text, transformers, wai, zlibBindings}:
+{ cabal, blazeBuilder, blazeBuilderEnumerator, caseInsensitive
+, enumerator, httpTypes, network, text, time, transformers, wai
+, zlibBindings
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "wai-extra";
-  version = "0.4.0.1";
-  sha256 = "0xj7dkwqa9axgm6cizf2kd97fakbmq5580mian888i5f21jn1n2z";
-  propagatedBuildInputs = [
+  version = "0.4.2";
+  sha256 = "1k2dsjramy14rfd1j8k7zgirdfl2zybd0z0pxkvxdrgr9s2pk51y";
+  buildDepends = [
     blazeBuilder blazeBuilderEnumerator caseInsensitive enumerator
-    httpTypes network text transformers wai zlibBindings
+    httpTypes network text time transformers wai zlibBindings
   ];
   meta = {
+    homepage = "http://github.com/yesodweb/wai";
     description = "Provides some basic WAI handlers and middleware";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/wai/default.nix b/pkgs/development/libraries/haskell/wai/default.nix
index 48eb38e3baef6..e7d7d48d738a6 100644
--- a/pkgs/development/libraries/haskell/wai/default.nix
+++ b/pkgs/development/libraries/haskell/wai/default.nix
@@ -1,14 +1,22 @@
-{cabal, blazeBuilder, enumerator, network, httpTypes, text, transformers}:
+{ cabal, blazeBuilder, enumerator, httpTypes, network, text
+, transformers
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "wai";
-  version = "0.4.0";
-  sha256 = "1xp03g3q967rpgas896a5j3y7hjiir4ny0qlwmaj5ki61zivjsln";
-  propagatedBuildInputs = [blazeBuilder enumerator network httpTypes text transformers];
+  version = "0.4.1";
+  sha256 = "089i9qj7vban1qdrdpx836c31yakg3l3lx7y36h56livy6n37k72";
+  buildDepends = [
+    blazeBuilder enumerator httpTypes network text transformers
+  ];
   meta = {
+    homepage = "http://github.com/snoyberg/wai";
     description = "Web Application Interface";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/warp/default.nix b/pkgs/development/libraries/haskell/warp/default.nix
index 38e94d0277fa2..843a931ef355a 100644
--- a/pkgs/development/libraries/haskell/warp/default.nix
+++ b/pkgs/development/libraries/haskell/warp/default.nix
@@ -1,18 +1,24 @@
-{cabal, blazeBuilder, blazeBuilderEnumerator, caseInsensitive, enumerator,
- httpTypes, network, simpleSendfile, transformers, unixCompat, wai}:
+{ cabal, blazeBuilder, blazeBuilderEnumerator, caseInsensitive
+, enumerator, httpTypes, network, simpleSendfile, transformers
+, unixCompat, wai
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "warp";
-  version = "0.4.1.1";
-  sha256 = "0qck4mpg4p6v2yx2r6qchqd3lvsn8n5ys6xsm11hhznc2r50aayh";
-  propagatedBuildInputs = [
+  version = "0.4.4";
+  sha256 = "1mlwny6pfgngpqb4lh6v373m98agf275mbl2p6mxxfh1581fz863";
+  buildDepends = [
     blazeBuilder blazeBuilderEnumerator caseInsensitive enumerator
     httpTypes network simpleSendfile transformers unixCompat wai
   ];
   meta = {
+    homepage = "http://github.com/snoyberg/warp";
     description = "A fast, light-weight web server for WAI applications";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/web-routes-quasi/default.nix b/pkgs/development/libraries/haskell/web-routes-quasi/default.nix
index 434a19cfcfea9..1660809df1aa2 100644
--- a/pkgs/development/libraries/haskell/web-routes-quasi/default.nix
+++ b/pkgs/development/libraries/haskell/web-routes-quasi/default.nix
@@ -1,13 +1,20 @@
-{cabal, text}:
+{ cabal, pathPieces, text }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "web-routes-quasi";
-  version = "0.7.0.1";
-  sha256 = "1khrf5kbw285hddyyzcz2mx4qpz46mdmlm31jszag2ay64gw35gw";
-  propagatedBuildInputs = [text];
+  version = "0.7.1";
+  sha256 = "0m5p21kbiawjpcs5c83aaypmpmx4avjcj0kzkn95zgdkqcz5kr12";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ pathPieces text ];
   meta = {
+    homepage = "http://docs.yesodweb.com/web-routes-quasi/";
     description = "Define data types and parse/build functions for web-routes via a quasi-quoted DSL";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/web-routes/default.nix b/pkgs/development/libraries/haskell/web-routes/default.nix
index cbd476ff7d008..aa5321c7f5f3f 100644
--- a/pkgs/development/libraries/haskell/web-routes/default.nix
+++ b/pkgs/development/libraries/haskell/web-routes/default.nix
@@ -1,13 +1,17 @@
-{cabal, network, parsec, utf8String}:
+{ cabal, mtl, network, parsec, utf8String }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "web-routes";
-  version = "0.22.0";
-  sha256 = "6482ecba585cf7b1f32c29bfd5cb6f5e06dba72231e38ae5baa15b6b95f7c6c8";
-  propagatedBuildInputs = [network parsec utf8String];
+  version = "0.25.2";
+  sha256 = "0gspjvk5859zwg55q8fjyz4a0d2p6lf2qwa41b8s6kcqi38nnp08";
+  buildDepends = [ mtl network parsec utf8String ];
   meta = {
     description = "Library for maintaining correctness and composability of URLs within an application";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/wl-pprint-text/default.nix b/pkgs/development/libraries/haskell/wl-pprint-text/default.nix
new file mode 100644
index 0000000000000..5833af8efaad9
--- /dev/null
+++ b/pkgs/development/libraries/haskell/wl-pprint-text/default.nix
@@ -0,0 +1,17 @@
+{ cabal, text }:
+
+cabal.mkDerivation (self: {
+  pname = "wl-pprint-text";
+  version = "1.0.0.0";
+  sha256 = "1zvjsbn98g0lja2jj00d7mvqjq4rik7v7wsy5655wibmy0hbll90";
+  buildDepends = [ text ];
+  meta = {
+    description = "A Wadler/Leijen Pretty Printer for Text values";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/wxHaskell/wx.nix b/pkgs/development/libraries/haskell/wxHaskell/wx.nix
index 49f2070b04d86..ec4511ee481e7 100644
--- a/pkgs/development/libraries/haskell/wxHaskell/wx.nix
+++ b/pkgs/development/libraries/haskell/wxHaskell/wx.nix
@@ -1,12 +1,18 @@
-{cabal, stm, wxcore}:
+{ cabal, stm, wxcore }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "wx";
   version = "0.12.1.6";
   sha256 = "1p0gn46gk1abin095va22n9bycxhm2cq1vyvwiypcdq7jq541lhk";
-  propagatedBuildInputs = [stm wxcore];
+  buildDepends = [ stm wxcore ];
   meta = {
+    homepage = "http://haskell.org/haskellwiki/WxHaskell";
     description = "wxHaskell";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix b/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix
index 6436953454961..c2fbdaeffa67d 100644
--- a/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix
+++ b/pkgs/development/libraries/haskell/wxHaskell/wxcore.nix
@@ -1,22 +1,19 @@
-{cabal, time, parsec, stm, wxdirect, libX11, mesa, wxGTK}:
+{ cabal, libX11, mesa, parsec, stm, time, wxdirect, wxGTK }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "wxcore";
-  version = "0.12.1.6";
-  sha256 = "162m7z8nzdwsszha87mvz7dzxh268n0sgymf3vq2yn5axw7zx5ap";
-  propagatedBuildInputs = [time parsec stm libX11 wxGTK mesa wxdirect];
-  preConfigure = ''
-    sed -i 's|\(containers.*\) && < 0.4|\1|' ${self.pname}.cabal
-  '';
-  /* configureFlags = [ "--with-opengl" ]; */
-  /*
-  preConfigure = ''
-    sed -i 's/ghc-pkg latest/ghc-pkg --global latest/g' configure
-    sed -i 's/pkg describe/pkg --global describe/g' configure
-  '';
-  */
+  version = "0.12.1.7";
+  sha256 = "12vs449xg2xjp503ywjwxadan3v7dq38ph66292szwj1vmhl07v4";
+  buildDepends = [ parsec stm time wxdirect ];
+  extraLibraries = [ libX11 mesa wxGTK ];
   meta = {
+    homepage = "http://haskell.org/haskellwiki/WxHaskell";
     description = "wxHaskell core";
+    license = "LGPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix b/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix
index 05d5a20702ff0..3cbd616353b9e 100644
--- a/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix
+++ b/pkgs/development/libraries/haskell/wxHaskell/wxdirect.nix
@@ -1,16 +1,20 @@
-{cabal, parsec, time}:
+{ cabal, parsec, time }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "wxdirect";
-  version = "0.12.1.3";
-  sha256 = "da59315339dc78b3bfbe08c1681d53c74a56e7c3de0f41a90099bd289b1bfb11";
-  preConfigure = ''
-    sed -i 's|\(containers.*\) && < 0.4|\1|' ${self.pname}.cabal
-    sed -i 's|\(time.*\) && < 1.2|\1|' ${self.pname}.cabal
-  '';
-  propagatedBuildInputs = [parsec time];
+  version = "0.12.1.4";
+  sha256 = "0v1blh3l02h58cvsngfax5knmg51lil1kj6pr5iqrbcrivp2nh7f";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ parsec time ];
   meta = {
+    homepage = "http://haskell.org/haskellwiki/WxHaskell";
     description = "helper tool for building wxHaskell";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/xhtml/3000.2.0.1.nix b/pkgs/development/libraries/haskell/xhtml/3000.2.0.1.nix
index 697e6bfc93d1b..3c369103486ae 100644
--- a/pkgs/development/libraries/haskell/xhtml/3000.2.0.1.nix
+++ b/pkgs/development/libraries/haskell/xhtml/3000.2.0.1.nix
@@ -1,11 +1,16 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "xhtml";
-  version = "3000.2.0.1"; # Haskell Platform 2009.0.0, 2010.1.0.0, 2010.2.0.0, 2011.2.0.0
+  version = "3000.2.0.1";
   sha256 = "15pcigascajky67v0lhdhn4bv8xq16cvzib05mg4f1ynwr5a9mv0";
   meta = {
     description = "An XHTML combinator library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/xhtml/3000.2.0.2.nix b/pkgs/development/libraries/haskell/xhtml/3000.2.0.2.nix
new file mode 100644
index 0000000000000..c098cf80cee00
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xhtml/3000.2.0.2.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "xhtml";
+  version = "3000.2.0.2";
+  sha256 = "14xfx4kmcl6xjn7lnpjd975wh8xakfpd8clcm5bw5n3g0b7agfli";
+  meta = {
+    description = "An XHTML combinator library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/xml-enumerator/default.nix b/pkgs/development/libraries/haskell/xml-enumerator/default.nix
new file mode 100644
index 0000000000000..cf77f04379c27
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xml-enumerator/default.nix
@@ -0,0 +1,27 @@
+{ cabal, attoparsecText, attoparsecTextEnumerator, blazeBuilder
+, blazeBuilderEnumerator, enumerator, failure, text, transformers
+, xmlTypes
+}:
+
+cabal.mkDerivation (self: {
+  pname = "xml-enumerator";
+  version = "0.3.4";
+  sha256 = "0sfscsfcfmx56sdxc0wn2j1pyqjd9w92igz1n9xaph7zfz61g9k2";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    attoparsecText attoparsecTextEnumerator blazeBuilder
+    blazeBuilderEnumerator enumerator failure text transformers
+    xmlTypes
+  ];
+  meta = {
+    homepage = "http://github.com/snoyberg/xml-enumerator";
+    description = "Pure-Haskell utilities for dealing with XML with the enumerator package";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/xml-types/default.nix b/pkgs/development/libraries/haskell/xml-types/default.nix
new file mode 100644
index 0000000000000..5b2d518402cd2
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xml-types/default.nix
@@ -0,0 +1,17 @@
+{ cabal, text }:
+
+cabal.mkDerivation (self: {
+  pname = "xml-types";
+  version = "0.3";
+  sha256 = "0d0x7s865ca7bscskp6s7zyzpzd22nkd61wzwg11v6h0q5dilly7";
+  buildDepends = [ text ];
+  meta = {
+    description = "Basic types for representing XML";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/xml/default.nix b/pkgs/development/libraries/haskell/xml/default.nix
index 055ead4838b59..1125ac1b5449c 100644
--- a/pkgs/development/libraries/haskell/xml/default.nix
+++ b/pkgs/development/libraries/haskell/xml/default.nix
@@ -1,11 +1,17 @@
-{cabal}:
+{ cabal }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "xml";
-  version = "1.3.5";
-  sha256 = "d61abd617e6e4d5b384e19403486ecc0e5dccf412a235acce2a7b7072e97c3ab";
+  version = "1.3.9";
+  sha256 = "1sx6k5dscpcy4aq09g7h0fz0sl4w2nrr4pnklgwrbrh6bf6kc6w2";
   meta = {
+    homepage = "http://code.galois.com";
     description = "A simple XML library";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/xss-sanitize/0.2.6.nix b/pkgs/development/libraries/haskell/xss-sanitize/0.2.6.nix
new file mode 100644
index 0000000000000..c1027ad269eb5
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xss-sanitize/0.2.6.nix
@@ -0,0 +1,18 @@
+{ cabal, network, tagsoup, utf8String }:
+
+cabal.mkDerivation (self: {
+  pname = "xss-sanitize";
+  version = "0.2.6";
+  sha256 = "18bkvrrkc0ga0610f8g3vghq0ib1yczn2n2zbzv7kg7m6bqgx2y5";
+  buildDepends = [ network tagsoup utf8String ];
+  meta = {
+    homepage = "http://github.com/gregwebs/haskell-xss-sanitize";
+    description = "sanitize untrusted HTML to prevent XSS attacks";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/xss-sanitize/0.3.0.1.nix b/pkgs/development/libraries/haskell/xss-sanitize/0.3.0.1.nix
new file mode 100644
index 0000000000000..e13e0e50c90b1
--- /dev/null
+++ b/pkgs/development/libraries/haskell/xss-sanitize/0.3.0.1.nix
@@ -0,0 +1,22 @@
+{ cabal, attoparsecText, cssText, network, tagsoup, text
+, utf8String
+}:
+
+cabal.mkDerivation (self: {
+  pname = "xss-sanitize";
+  version = "0.3.0.1";
+  sha256 = "1rycdjl7b7bk100vgdwy6iighdqsbsyvrklp0zqbl1x45abph9pc";
+  buildDepends = [
+    attoparsecText cssText network tagsoup text utf8String
+  ];
+  meta = {
+    homepage = "http://github.com/gregwebs/haskell-xss-sanitize";
+    description = "sanitize untrusted HTML to prevent XSS attacks";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/xss-sanitize/default.nix b/pkgs/development/libraries/haskell/xss-sanitize/default.nix
deleted file mode 100644
index 4203b037e92da..0000000000000
--- a/pkgs/development/libraries/haskell/xss-sanitize/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{cabal, network, tagsoup, utf8String}:
-
-cabal.mkDerivation (self : {
-  pname = "xss-sanitize";
-  version = "0.2.6";
-  sha256 = "18bkvrrkc0ga0610f8g3vghq0ib1yczn2n2zbzv7kg7m6bqgx2y5";
-  propagatedBuildInputs = [network tagsoup utf8String];
-  meta = {
-    description = "sanitize untrusted HTML to prevent XSS attacks";
-    license = "BSD";
-    maintainers = [self.stdenv.lib.maintainers.andres];
-  };
-})
-
diff --git a/pkgs/development/libraries/haskell/yap/default.nix b/pkgs/development/libraries/haskell/yap/default.nix
new file mode 100644
index 0000000000000..858466ab1a498
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yap/default.nix
@@ -0,0 +1,16 @@
+{ cabal }:
+
+cabal.mkDerivation (self: {
+  pname = "yap";
+  version = "0.0";
+  sha256 = "0cjsmf9p220fb9yf2i81xspa3rpnlln3hfb9yc5x6xbcc6py0nw5";
+  meta = {
+    description = "yet another prelude - a simplistic refactoring with algebraic classes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod-auth/default.nix b/pkgs/development/libraries/haskell/yesod-auth/default.nix
new file mode 100644
index 0000000000000..b2502047a0c54
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-auth/default.nix
@@ -0,0 +1,28 @@
+{ cabal, aesonNative, authenticate, blazeHtml, controlMonadAttempt
+, hamlet, httpEnumerator, mimeMail, persistent, persistentTemplate
+, pureMD5, pwstoreFast, random, SHA, shakespeareCss, text
+, transformers, wai, yesodCore, yesodForm, yesodJson
+, yesodPersistent
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-auth";
+  version = "0.7.1";
+  sha256 = "066aq7c5gwbspbib748ky3lsb84llnb954n018fk5xs7b4gbyybk";
+  buildDepends = [
+    aesonNative authenticate blazeHtml controlMonadAttempt hamlet
+    httpEnumerator mimeMail persistent persistentTemplate pureMD5
+    pwstoreFast random SHA shakespeareCss text transformers wai
+    yesodCore yesodForm yesodJson yesodPersistent
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Authentication for Yesod";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod-core/default.nix b/pkgs/development/libraries/haskell/yesod-core/default.nix
index 4c9634bf759bb..947cad77d5e81 100644
--- a/pkgs/development/libraries/haskell/yesod-core/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-core/default.nix
@@ -1,20 +1,28 @@
-{cabal, blazeBuilder, blazeHtml, caseInsensitive, cereal, clientsession,
- cookie, enumerator, failure, hamlet, httpTypes, monadControl, parsec,
- text, transformers, wai, waiExtra, webRoutesQuasi}:
+{ cabal, blazeBuilder, blazeHtml, caseInsensitive, cereal
+, clientsession, cookie, enumerator, failure, hamlet, httpTypes
+, monadControl, parsec, pathPieces, random, shakespeare
+, shakespeareCss, shakespeareJs, strictConcurrency, text, time
+, transformers, wai, waiExtra
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "yesod-core";
-  version = "0.8.2";
-  sha256 = "15h5nm45w3z1g4ayn0dj9grviqm857krad1453rway76yrrv7xsr";
-  propagatedBuildInputs = [
-    blazeBuilder blazeHtml caseInsensitive cereal clientsession
-    cookie enumerator failure hamlet httpTypes monadControl parsec
-    text transformers wai waiExtra webRoutesQuasi
+  version = "0.9.1";
+  sha256 = "03dbn915g6jkwk9fp5naqv5bq613nlfpc8jd7568cc1l41b95cbf";
+  buildDepends = [
+    blazeBuilder blazeHtml caseInsensitive cereal clientsession cookie
+    enumerator failure hamlet httpTypes monadControl parsec pathPieces
+    random shakespeare shakespeareCss shakespeareJs strictConcurrency
+    text time transformers wai waiExtra
   ];
   meta = {
+    homepage = "http://www.yesodweb.com/";
     description = "Creation of type-safe, RESTful web applications";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/yesod-form/default.nix b/pkgs/development/libraries/haskell/yesod-form/default.nix
index b190e8d848e15..5d841c925cd19 100644
--- a/pkgs/development/libraries/haskell/yesod-form/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-form/default.nix
@@ -1,21 +1,25 @@
-{cabal, blazeBuilder, blazeHtml, dataDefault, emailValidate, hamlet,
- network, persistent, text, transformers, wai, webRoutesQuasi,
- xssSanitize, yesodCore, yesodPersistent}:
+{ cabal, blazeBuilder, blazeHtml, dataDefault, emailValidate
+, hamlet, network, persistent, shakespeareCss, shakespeareJs, text
+, time, transformers, wai, xssSanitize, yesodCore, yesodPersistent
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "yesod-form";
-  version = "0.2.0";
-  sha256 = "1dwwndrb09bqfzrarxpiw29xqvxk70iy8b2vcy0rl6g2wvrcm8an";
-  propagatedBuildInputs = [
-    blazeBuilder blazeHtml dataDefault emailValidate hamlet
-    network persistent text transformers wai webRoutesQuasi
+  version = "0.3.1";
+  sha256 = "0xa9950michbwlp90xcr8ybpig7f026zwq28lg03zavnaqisqkfj";
+  buildDepends = [
+    blazeBuilder blazeHtml dataDefault emailValidate hamlet network
+    persistent shakespeareCss shakespeareJs text time transformers wai
     xssSanitize yesodCore yesodPersistent
   ];
-  noHaddock = true;
   meta = {
+    homepage = "http://www.yesodweb.com/";
     description = "Form handling support for Yesod Web Framework";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/yesod-json/default.nix b/pkgs/development/libraries/haskell/yesod-json/default.nix
index 7607dbfa15fb0..2e5df42d9dad9 100644
--- a/pkgs/development/libraries/haskell/yesod-json/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-json/default.nix
@@ -1,16 +1,18 @@
-{cabal, aeson, blazeTextual, hamlet, text, vector, yesodCore}:
+{ cabal, aesonNative, shakespeareJs, text, vector, yesodCore }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "yesod-json";
-  version = "0.1.1.1";
-  sha256 = "02mly02c6z49s0gznx47w919gcn7qz1qvr8704sab1sjk87cyjwl";
-  propagatedBuildInputs = [
-    aeson blazeTextual hamlet text vector yesodCore
-  ];
+  version = "0.2.1";
+  sha256 = "1d710pqrdafyz8s0spd19vwvx5v9kwy44wb0byz3445jhi3kwn88";
+  buildDepends = [ aesonNative shakespeareJs text vector yesodCore ];
   meta = {
+    homepage = "http://www.yesodweb.com/";
     description = "Generate content for Yesod using the aeson package";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/yesod-persistent/default.nix b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
index ded78d7b38262..187780f9ebbb0 100644
--- a/pkgs/development/libraries/haskell/yesod-persistent/default.nix
+++ b/pkgs/development/libraries/haskell/yesod-persistent/default.nix
@@ -1,16 +1,22 @@
-{cabal, failure, persistent, persistentTemplate, transformers, yesodCore}:
+{ cabal, failure, persistent, persistentTemplate, transformers
+, yesodCore
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "yesod-persistent";
-  version = "0.1.0";
-  sha256 = "1h0kk3sx0c4c3pcg3s2c5kfy0kz7gci45h4gsgrkhkcgg0pg324c";
-  propagatedBuildInputs = [
+  version = "0.2.1";
+  sha256 = "1ka8jsxr7i5rcjxnv82ykq34yqxqzxdvk4b3ck7pbvx2a4g7bxw9";
+  buildDepends = [
     failure persistent persistentTemplate transformers yesodCore
   ];
   meta = {
+    homepage = "http://www.yesodweb.com/";
     description = "Some helpers for using Persistent from Yesod";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/yesod-static/default.nix b/pkgs/development/libraries/haskell/yesod-static/default.nix
new file mode 100644
index 0000000000000..8fbc8baff49dc
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod-static/default.nix
@@ -0,0 +1,23 @@
+{ cabal, base64Bytestring, cereal, fileEmbed, httpTypes, pureMD5
+, text, transformers, unixCompat, wai, waiAppStatic, yesodCore
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod-static";
+  version = "0.3.0.1";
+  sha256 = "1dvg60kawmvczwxvkxzx5k19y36i23fi0faw71ck58mlkjdczby5";
+  buildDepends = [
+    base64Bytestring cereal fileEmbed httpTypes pureMD5 text
+    transformers unixCompat wai waiAppStatic yesodCore
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Static file serving subsite for Yesod Web Framework";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yesod/default.nix b/pkgs/development/libraries/haskell/yesod/default.nix
new file mode 100644
index 0000000000000..e09faa1fd8443
--- /dev/null
+++ b/pkgs/development/libraries/haskell/yesod/default.nix
@@ -0,0 +1,29 @@
+{ cabal, attoparsecText, blazeBuilder, blazeHtml, hamlet, httpTypes
+, monadControl, parsec, shakespeareCss, shakespeareJs, text, time
+, transformers, unixCompat, wai, waiExtra, warp, yesodAuth
+, yesodCore, yesodForm, yesodJson, yesodPersistent
+}:
+
+cabal.mkDerivation (self: {
+  pname = "yesod";
+  version = "0.9.1";
+  sha256 = "1ag3lca75lrriycbscspb5yyishacgxjx0rybc3x4z1dqnkn1r71";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [
+    attoparsecText blazeBuilder blazeHtml hamlet httpTypes monadControl
+    parsec shakespeareCss shakespeareJs text time transformers
+    unixCompat wai waiExtra warp yesodAuth yesodCore yesodForm
+    yesodJson yesodPersistent
+  ];
+  meta = {
+    homepage = "http://www.yesodweb.com/";
+    description = "Creation of type-safe, RESTful web applications";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/yst/default.nix b/pkgs/development/libraries/haskell/yst/default.nix
index ac65ef9d917ae..0810157ae54d1 100644
--- a/pkgs/development/libraries/haskell/yst/default.nix
+++ b/pkgs/development/libraries/haskell/yst/default.nix
@@ -1,14 +1,25 @@
-{cabal, HStringTemplate, csv, pandoc, parsec, split, utf8String, xhtml, HsSyck, time}:
+{ cabal, csv, HsSyck, HStringTemplate, pandoc, parsec, split, time
+, utf8String, xhtml
+}:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "yst";
-  version = "0.2.3.2";
-  sha256 = "b857e70db67d708e2edb61a1d6bc4eaff3abd2bc252b3605f66bf1760da4da4b";
-  propagatedBuildInputs = [
-    HStringTemplate csv pandoc parsec split utf8String xhtml HsSyck time
+  version = "0.2.4.1";
+  sha256 = "0y620p6kn1mky30fia63na5idppfjfmc828jcaa0ads08rmj5wgy";
+  isLibrary = false;
+  isExecutable = true;
+  buildDepends = [
+    csv HsSyck HStringTemplate pandoc parsec split time utf8String
+    xhtml
   ];
   meta = {
-    description =
-      "Builds a static website from templates and data in YAML or CSV files";
+    homepage = "http://github.com/jgm/yst";
+    description = "Builds a static website from templates and data in YAML or CSV files";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/zip-archive/default.nix b/pkgs/development/libraries/haskell/zip-archive/default.nix
index 7ff5c1d480c27..327a1ec5141f9 100644
--- a/pkgs/development/libraries/haskell/zip-archive/default.nix
+++ b/pkgs/development/libraries/haskell/zip-archive/default.nix
@@ -1,12 +1,20 @@
-{cabal, binary, mtl, utf8String, zlib, digest}:
+{ cabal, binary, digest, mtl, utf8String, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "zip-archive";
   version = "0.1.1.7";
   sha256 = "1q52v18kl1j049kk3yb7rp0k27p6q7r72mg1vcbdid6qd7a9dh48";
-  propagatedBuildInputs = [binary mtl utf8String zlib digest];
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ binary digest mtl utf8String zlib ];
   meta = {
+    homepage = "http://github.com/jgm/zip-archive";
     description = "Library for creating and modifying zip archives";
+    license = "GPL";
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/zipper/default.nix b/pkgs/development/libraries/haskell/zipper/default.nix
index 36dbc389fb758..4cfca3bf1a3fa 100644
--- a/pkgs/development/libraries/haskell/zipper/default.nix
+++ b/pkgs/development/libraries/haskell/zipper/default.nix
@@ -1,12 +1,18 @@
-{cabal, multirec}:
+{ cabal, multirec }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "zipper";
-  version = "0.3";
-  sha256 = "3f6cc0ea69734d0523f1bf74d14953f88a196e728f89a7cc91f394d9e0c13c15";
-  propagatedBuildInputs = [multirec];
+  version = "0.3.1";
+  sha256 = "170qjc3mbk6i96z5js745ix57i0xkgpa5h9xjiiirq9x6bfbbqyp";
+  buildDepends = [ multirec ];
   meta = {
-    description = "Generic zipper for systems of recursive datatypes";
+    homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/Multirec";
+    description = "Generic zipper for families of recursive datatypes";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/zlib-bindings/default.nix b/pkgs/development/libraries/haskell/zlib-bindings/default.nix
index efe5e4134a81c..6398ba4b2751f 100644
--- a/pkgs/development/libraries/haskell/zlib-bindings/default.nix
+++ b/pkgs/development/libraries/haskell/zlib-bindings/default.nix
@@ -1,14 +1,20 @@
-{cabal, zlib}:
+{ cabal, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "zlib-bindings";
-  version = "0.0.0";
-  sha256 = "168sll6mrmcnvdmdx79izqxcrli1s7asp4qilhkqss8w0jlrv1ni";
-  propagatedBuildInputs = [zlib];
+  version = "0.0.1";
+  sha256 = "0m8q155yyrd4q1ddfmmhdx88mg1875ywrlr484qwpcyd58gn3bkv";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ zlib ];
   meta = {
+    homepage = "http://github.com/snoyberg/zlib-bindings";
     description = "Low-level bindings to the zlib package";
-    license = "BSD3";
-    maintainers = [self.stdenv.lib.maintainers.andres];
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
-
diff --git a/pkgs/development/libraries/haskell/zlib-enum/default.nix b/pkgs/development/libraries/haskell/zlib-enum/default.nix
new file mode 100644
index 0000000000000..3e99ed8d5c9a3
--- /dev/null
+++ b/pkgs/development/libraries/haskell/zlib-enum/default.nix
@@ -0,0 +1,20 @@
+{ cabal, enumerator, transformers, zlibBindings }:
+
+cabal.mkDerivation (self: {
+  pname = "zlib-enum";
+  version = "0.2.1";
+  sha256 = "0cnx7sbgj6s0gvq6pcqyi3xahx7x3bj47ap10z89qfbk0906rkq8";
+  isLibrary = true;
+  isExecutable = true;
+  buildDepends = [ enumerator transformers zlibBindings ];
+  meta = {
+    homepage = "http://github.com/maltem/zlib-enum";
+    description = "Enumerator interface for zlib compression";
+    license = self.stdenv.lib.licenses.mit;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
+  };
+})
diff --git a/pkgs/development/libraries/haskell/zlib/0.5.0.0.nix b/pkgs/development/libraries/haskell/zlib/0.5.0.0.nix
index f034e43160af6..60f81e7f9846b 100644
--- a/pkgs/development/libraries/haskell/zlib/0.5.0.0.nix
+++ b/pkgs/development/libraries/haskell/zlib/0.5.0.0.nix
@@ -1,13 +1,17 @@
-{cabal, zlib}:
+{ cabal, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "zlib";
-  version = "0.5.0.0"; # Haskell Platform 2009.0.0
+  version = "0.5.0.0";
   sha256 = "20e067cfbec87ec062ac144875a60e158ea6cf7836aac031ec367fcdd5446891";
-  # TODO: find out exactly why propagated is needed here (to build other
-  # packages depending on zlib):
-  propagatedBuildInputs = [zlib];
+  extraLibraries = [ zlib ];
   meta = {
     description = "Compression and decompression in the gzip and zlib formats";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/zlib/0.5.2.0.nix b/pkgs/development/libraries/haskell/zlib/0.5.2.0.nix
index 80bf428c70609..5ec59a9690f3d 100644
--- a/pkgs/development/libraries/haskell/zlib/0.5.2.0.nix
+++ b/pkgs/development/libraries/haskell/zlib/0.5.2.0.nix
@@ -1,13 +1,17 @@
-{cabal, zlib}:
+{ cabal, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "zlib";
-  version = "0.5.2.0"; # Haskell Platform 2010.1.0.0 and 2010.2.0.0
+  version = "0.5.2.0";
   sha256 = "4119fb627e0adc2b129acd86fe5724cf05a49d8de5b64eb7a6e519d3befd3b8f";
-  # TODO: find out exactly why propagated is needed here (to build other
-  # packages depending on zlib):
-  propagatedBuildInputs = [zlib];
+  extraLibraries = [ zlib ];
   meta = {
     description = "Compression and decompression in the gzip and zlib formats";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })
diff --git a/pkgs/development/libraries/haskell/zlib/0.5.3.1.nix b/pkgs/development/libraries/haskell/zlib/0.5.3.1.nix
index 3d3b2184da8a0..f4355c0a9549d 100644
--- a/pkgs/development/libraries/haskell/zlib/0.5.3.1.nix
+++ b/pkgs/development/libraries/haskell/zlib/0.5.3.1.nix
@@ -1,13 +1,17 @@
-{cabal, zlib}:
+{ cabal, zlib }:
 
-cabal.mkDerivation (self : {
+cabal.mkDerivation (self: {
   pname = "zlib";
-  version = "0.5.3.1"; # Haskell Platform 2011.2.0.0
+  version = "0.5.3.1";
   sha256 = "1hj56lk4g2zr7acdda39zib1bj02777q0asm5ms9rfj7kp81caiq";
-  # TODO: find out exactly why propagated is needed here (to build other
-  # packages depending on zlib):
-  propagatedBuildInputs = [zlib];
+  extraLibraries = [ zlib ];
   meta = {
     description = "Compression and decompression in the gzip and zlib formats";
+    license = self.stdenv.lib.licenses.bsd3;
+    platforms = self.ghc.meta.platforms;
+    maintainers = [
+      self.stdenv.lib.maintainers.andres
+      self.stdenv.lib.maintainers.simons
+    ];
   };
 })