summary refs log tree commit diff
path: root/pkgs/development/haskell-modules
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2017-12-30 17:04:54 +0100
committerFrederik Rietdijk <fridh@fridh.nl>2017-12-30 17:04:54 +0100
commit2d0bead714eb5f99a08c54a3b25cd84379c251c2 (patch)
treed1a3616057aa65e89422a1663174300d9cf2661f /pkgs/development/haskell-modules
parentd2b02d662ef78d70c16ac564dfe2454522e9a424 (diff)
parent9d4de1eac81e58f45727a069811bc7fb9b07177d (diff)
downloadnixlib-2d0bead714eb5f99a08c54a3b25cd84379c251c2.tar
nixlib-2d0bead714eb5f99a08c54a3b25cd84379c251c2.tar.gz
nixlib-2d0bead714eb5f99a08c54a3b25cd84379c251c2.tar.bz2
nixlib-2d0bead714eb5f99a08c54a3b25cd84379c251c2.tar.lz
nixlib-2d0bead714eb5f99a08c54a3b25cd84379c251c2.tar.xz
nixlib-2d0bead714eb5f99a08c54a3b25cd84379c251c2.tar.zst
nixlib-2d0bead714eb5f99a08c54a3b25cd84379c251c2.zip
Merge remote-tracking branch 'upstream/master' into HEAD
Diffstat (limited to 'pkgs/development/haskell-modules')
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix30
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix171
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix.yaml39
-rw-r--r--pkgs/development/haskell-modules/default.nix2
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix4
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix580
-rw-r--r--pkgs/development/haskell-modules/hie-packages.nix459
-rw-r--r--pkgs/development/haskell-modules/initial-packages.nix2
-rw-r--r--pkgs/development/haskell-modules/lib.nix80
-rw-r--r--pkgs/development/haskell-modules/patches/hie-testsuite.patch40
11 files changed, 1173 insertions, 240 deletions
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 9298aa84a897..cc86252a1aff 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -1012,4 +1012,10 @@ self: super: {
       { patches = (drv.patches or []) ++ [ patch ];
         editedCabalFile = null;
       });
+
+  # https://github.com/haskell/cabal/issues/4969
+  haddock-library_1_4_4 = dontHaddock super.haddock-library_1_4_4;
+
+  haddock-api = super.haddock-api.override
+    { haddock-library = self.haddock-library_1_4_4; };
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
index 1a9158fa6651..fc41fc0b3d30 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-7.10.x.nix
@@ -161,8 +161,7 @@ self: super: {
   vty-ui = enableCabalFlag super.vty-ui "no-tests";
 
   # https://github.com/fpco/stackage/issues/1112
-  vector-algorithms = addBuildDepends (dontCheck super.vector-algorithms)
-    [ self.mtl self.mwc-random ];
+  vector-algorithms = addBuildDepends (dontCheck super.vector-algorithms) [ self.mtl self.mwc-random ];
 
   # vector with ghc < 8.0 needs semigroups
   vector = addBuildDepend super.vector self.semigroups;
@@ -182,30 +181,39 @@ self: super: {
   unordered-containers = dontCheck super.unordered-containers;
 
   # GHC versions prior to 8.x require additional build inputs.
-  dependent-map = addBuildDepend super.dependent-map self.semigroups;
-  distributive = addBuildDepend (dontCheck super.distributive) self.semigroups;
-  mono-traversable = addBuildDepend super.mono-traversable self.semigroups;
-  attoparsec = addBuildDepends super.attoparsec (with self; [semigroups fail]);
-  Glob = addBuildDepends super.Glob (with self; [semigroups]);
   aeson = disableCabalFlag (addBuildDepend super.aeson self.semigroups) "old-locale";
+  ansi-wl-pprint = addBuildDepend super.ansi-wl-pprint self.semigroups;
+  attoparsec = addBuildDepends super.attoparsec (with self; [semigroups fail]);
   bytes = addBuildDepend super.bytes self.doctest;
   case-insensitive = addBuildDepend super.case-insensitive self.semigroups;
+  dependent-map = addBuildDepend super.dependent-map self.semigroups;
+  distributive = addBuildDepend (dontCheck super.distributive) self.semigroups;
+  Glob = addBuildDepends super.Glob (with self; [semigroups]);
   hoauth2 = overrideCabal super.hoauth2 (drv: { testDepends = (drv.testDepends or []) ++ [ self.wai self.warp ]; });
   hslogger = addBuildDepend super.hslogger self.HUnit;
   intervals = addBuildDepends super.intervals (with self; [doctest QuickCheck]);
   lens = addBuildDepend super.lens self.generic-deriving;
-  optparse-applicative = addBuildDepend super.optparse-applicative self.semigroups;
+  mono-traversable = addBuildDepend super.mono-traversable self.semigroups;
+  natural-transformation = addBuildDepend super.natural-transformation self.semigroups;
+  optparse-applicative = addBuildDepends super.optparse-applicative [self.semigroups self.fail];
   QuickCheck = addBuildDepend super.QuickCheck self.semigroups;
   semigroups = addBuildDepends (dontCheck super.semigroups) (with self; [hashable tagged text unordered-containers]);
   texmath = addBuildDepend super.texmath self.network-uri;
   yesod-auth-oauth2 = overrideCabal super.yesod-auth-oauth2 (drv: { testDepends = (drv.testDepends or []) ++ [ self.load-env self.yesod ]; });
-  natural-transformation = addBuildDepend super.natural-transformation self.semigroups;
-  # cereal must have `fail` in pre-ghc-8.0.x versions
-  # also tests require bytestring>=0.10.8.1
+
+  # cereal must have `fail` in pre-ghc-8.0.x versions and tests require
+  # bytestring>=0.10.8.1.
   cereal = dontCheck (addBuildDepend super.cereal self.fail);
 
   # The test suite requires Cabal 1.24.x or later to compile.
   comonad = dontCheck super.comonad;
   semigroupoids = dontCheck super.semigroupoids;
 
+  # Newer versions require base >=4.9 && <5.
+  colour = self.colour_2_3_3;
+
+  # https://github.com/atzedijkstra/chr/issues/1
+  chr-pretty = doJailbreak super.chr-pretty;
+  chr-parse = doJailbreak super.chr-parse;
+
 }
diff --git a/pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix b/pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix
deleted file mode 100644
index 372155a8791c..000000000000
--- a/pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix
+++ /dev/null
@@ -1,171 +0,0 @@
-{ pkgs, haskellLib }:
-
-with haskellLib;
-
-self: super: {
-
-  # Suitable LLVM version.
-  llvmPackages = pkgs.llvmPackages_34;
-
-  # Disable GHC 7.8.x core libraries.
-  array = null;
-  base = null;
-  binary = null;
-  bin-package-db = null;
-  bytestring = null;
-  Cabal = null;
-  containers = null;
-  deepseq = null;
-  directory = null;
-  filepath = null;
-  ghc-prim = null;
-  haskeline = null;
-  haskell2010 = null;
-  haskell98 = null;
-  hoopl = null;
-  hpc = null;
-  integer-gmp = null;
-  old-locale = null;
-  old-time = null;
-  pretty = null;
-  process = null;
-  rts = null;
-  template-haskell = null;
-  terminfo = null;
-  time = null;
-  transformers = null;
-  unix = null;
-  xhtml = null;
-
-  # Requires ghc 8.2
-  ghc-proofs = dontDistribute super.ghc-proofs;
-
-  # https://github.com/peti/jailbreak-cabal/issues/9
-  jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_1_20_0_4; };
-
-  # mtl 2.2.x needs the latest transformers.
-  mtl_2_2_1 = super.mtl.override { transformers = self.transformers_0_4_3_0; };
-
-  # Configure mtl 2.1.x.
-  mtl = self.mtl_2_1_3_1;
-  transformers-compat = addBuildDepend (enableCabalFlag super.transformers-compat "three") self.mtl;
-  mtl-compat = addBuildDepend (enableCabalFlag super.mtl-compat "two-point-one") self.transformers-compat;
-
-  # haddock-api 2.16 requires ghc>=7.10
-  haddock-api = super.haddock-api_2_15_0_2;
-
-  # This is part of bytestring in our compiler.
-  bytestring-builder = dontHaddock super.bytestring-builder;
-
-  # Won't compile against mtl 2.1.x.
-  imports = super.imports.override { mtl = self.mtl_2_2_1; };
-
-  # Newer versions require mtl 2.2.x.
-  mtl-prelude = self.mtl-prelude_1_0_3;
-
-  # purescript requires mtl 2.2.x.
-  purescript = overrideCabal (super.purescript.overrideScope (self: super: {
-    mkDerivation = drv: super.mkDerivation (drv // { doCheck = false; });
-    mtl = super.mtl_2_2_1;
-    transformers = super.transformers_0_4_3_0;
-    haskeline = self.haskeline_0_7_3_1;
-    transformers-compat = disableCabalFlag super.transformers-compat "three";
-  })) (drv: {});
-
-  # The test suite pulls in mtl 2.2.x
-  command-qq = dontCheck super.command-qq;
-
-  # Doesn't support GHC < 7.10.x.
-  bound-gen = dontDistribute super.bound-gen;
-  ghc-exactprint = dontDistribute super.ghc-exactprint;
-  ghc-typelits-natnormalise = dontDistribute super.ghc-typelits-natnormalise;
-
-  # Needs directory >= 1.2.2.0.
-  idris = markBroken super.idris;
-
-  # Newer versions require transformers 0.4.x.
-  seqid = super.seqid_0_1_0;
-  seqid-streams = super.seqid-streams_0_1_0;
-
-  # These packages need mtl 2.2.x directly or indirectly via dependencies.
-  amazonka = markBroken super.amazonka;
-  apiary-purescript = markBroken super.apiary-purescript;
-  clac = dontDistribute super.clac;
-  highlighter2 = markBroken super.highlighter2;
-  hypher = markBroken super.hypher;
-  miniforth = markBroken super.miniforth;
-  xhb-atom-cache = markBroken super.xhb-atom-cache;
-  xhb-ewmh = markBroken super.xhb-ewmh;
-  yesod-purescript = markBroken super.yesod-purescript;
-  yet-another-logger = markBroken super.yet-another-logger;
-
-  # https://github.com/frosch03/arrowVHDL/issues/2
-  ArrowVHDL = markBroken super.ArrowVHDL;
-
-  # https://ghc.haskell.org/trac/ghc/ticket/9625
-  wai-middleware-preprocessor = dontCheck super.wai-middleware-preprocessor;
-  incremental-computing = dontCheck super.incremental-computing;
-
-  # Newer versions require base > 4.7
-  gloss = super.gloss_1_9_2_1;
-
-  # Workaround for a workaround, see comment for "ghcjs" flag.
-  jsaddle = let jsaddle' = disableCabalFlag super.jsaddle "ghcjs";
-            in addBuildDepends jsaddle' [ self.glib self.gtk3 self.webkitgtk3
-                                          self.webkitgtk3-javascriptcore ];
-
-  # Needs hashable on pre 7.10.x compilers.
-  nats_1 = addBuildDepend super.nats_1 self.hashable;
-  nats = addBuildDepend super.nats self.hashable;
-
-  # needs mtl-compat to build with mtl 2.1.x
-  cgi = addBuildDepend super.cgi self.mtl-compat;
-
-  # https://github.com/magthe/sandi/issues/7
-  sandi = overrideCabal super.sandi (drv: {
-    postPatch = "sed -i -e 's|base ==4.8.*,|base,|' sandi.cabal";
-  });
-
-  # Overriding mtl 2.2.x is fine here because ghc-events is an stand-alone executable.
-  ghc-events = super.ghc-events.override { mtl = self.mtl_2_2_1; };
-
-  # The network library is required in configurations that don't have network-uri.
-  hxt = addBuildDepend super.hxt self.network;
-  hxt_9_3_1_7 = addBuildDepend super.hxt_9_3_1_7 self.network;
-  hxt_9_3_1_10 = addBuildDepend super.hxt_9_3_1_10 self.network;
-  hxt_9_3_1_12 = addBuildDepend super.hxt_9_3_1_12 self.network;
-  xss-sanitize = addBuildDepend super.xss-sanitize self.network;
-  xss-sanitize_0_3_5_4 = addBuildDepend super.xss-sanitize_0_3_5_4 self.network;
-  xss-sanitize_0_3_5_5 = addBuildDepend super.xss-sanitize_0_3_5_5 self.network;
-
-  # Needs void on pre 7.10.x compilers.
-  conduit = addBuildDepend super.conduit self.void;
-  conduit_1_2_5 = addBuildDepend super.conduit_1_2_5 self.void;
-
-  # Breaks a dependency cycle between QuickCheck and semigroups
-  hashable = dontCheck super.hashable;
-  unordered-containers = dontCheck super.unordered-containers;
-
-  # Needs additional inputs on old compilers.
-  semigroups = addBuildDepends (dontCheck super.semigroups) (with self; [nats tagged unordered-containers]);
-  lens = addBuildDepends super.lens (with self; [doctest generic-deriving nats simple-reflect]);
-  distributive = addBuildDepend (dontCheck super.distributive) self.semigroups;
-  QuickCheck = addBuildDepends super.QuickCheck (with self; [nats semigroups]);
-  void = addBuildDepends super.void (with self; [hashable semigroups]);
-  optparse-applicative = addBuildDepend super.optparse-applicative self.semigroups;
-  vector = addBuildDepend super.vector self.semigroups;
-
-  # Haddock doesn't cope with the new markup.
-  bifunctors = dontHaddock super.bifunctors;
-
-  # extra-test: <stdout>: hFlush: invalid argument (Bad file descriptor)
-  extra = dontCheck super.extra;
-
-  # The test suite requires Cabal 1.24.x or later to compile.
-  comonad = dontCheck super.comonad;
-  semigroupoids = dontCheck super.semigroupoids;
-
-  # https://github.com/simonmar/happy/issues/103
-  happy = super.happy.override { mtl = self.mtl_2_2_1; };
-
-}
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index c831106b9612..55d40020f8be 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -2674,6 +2674,7 @@ extra-packages:
   - Cabal == 1.18.*                     # required for cabal-install et al on old GHC versions
   - Cabal == 1.20.*                     # required for cabal-install et al on old GHC versions
   - Cabal == 1.24.*                     # required for jailbreak-cabal etc.
+  - colour < 2.3.4                      # newer versions don't support GHC 7.10.x
   - containers < 0.5                    # required to build alex with GHC 6.12.3
   - control-monad-free < 0.6            # newer versions don't compile with anything but GHC 7.8.x
   - deepseq == 1.3.0.1                  # required to build Cabal with GHC 6.12.3
@@ -2747,7 +2748,6 @@ package-maintainers:
     - path-pieces
     - persistent
     - persistent-postgresql
-    - persistent-redis
     - persistent-sqlite
     - persistent-template
     - shakespeare
@@ -2903,6 +2903,7 @@ dont-distribute-packages:
   AC-MiniTest:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   AC-Terminal:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   AC-VanillaArray:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  accelerate-fourier:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-llvm-native:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-llvm:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   accelerate-random:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -2953,6 +2954,8 @@ dont-distribute-packages:
   AERN-Real:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   AERN-RnToRm-Plot:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   AERN-RnToRm:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
+  aern2-mp:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  aern2-real:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-applicative:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-bson:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   aeson-extra:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3330,6 +3333,7 @@ dont-distribute-packages:
   bla:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   blakesum-demo:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   blakesum:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  blank-canvas:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   blas-carray:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   blas-ffi:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   blas-hs:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3338,6 +3342,7 @@ dont-distribute-packages:
   blaze-builder-enumerator:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   blaze-html-contrib:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   blaze-html-hexpat:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  blaze-html-truncate:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   blaze-json:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   blaze-textual-native:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   ble:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3587,6 +3592,8 @@ dont-distribute-packages:
   chp-spec:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   chp-transformers:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   chp:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  chr-core:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  chr-lang:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ChristmasTree:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   chronograph:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   chu2:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3603,6 +3610,8 @@ dont-distribute-packages:
   citeproc-hs:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   cjk:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   clac:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  clafer:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  claferIG:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   claferwiki:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   clang-pure:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   clanki:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3641,6 +3650,7 @@ dont-distribute-packages:
   click-clack:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   clif:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   clifford:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
+  clingo:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   clippard:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   clipper:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   clippings:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3678,6 +3688,7 @@ dont-distribute-packages:
   codecov-haskell:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   codemonitor:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   codepad:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  codeworld-api:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   codex:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   cognimeta-utils:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   coin:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -3831,6 +3842,7 @@ dont-distribute-packages:
   couchdb-enumerator:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   CouchDB:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   countable-inflections:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  courier:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   court:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   coverage:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   cparsing:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4069,6 +4081,7 @@ dont-distribute-packages:
   dhcp-lease-parser:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-boolean:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-builder:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  diagrams-canvas:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-graphviz:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-gtk:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   diagrams-haddock:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4175,6 +4188,7 @@ dont-distribute-packages:
   domain-auth:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   domplate:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   dot-linker:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  dotenv:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   dotfs:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   doublify-toolkit:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   download-media-content:                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4251,6 +4265,7 @@ dont-distribute-packages:
   eccrypto:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   ecdsa:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   ecma262:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ecstasy:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   ecu:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   eddie:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   edenmodules:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -4967,6 +4982,7 @@ dont-distribute-packages:
   gyah-bin:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   h-booru:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   h-gpgme:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
+  h-reversi:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   h2048:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   h2c:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   haar:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5680,6 +5696,7 @@ dont-distribute-packages:
   hsdns-cache:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   Hsed:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsenv:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hsfacter:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsfcsh:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   HSFFIG:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hsfilt:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5810,6 +5827,8 @@ dont-distribute-packages:
   hunit-gui:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   hunit-rematch:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   hunp:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hunt-searchengine:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hunt-server:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hup:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   hurdle:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hurriyet:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5824,6 +5843,9 @@ dont-distribute-packages:
   hworker-ses:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   hworker:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   hws:                                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hwsl2-bytevector:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hwsl2-reducers:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
+  hwsl2:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   HXMPP:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   hxmppc:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   hxournal:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5893,6 +5915,7 @@ dont-distribute-packages:
   ihaskell-charts:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-diagrams:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-display:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  ihaskell-gnuplot:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-hatex:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-inline-r:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   ihaskell-juicypixels:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -5955,7 +5978,6 @@ dont-distribute-packages:
   interleavableIO:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   interlude-l:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   internetmarke:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
-  intero-nix-shim:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   interpol:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   interpolatedstring-qq-mwotton:                [ i686-linux, x86_64-linux, x86_64-darwin ]
   interpolatedstring-qq:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -6360,6 +6382,7 @@ dont-distribute-packages:
   liquid:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   liquidhaskell-cabal-demo:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   liquidhaskell-cabal:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  liquidhaskell:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   list-mux:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   list-prompt:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   list-remote-forwards:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7079,6 +7102,7 @@ dont-distribute-packages:
   panda:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-crossref:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-csv2table:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pandoc-emphasize-code:                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-include-code:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-include:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   pandoc-japanese-filters:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7177,6 +7201,7 @@ dont-distribute-packages:
   persistent-map:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   persistent-mysql-haskell:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   persistent-protobuf:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  persistent-redis:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   persistent-relational-record:                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   persistent-zookeeper:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   persona-idp:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7236,6 +7261,7 @@ dont-distribute-packages:
   pipes-s3:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-shell:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-sqlite-simple:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
+  pipes-transduce:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-zeromq4:                                [ i686-linux, x86_64-linux, x86_64-darwin ]
   pipes-zlib:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   pisigma:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7371,6 +7397,7 @@ dont-distribute-packages:
   process-listlike:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   process-progress:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   process-qq:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  process-streaming:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   processing:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   procrastinating-structure:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   procrastinating-variable:                     [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7425,6 +7452,7 @@ dont-distribute-packages:
   PUH-Project:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   punkt:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   Pup-Events-Demo:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
+  puppetresources:                              [ i686-linux, x86_64-linux, x86_64-darwin ]
   pure-cdb:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   pure-priority-queue-tests:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   pure-priority-queue:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7607,6 +7635,7 @@ dont-distribute-packages:
   reflex-sdl2:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
   reflex-transformers:                          [ i686-linux, x86_64-linux, x86_64-darwin ]
   reflex:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
+  reformat:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   refresht:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   refurb:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   regex-deriv:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -7935,6 +7964,7 @@ dont-distribute-packages:
   servant-mock:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-pool:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-postgresql:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
+  servant-proto-lens:                           [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-pushbullet-client:                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-py:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   servant-router:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8344,6 +8374,7 @@ dont-distribute-packages:
   stutter:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   stylized:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   sub-state:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
+  subhask:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   subleq-toolchain:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
   submark:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   successors:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8450,6 +8481,7 @@ dont-distribute-packages:
   tamarin-prover-utils:                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   tamarin-prover:                               [ i686-linux, x86_64-linux, x86_64-darwin ]
   Tape:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
+  target:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   tart:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
   task-distribution:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   task:                                         [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8553,6 +8585,7 @@ dont-distribute-packages:
   th-alpha:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   th-build:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   th-context:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
+  th-dict-discovery:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   th-fold:                                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   th-instance-reification:                      [ i686-linux, x86_64-linux, x86_64-darwin ]
   th-instances:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -8875,7 +8908,6 @@ dont-distribute-packages:
   variables:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
   vault-tool-server:                            [ i686-linux, x86_64-linux, x86_64-darwin ]
   vaultaire-common:                             [ i686-linux, x86_64-linux, x86_64-darwin ]
-  vaultenv:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   vcatt:                                        [ i686-linux, x86_64-linux, x86_64-darwin ]
   vcsgui:                                       [ i686-linux, x86_64-linux, x86_64-darwin ]
   Vec-Boolean:                                  [ i686-linux, x86_64-linux, x86_64-darwin ]
@@ -9167,6 +9199,7 @@ dont-distribute-packages:
   yaml-rpc:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   yaml2owl:                                     [ i686-linux, x86_64-linux, x86_64-darwin ]
   yamlkeysdiff:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
+  yampa-canvas:                                 [ i686-linux, x86_64-linux, x86_64-darwin ]
   yampa-glfw:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   yampa-glut:                                   [ i686-linux, x86_64-linux, x86_64-darwin ]
   yampa2048:                                    [ i686-linux, x86_64-linux, x86_64-darwin ]
diff --git a/pkgs/development/haskell-modules/default.nix b/pkgs/development/haskell-modules/default.nix
index 1658ce793936..4db418a7775b 100644
--- a/pkgs/development/haskell-modules/default.nix
+++ b/pkgs/development/haskell-modules/default.nix
@@ -2,7 +2,7 @@
 , compilerConfig ? (self: super: {})
 , packageSetConfig ? (self: super: {})
 , overrides ? (self: super: {})
-, initialPackages ? import ./hackage-packages.nix
+, initialPackages ? import ./initial-packages.nix
 , configurationCommon ? import ./configuration-common.nix
 , configurationNix ? import ./configuration-nix.nix
 }:
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index b80c5df68aa0..c633310a37a4 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -276,7 +276,7 @@ stdenv.mkDerivation ({
 
     echo configureFlags: $configureFlags
     ${setupCommand} configure $configureFlags 2>&1 | ${coreutils}/bin/tee "$NIX_BUILD_TOP/cabal-configure.log"
-    if ${gnugrep}/bin/egrep -q '^Warning:.*depends on multiple versions' "$NIX_BUILD_TOP/cabal-configure.log"; then
+    if ${gnugrep}/bin/egrep -q -z 'Warning:.*depends on multiple versions' "$NIX_BUILD_TOP/cabal-configure.log"; then
       echo >&2 "*** abort because of serious configure-time warning from Cabal"
       exit 1
     fi
@@ -356,6 +356,8 @@ stdenv.mkDerivation ({
 
     inherit pname version;
 
+    compiler = ghc;
+
     isHaskellLibrary = hasActiveLibrary;
 
     # TODO: ask why the split outputs are configurable at all?
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index f163abc47a06..e80879fb9f61 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -8461,8 +8461,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "HSlippyMap";
-       version = "2.5";
-       sha256 = "10n69p8ka1ri54in7yh1gjwh7fcw8nx4rvfhs9gcxmvawj96fyab";
+       version = "3.0";
+       sha256 = "1kqyahisqzilndargvyh0gqln3471ll1jkpnayirfi9am1by4f93";
        libraryHaskellDepends = [ base ];
        homepage = "https://github.com/apeyroux/HSlippyMap";
        description = "OpenStreetMap Slippy Map";
@@ -20125,6 +20125,7 @@ self: {
        homepage = "http://hub.darcs.net/thielema/accelerate-fourier/";
        description = "Fast Fourier transform and convolution using the Accelerate framework";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "accelerate-fourier-benchmark" = callPackage
@@ -21304,6 +21305,7 @@ self: {
        homepage = "https://github.com/michalkonecny/aern2";
        description = "Multi-precision floats via MPFR";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "aern2-real" = callPackage
@@ -21328,6 +21330,7 @@ self: {
        homepage = "https://github.com/michalkonecny/aern2";
        description = "Exact real numbers via Cauchy sequences and MPFR";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "aeson_0_7_0_6" = callPackage
@@ -29046,8 +29049,8 @@ self: {
      }:
      mkDerivation {
        pname = "ats-format";
-       version = "0.1.0.7";
-       sha256 = "03ps4c40zf4mipdkg3cmr5x656xjdqfb5466h0prcywbh076ry2l";
+       version = "0.1.0.8";
+       sha256 = "0hgzcgdpi9y039f45slaali0az3mjzvm2vv49iw3yglm1gvqkfzj";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -35345,6 +35348,7 @@ self: {
        homepage = "https://github.com/ku-fpg/blank-canvas/wiki";
        description = "HTML5 Canvas Graphics Library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "blas" = callPackage
@@ -35614,6 +35618,7 @@ self: {
        homepage = "http://github.com/mruegenberg/blaze-html-truncate";
        description = "A truncator for blaze-html";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "blaze-json" = callPackage
@@ -43069,6 +43074,7 @@ self: {
        homepage = "https://github.com/atzedijkstra/chr";
        description = "Constraint Handling Rules";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "chr-data" = callPackage
@@ -43108,6 +43114,7 @@ self: {
        homepage = "https://github.com/atzedijkstra/chr";
        description = "AST + surface language around chr";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "chr-parse" = callPackage
@@ -43795,6 +43802,7 @@ self: {
        homepage = "http://clafer.org";
        description = "Compiles Clafer models to other formats: Alloy, JavaScript, JSON, HTML, Dot";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "claferIG" = callPackage
@@ -43828,6 +43836,7 @@ self: {
        homepage = "http://clafer.org";
        description = "claferIG is an interactive tool that generates instances of Clafer models";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "claferwiki" = callPackage
@@ -44748,6 +44757,7 @@ self: {
        homepage = "https://github.com/tsahyt/clingo-haskell#readme";
        description = "Haskell bindings to the Clingo ASP solver";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) clingo;};
 
   "clippard" = callPackage
@@ -45856,6 +45866,7 @@ self: {
        ];
        description = "Graphics library for CodeWorld";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "codex" = callPackage
@@ -46351,6 +46362,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "colour_2_3_3" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "colour";
+       version = "2.3.3";
+       sha256 = "1qmn1778xzg07jg9nx4k1spdz2llivpblf6wwrps1qpqjhsac5cd";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base ];
+       homepage = "http://www.haskell.org/haskellwiki/Colour";
+       description = "A model for human colour/color perception";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "colour" = callPackage
     ({ mkDerivation, base, QuickCheck, random, test-framework
      , test-framework-quickcheck2
@@ -50564,6 +50589,7 @@ self: {
        homepage = "http://github.com/hargettp/courier";
        description = "A message-passing library for simplifying network applications";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "court" = callPackage
@@ -56842,6 +56868,19 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "debug-pp" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "debug-pp";
+       version = "0.1.0.0";
+       sha256 = "05cq6qlp014a9d7zvi7kablswxdf0801ybi29c4m2v9vkqakhwcj";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [ base ];
+       homepage = "https://github.com/pepeiborra/debug-hoed-pp#readme";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "debug-time" = callPackage
     ({ mkDerivation, base, clock, containers }:
      mkDerivation {
@@ -58454,6 +58493,7 @@ self: {
        homepage = "http://projects.haskell.org/diagrams/";
        description = "HTML5 canvas backend for diagrams drawing EDSL";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "diagrams-contrib" = callPackage
@@ -61819,6 +61859,37 @@ self: {
        homepage = "https://github.com/stackbuilders/dotenv-hs";
        description = "Loads environment variables from dotenv files";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "dotenv_0_5_2_1" = callPackage
+    ({ mkDerivation, base, base-compat, directory, exceptions, hspec
+     , hspec-megaparsec, megaparsec, optparse-applicative, process, text
+     , transformers, yaml
+     }:
+     mkDerivation {
+       pname = "dotenv";
+       version = "0.5.2.1";
+       sha256 = "0nd4d12sj93gs0n7pgdhailrwd56h33xy894n5m6zfi4ay43s62r";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base base-compat directory exceptions megaparsec process text
+         transformers yaml
+       ];
+       executableHaskellDepends = [
+         base base-compat megaparsec optparse-applicative process text
+         transformers yaml
+       ];
+       testHaskellDepends = [
+         base base-compat directory exceptions hspec hspec-megaparsec
+         megaparsec process text transformers yaml
+       ];
+       homepage = "https://github.com/stackbuilders/dotenv-hs";
+       description = "Loads environment variables from dotenv files";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "dotfs" = callPackage
@@ -63683,6 +63754,7 @@ self: {
        homepage = "http://github.com/isovector/ecstasy/";
        description = "A GHC.Generics based entity component system.";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ecu" = callPackage
@@ -72049,8 +72121,8 @@ self: {
        pname = "flock";
        version = "0.3.1.8";
        sha256 = "1g1gf7qnlqkl57h28nzxnbzj7v2h73czffp5y7s7jm9vbihcwd4n";
-       revision = "2";
-       editedCabalFile = "0xsi6bwqd57qwr9bjd2nck7q3gbmbsl9pb1rk6h4bbmm1ciybv19";
+       revision = "3";
+       editedCabalFile = "06hdirzgghlxpdymb5b5l58v20m34lmn2z8hmp9lwcskc8xfqqfn";
        libraryHaskellDepends = [
          base lifted-base monad-control transformers unix
        ];
@@ -76461,6 +76533,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "generic-lens_0_5_1_0" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, doctest
+     , inspection-testing, lens, profunctors, QuickCheck, tagged
+     }:
+     mkDerivation {
+       pname = "generic-lens";
+       version = "0.5.1.0";
+       sha256 = "09q13axb00kgy2w9c7lq84sh113vhxlw0g8zcjg07a1kp9wj7l47";
+       libraryHaskellDepends = [ base profunctors tagged ];
+       testHaskellDepends = [ base doctest inspection-testing lens ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq lens QuickCheck
+       ];
+       homepage = "https://github.com/kcsongor/generic-lens";
+       description = "Generic data-structure operations exposed as lenses";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "generic-lucid-scaffold" = callPackage
     ({ mkDerivation, base, lucid, text }:
      mkDerivation {
@@ -86185,6 +86276,7 @@ self: {
        homepage = "https://github.com/apoorvingle/h-reversi";
        description = "Reversi game in haskell/blank-canvas";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "h2048" = callPackage
@@ -91794,6 +91886,28 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
+  "haskell-lsp-client_1_0_0_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , haskell-lsp, lens, process, text, unix
+     }:
+     mkDerivation {
+       pname = "haskell-lsp-client";
+       version = "1.0.0.1";
+       sha256 = "06zx80nhhf5fik84rijaxzjy9yv1c29g6hwfx73axlav80g176qw";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers haskell-lsp lens process text
+       ];
+       executableHaskellDepends = [
+         base directory haskell-lsp lens process text unix
+       ];
+       homepage = "https://github.com/noughtmare/haskell-lsp-client#readme";
+       description = "A haskell package to build your own Language Server client";
+       license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "haskell-menu" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
@@ -97883,22 +97997,21 @@ self: {
      }) {geos_c = null;};
 
   "hgettext" = callPackage
-    ({ mkDerivation, base, Cabal, containers, directory, filepath
-     , haskell-src-exts, process, setlocale, uniplate
+    ({ mkDerivation, base, Cabal, containers, deepseq, directory
+     , filepath, haskell-src-exts, process, setlocale, uniplate
      }:
      mkDerivation {
        pname = "hgettext";
-       version = "0.1.30";
-       sha256 = "1pgzyd1nqzl7g88pcw7sncija5sd2k4zif9d8qfw96cw6m6kli96";
-       revision = "3";
-       editedCabalFile = "1cxc4jqkngabnramva9s718mavk1082pjkkq2z8x326k0v269w2g";
+       version = "0.1.31.0";
+       sha256 = "0s7kgpjlkkw32rbksic099m9g07czi0vrhcn7mbiyi0lyhcbc7ym";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base Cabal containers directory filepath process setlocale
        ];
-       executableHaskellDepends = [ base haskell-src-exts uniplate ];
-       homepage = "https://github.com/vasylp/hgettext";
+       executableHaskellDepends = [
+         base Cabal containers deepseq filepath haskell-src-exts uniplate
+       ];
        description = "Bindings to libintl.h (gettext, bindtextdomain)";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -98221,6 +98334,20 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hidden-char_0_1_0_2" = callPackage
+    ({ mkDerivation, base, hspec }:
+     mkDerivation {
+       pname = "hidden-char";
+       version = "0.1.0.2";
+       sha256 = "167l83cn37mkq394pbanybz1kghnbim1m74fxskws1nclxr9747a";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec ];
+       homepage = "https://github.com/rcook/hidden-char#readme";
+       description = "Provides getHiddenChar function";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hieraclus" = callPackage
     ({ mkDerivation, base, containers, HUnit, mtl, multiset }:
      mkDerivation {
@@ -100017,6 +100144,21 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "hlint-test" = callPackage
+    ({ mkDerivation, base, hlint }:
+     mkDerivation {
+       pname = "hlint-test";
+       version = "0.1.0.0";
+       sha256 = "1lvbhhcxs9axvpm5m3axni30aafa9d32jrx00072kywm536gnnny";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base hlint ];
+       executableHaskellDepends = [ base hlint ];
+       homepage = "https://github.com/Siprj/hlint-test#readme";
+       description = "Run hlint in test suite";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hlogger" = callPackage
     ({ mkDerivation, base, old-locale, time }:
      mkDerivation {
@@ -104995,6 +105137,7 @@ self: {
        homepage = "http://lpuppet.banquise.net";
        description = "A small and ugly library that emulates the output of the puppet facter program";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hsfcsh" = callPackage
@@ -108495,6 +108638,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "http-reverse-proxy_0_5_0" = callPackage
+    ({ mkDerivation, async, base, blaze-builder, bytestring
+     , case-insensitive, conduit, conduit-extra, containers
+     , data-default-class, hspec, http-client, http-conduit, http-types
+     , lifted-base, monad-control, network, resourcet, streaming-commons
+     , text, transformers, wai, wai-logger, warp, word8
+     }:
+     mkDerivation {
+       pname = "http-reverse-proxy";
+       version = "0.5.0";
+       sha256 = "10j58i0xkbf84ypk5q8pxz2a85kk24s4xqhkprr6j12d4hx1zl6i";
+       libraryHaskellDepends = [
+         async base blaze-builder bytestring case-insensitive conduit
+         conduit-extra containers data-default-class http-client http-types
+         lifted-base monad-control network resourcet streaming-commons text
+         transformers wai wai-logger word8
+       ];
+       testHaskellDepends = [
+         base blaze-builder bytestring conduit conduit-extra hspec
+         http-conduit http-types lifted-base network resourcet
+         streaming-commons transformers wai warp
+       ];
+       homepage = "https://github.com/fpco/http-reverse-proxy";
+       description = "Reverse proxy HTTP requests, either over raw sockets or with WAI";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "http-server" = callPackage
     ({ mkDerivation, base, HTTP, mime, network, network-uri, text, unix
      , url, utf8-string
@@ -109192,6 +109363,7 @@ self: {
        homepage = "http://github.com/hunt-framework/";
        description = "A search and indexing engine";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hunt-server" = callPackage
@@ -109216,6 +109388,7 @@ self: {
        homepage = "http://github.com/hunt-framework";
        description = "A search and indexing engine server";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hunt-server-cli" = callPackage
@@ -110093,6 +110266,7 @@ self: {
        homepage = "https://github.com/srijs/hwsl2";
        description = "Hashing with SL2";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hwsl2-bytevector" = callPackage
@@ -110105,6 +110279,7 @@ self: {
        homepage = "https://github.com/srijs/hwsl2-haskell-bytevector";
        description = "A hashed byte-vector based on algebraic hashes and finger trees";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hwsl2-reducers" = callPackage
@@ -110119,6 +110294,7 @@ self: {
        homepage = "https://github.com/srijs/hwsl2-reducers";
        description = "Semigroup and Reducer instances for Data.Hash.SL2";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hx" = callPackage
@@ -112049,6 +112225,7 @@ self: {
        homepage = "http://www.github.com/gibiansky/ihaskell";
        description = "IHaskell display instance for Gnuplot (from gnuplot package)";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ihaskell-hatex" = callPackage
@@ -125961,8 +126138,8 @@ self: {
      }:
      mkDerivation {
        pname = "liquid-fixpoint";
-       version = "0.7.0.5";
-       sha256 = "081z90vcqrmfjc3jna419a8ziif2rcrag4ba4h902lrjh5hpvpaj";
+       version = "0.7.0.6";
+       sha256 = "1sbvnj2as93dywh43zcsb23hr1mqlia5gr2sw08ynqh48dcx181p";
        configureFlags = [ "-fbuild-external" ];
        isLibrary = true;
        isExecutable = true;
@@ -125991,17 +126168,16 @@ self: {
     ({ mkDerivation, aeson, array, base, bifunctors, binary, bytestring
      , Cabal, cereal, cmdargs, containers, data-default, deepseq, Diff
      , directory, exceptions, filepath, fingertree, ghc, ghc-boot
-     , ghc-paths, ghc-prim, hashable, hint, hpc, hscolour
-     , liquid-fixpoint, located-base, mtl, optparse-applicative, parsec
-     , pretty, process, QuickCheck, stm, syb, tagged, tasty
-     , tasty-ant-xml, tasty-hunit, tasty-rerun, template-haskell
-     , temporary, text, text-format, th-lift, time, transformers
-     , unordered-containers, vector, z3
+     , ghc-paths, ghc-prim, hashable, hpc, hscolour, liquid-fixpoint
+     , located-base, mtl, optparse-applicative, parsec, pretty, process
+     , QuickCheck, stm, syb, tagged, tasty, tasty-ant-xml, tasty-hunit
+     , tasty-rerun, template-haskell, temporary, text, text-format
+     , th-lift, time, transformers, unordered-containers, vector, z3
      }:
      mkDerivation {
        pname = "liquidhaskell";
-       version = "0.8.2.0";
-       sha256 = "17fm1jn00wns6nkwvxm96j85jwiiaqmw3s7w4ilkslzgr9wslp8f";
+       version = "0.8.2.2";
+       sha256 = "0rq0fs5ydwiqi2f3pn9q4d1agbmz0z46ws2q5w8y7lrsb2mr4zf3";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -126014,8 +126190,8 @@ self: {
          transformers unordered-containers vector
        ];
        executableHaskellDepends = [
-         base cmdargs deepseq ghc ghc-boot hint hpc liquid-fixpoint
-         located-base pretty process time
+         base cmdargs deepseq ghc ghc-boot hpc liquid-fixpoint located-base
+         pretty process time
        ];
        testHaskellDepends = [
          array base bytestring containers directory filepath ghc ghc-boot
@@ -126027,6 +126203,7 @@ self: {
        homepage = "https://github.com/ucsd-progsys/liquidhaskell";
        description = "Liquid Types for Haskell";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) z3;};
 
   "liquidhaskell-cabal" = callPackage
@@ -132088,6 +132265,28 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "mega-sdist_0_3_0_6" = callPackage
+    ({ mkDerivation, base, bytestring, classy-prelude-conduit
+     , conduit-extra, directory, filepath, http-conduit, optparse-simple
+     , tar-conduit, temporary, text, typed-process, yaml
+     }:
+     mkDerivation {
+       pname = "mega-sdist";
+       version = "0.3.0.6";
+       sha256 = "0cgak9hp1j9ybcpbqjs56pq7h9wn0my46mlx6nqv3fvidwdp5vl7";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring classy-prelude-conduit conduit-extra directory
+         filepath http-conduit optparse-simple tar-conduit temporary text
+         typed-process yaml
+       ];
+       homepage = "https://github.com/snoyberg/mega-sdist#readme";
+       description = "Handles uploading to Hackage from mega repos";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "megaparsec" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
      , criterion, deepseq, hspec, hspec-expectations, mtl
@@ -134323,6 +134522,36 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "mmark_0_0_4_0" = callPackage
+    ({ mkDerivation, aeson, base, case-insensitive, containers
+     , criterion, data-default-class, deepseq, dlist, email-validate
+     , foldl, hashable, hspec, hspec-megaparsec, html-entity-map, lucid
+     , megaparsec, microlens, microlens-th, modern-uri, mtl
+     , parser-combinators, QuickCheck, text, text-metrics
+     , unordered-containers, weigh, yaml
+     }:
+     mkDerivation {
+       pname = "mmark";
+       version = "0.0.4.0";
+       sha256 = "05dslarsdfcp2im9w80ks52wzqcqq8ma23b69wdl8nyfbkmaj5ch";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base case-insensitive containers data-default-class deepseq
+         dlist email-validate foldl hashable html-entity-map lucid
+         megaparsec microlens microlens-th modern-uri mtl parser-combinators
+         text text-metrics unordered-containers yaml
+       ];
+       testHaskellDepends = [
+         aeson base foldl hspec hspec-megaparsec lucid megaparsec modern-uri
+         QuickCheck text
+       ];
+       benchmarkHaskellDepends = [ base criterion text weigh ];
+       homepage = "https://github.com/mrkkrp/mmark";
+       description = "Strict markdown processor for writers";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "mmark-ext" = callPackage
     ({ mkDerivation, base, data-default-class, foldl, hspec, lucid
      , mmark, modern-uri, text
@@ -141796,8 +142025,8 @@ self: {
        pname = "networked-game";
        version = "0.1.0.1";
        sha256 = "12sy97cgqrsmqywh0cznp8wbsw8z2yahlfalsjy32qarcz44banz";
-       revision = "2";
-       editedCabalFile = "0bnf9c2f176f0sgxa7h78ikd6hn3rxz0xz31sjm0yzx1r7gaxzrw";
+       revision = "4";
+       editedCabalFile = "1rcqsw6f6b1a7sfk38hvil0278cxsq071jwwvfcsi6qhy6kb4jh0";
        libraryHaskellDepends = [
          base binary bytestring containers network time transformers
        ];
@@ -143200,6 +143429,28 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "nqe" = callPackage
+    ({ mkDerivation, async, base, bytestring, conduit, conduit-extra
+     , containers, exceptions, hspec, lifted-async, lifted-base
+     , monad-control, stm, stm-conduit, text, transformers-base
+     }:
+     mkDerivation {
+       pname = "nqe";
+       version = "0.1.0.0";
+       sha256 = "1cg9f0bjf8sar3scln73ij0av4jwwv8ki44fdh1dbhcy1c9fn5d4";
+       libraryHaskellDepends = [
+         async base bytestring conduit conduit-extra containers lifted-async
+         lifted-base monad-control stm transformers-base
+       ];
+       testHaskellDepends = [
+         async base bytestring conduit conduit-extra exceptions hspec stm
+         stm-conduit text
+       ];
+       homepage = "https://github.com/xenog/nqe#readme";
+       description = "Concurrency library in the style of Erlang/OTP";
+       license = stdenv.lib.licenses.publicDomain;
+     }) {};
+
   "nsis" = callPackage
     ({ mkDerivation, base, directory, process, transformers, uniplate
      }:
@@ -144170,8 +144421,8 @@ self: {
      }:
      mkDerivation {
        pname = "ocaml-export";
-       version = "0.1.1.0";
-       sha256 = "1rj2pq87i9jlg74pxqc6npsskfv1p8my1572kmmb98nd7a2qxdp1";
+       version = "0.2.0.0";
+       sha256 = "043vpjj3y8s0jyg5dfbbmxl6hypywn97m4f7ka7svkr84clzpjc7";
        libraryHaskellDepends = [
          aeson base bytestring containers directory file-embed filepath
          formatting hspec-golden-aeson mtl QuickCheck
@@ -145058,8 +145309,8 @@ self: {
     ({ mkDerivation, aeson, base, data-default, text, time }:
      mkDerivation {
        pname = "opench-meteo";
-       version = "0.2.0.0";
-       sha256 = "1h3slv334cx571l1k113qq0fg9ggznp0f0cabrdm7lr1jldn94wy";
+       version = "0.2.0.2";
+       sha256 = "0xj9v7xl11j6p4kk5dz64kqpmyc5d68sldakiaby0j8qvyw7sf9r";
        libraryHaskellDepends = [ aeson base data-default text time ];
        homepage = "https://github.com/hansroland/opench";
        description = "A Haskell implementation of the Swiss Meteo Net data API";
@@ -147287,6 +147538,43 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "pandoc-citeproc_0_12_2_2" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
+     , Cabal, containers, data-default, directory, filepath, hs-bibutils
+     , mtl, old-locale, pandoc, pandoc-types, parsec, process, rfc5051
+     , setenv, split, syb, tagsoup, temporary, text, time
+     , unordered-containers, vector, xml-conduit, yaml
+     }:
+     mkDerivation {
+       pname = "pandoc-citeproc";
+       version = "0.12.2.2";
+       sha256 = "00cz17pkpkm5xwmrvjrzz9bwybiqxyymcz1mic7955hlzhfk82c2";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal ];
+       libraryHaskellDepends = [
+         aeson base bytestring containers data-default directory filepath
+         hs-bibutils mtl old-locale pandoc pandoc-types parsec rfc5051
+         setenv split syb tagsoup text time unordered-containers vector
+         xml-conduit yaml
+       ];
+       executableHaskellDepends = [
+         aeson aeson-pretty attoparsec base bytestring containers directory
+         filepath mtl pandoc pandoc-types process syb temporary text vector
+         yaml
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers directory filepath mtl pandoc
+         pandoc-types process temporary text yaml
+       ];
+       doCheck = false;
+       homepage = "https://github.com/jgm/pandoc-citeproc";
+       description = "Supports using pandoc with citeproc";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "pandoc-citeproc-preamble" = callPackage
     ({ mkDerivation, base, directory, filepath, pandoc-types, process
      }:
@@ -147366,8 +147654,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-emphasize-code";
-       version = "0.2.1";
-       sha256 = "13i9smymv24k3vssz49fhv33qd99lqyf081q5p613wgcmg21iakg";
+       version = "0.2.2";
+       sha256 = "05vf3fli3glq013c9w9bbjggndfwhjb1rqxqspxyfh8pi14sbj9v";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -147382,6 +147670,7 @@ self: {
        homepage = "https://github.com/owickstrom/pandoc-emphasize-code";
        description = "A Pandoc filter for emphasizing code in fenced blocks";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pandoc-filter-graphviz" = callPackage
@@ -147432,8 +147721,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-include-code";
-       version = "1.2.0.1";
-       sha256 = "1qcmhdx47grgjydq0dzcz6iss247p0y8432bpw908ygr222gkqhp";
+       version = "1.2.0.2";
+       sha256 = "0mnk6ld2d1bka2wmz9718k8rfdbzhp4ym3axn4js4m0ka51w50h9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -151076,7 +151365,7 @@ self: {
        ];
        description = "Backend for persistent library using Redis";
        license = stdenv.lib.licenses.bsd3;
-       maintainers = with stdenv.lib.maintainers; [ psibi ];
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "persistent-refs" = callPackage
@@ -152864,8 +153153,8 @@ self: {
      }:
      mkDerivation {
        pname = "pipes-key-value-csv";
-       version = "0.4.0.2";
-       sha256 = "0v7gqic7d4prdgwjkncnx1fzk38nxwfij9pnpnp7d8n0kwdcnbix";
+       version = "0.4.0.3";
+       sha256 = "02wdna1kjjz0pkap3pfvzl336aapjv6ylmg5qwa6hr07d7sfbh3l";
        libraryHaskellDepends = [
          base bifunctors containers data-default-class lens mtl pipes
          pipes-bytestring pipes-group pipes-parse pipes-safe pipes-text
@@ -153224,6 +153513,7 @@ self: {
        ];
        description = "Interfacing pipes with foldl folds";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pipes-vector" = callPackage
@@ -153307,6 +153597,8 @@ self: {
        pname = "pipes-zlib";
        version = "0.4.4.1";
        sha256 = "1sdxhb3000k57ck1mbasdwaxmkmw2bbh2m1ry3fvpgsilq91xb4g";
+       revision = "1";
+       editedCabalFile = "1vjvbww9b0892p1r1vz3biim3r5zaxkg8ks8w9cj2nc6i0bs7qy1";
        libraryHaskellDepends = [
          base bytestring pipes streaming-commons transformers
        ];
@@ -157734,6 +158026,7 @@ self: {
        ];
        description = "Streaming interface to system processes";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "processing" = callPackage
@@ -159251,6 +159544,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "publicsuffix_0_20171229" = callPackage
+    ({ mkDerivation, base, criterion, filepath, hspec, random
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "publicsuffix";
+       version = "0.20171229";
+       sha256 = "03qvd0a13r4b45rz2wbf7kad17v0x3f6mrcv2slhyh0x4a1ca2s0";
+       libraryHaskellDepends = [ base filepath template-haskell ];
+       testHaskellDepends = [ base hspec ];
+       benchmarkHaskellDepends = [ base criterion random ];
+       homepage = "https://github.com/wereHamster/publicsuffix-haskell/";
+       description = "The publicsuffix list exposed as proper Haskell types";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "publicsuffixlist" = callPackage
     ({ mkDerivation, base, bytestring, cereal, containers, data-default
      , HUnit, idna, text, utf8-string
@@ -159557,6 +159867,7 @@ self: {
        homepage = "http://lpuppet.banquise.net";
        description = "A program that displays the puppet resources associated to a node given .pp files.";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pure-cdb" = callPackage
@@ -159968,6 +160279,32 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "pusher-http-haskell_1_5_1_0" = callPackage
+    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
+     , cryptonite, hashable, hspec, http-client, http-types, memory
+     , QuickCheck, scientific, text, time, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "pusher-http-haskell";
+       version = "1.5.1.0";
+       sha256 = "1mnigsf10jxqsvjr1vbizxjrf97w3cx54xy850mj3b8i34929bmh";
+       libraryHaskellDepends = [
+         aeson base base16-bytestring bytestring cryptonite hashable
+         http-client http-types memory text time transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base base16-bytestring bytestring cryptonite hspec
+         http-client http-types QuickCheck scientific text time transformers
+         unordered-containers vector
+       ];
+       homepage = "https://github.com/pusher-community/pusher-http-haskell";
+       description = "Haskell client library for the Pusher HTTP API";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "pusher-ws" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, deepseq
      , hashable, http-conduit, lens, lens-aeson, network, scientific
@@ -165092,6 +165429,7 @@ self: {
        homepage = "https://github.com/Qinka/reformat";
        description = "The parser and render to parsec and render the string";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "refresht" = callPackage
@@ -174056,7 +174394,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-auth-cookie_0_6_0" = callPackage
+  "servant-auth-cookie_0_6_0_1" = callPackage
     ({ mkDerivation, base, base64-bytestring, blaze-builder, bytestring
      , cereal, cereal-time, cookie, criterion, cryptonite, data-default
      , deepseq, exceptions, hspec, http-api-data, http-types, memory
@@ -174065,8 +174403,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-auth-cookie";
-       version = "0.6.0";
-       sha256 = "04pyy8534hnwwa5z423d6p5j2d5mzwbgls2q11hcma35nkz8y0xw";
+       version = "0.6.0.1";
+       sha256 = "0fbzcqav3cgnjvbfw0yrqlp36c8fk3ab3ff0am5cwvic8db1kqhb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -175166,6 +175504,7 @@ self: {
        homepage = "https://github.com/plredmond/servant-proto-lens";
        description = "Servant Content-Type for proto-lens protobuf modules";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "servant-purescript" = callPackage
@@ -175489,8 +175828,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-snap";
-       version = "0.8.0.1";
-       sha256 = "06n9zvz18hwizi5iqldlhgwr1m83fg5l3dzlaarl2rgvr1dnkh2i";
+       version = "0.8.1";
+       sha256 = "0l85gs987g6z3r6pqrf79279l1jmxq3pl8xjz62ps0p3ww1rp296";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -175501,7 +175840,7 @@ self: {
        ];
        executableHaskellDepends = [
          aeson base bytestring either errors heist lens map-syntax servant
-         snap snap-core snap-server text transformers
+         snap snap-core snap-cors snap-server text transformers
        ];
        testHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive containers
@@ -179560,8 +179899,8 @@ self: {
     ({ mkDerivation, base, directory, filepath, optparse-applicative }:
      mkDerivation {
        pname = "slate";
-       version = "0.3.0.0";
-       sha256 = "0whwsaxxz43ahz3x0l0vhq9m1mw2sxzh26mpxf8wzjka4xdizrwm";
+       version = "0.4.0.0";
+       sha256 = "0j2n2wix01ildnpy6k289j5dlf9i7zbi1yd4k5hdvamwlvibqzjl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -187866,7 +188205,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "stylish-haskell_0_9_0_0" = callPackage
+  "stylish-haskell_0_9_0_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
      , file-embed, filepath, haskell-src-exts, HUnit, mtl
      , optparse-applicative, strict, syb, test-framework
@@ -187874,8 +188213,8 @@ self: {
      }:
      mkDerivation {
        pname = "stylish-haskell";
-       version = "0.9.0.0";
-       sha256 = "1drpd63igjp5inlxz2a7xz43v0lhbg4cx07wil82bw2bp1jgbm90";
+       version = "0.9.0.1";
+       sha256 = "1qv5apapb2in7fdq68pn3v5g4i40ml6nc14d5kvsbxfq24y0flpm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -187971,6 +188310,7 @@ self: {
        homepage = "http://github.com/mikeizbicki/subhask";
        description = "Type safe interface for programming in subcategories of Hask";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "subleq-toolchain" = callPackage
@@ -191228,6 +191568,7 @@ self: {
        ];
        description = "Generate test-suites from refinement types";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) z3;};
 
   "tart" = callPackage
@@ -191800,6 +192141,31 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "tasty-silver_3_1_11" = callPackage
+    ({ mkDerivation, ansi-terminal, async, base, bytestring, containers
+     , deepseq, directory, filepath, mtl, optparse-applicative, process
+     , process-extras, regex-tdfa, semigroups, stm, tagged, tasty
+     , tasty-hunit, temporary, text, transformers
+     }:
+     mkDerivation {
+       pname = "tasty-silver";
+       version = "3.1.11";
+       sha256 = "1rvky2661s77wnm8c0jh0hkp3jjp5c1vndv9ilg4s47kw77708az";
+       libraryHaskellDepends = [
+         ansi-terminal async base bytestring containers deepseq directory
+         filepath mtl optparse-applicative process process-extras regex-tdfa
+         semigroups stm tagged tasty temporary text
+       ];
+       testHaskellDepends = [
+         base directory filepath process tasty tasty-hunit temporary
+         transformers
+       ];
+       homepage = "https://github.com/phile314/tasty-silver";
+       description = "A fancy test runner, including support for golden tests";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tasty-smallcheck" = callPackage
     ({ mkDerivation, async, base, smallcheck, tagged, tasty }:
      mkDerivation {
@@ -194920,6 +195286,7 @@ self: {
        homepage = "http://github.com/isovector/th-dict-discovery/";
        description = "Automatically discover available dictionaries at compile time";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "th-expand-syns" = callPackage
@@ -203138,6 +203505,31 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "universum_1_0_2" = callPackage
+    ({ mkDerivation, base, bytestring, containers, criterion, deepseq
+     , ghc-prim, hashable, microlens, microlens-mtl, mtl
+     , safe-exceptions, semigroups, stm, text, text-format, transformers
+     , type-operators, unordered-containers, utf8-string, vector
+     }:
+     mkDerivation {
+       pname = "universum";
+       version = "1.0.2";
+       sha256 = "09pd637vxwnqhq8464bvv0y3nmdac289rxzbzdxz3cpj8xv9nhf4";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq ghc-prim hashable microlens
+         microlens-mtl mtl safe-exceptions stm text text-format transformers
+         type-operators unordered-containers utf8-string vector
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion deepseq hashable mtl semigroups text
+         unordered-containers
+       ];
+       homepage = "https://github.com/serokell/universum";
+       description = "Custom prelude used in Serokell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "unix_2_7_2_2" = callPackage
     ({ mkDerivation, base, bytestring, time }:
      mkDerivation {
@@ -203337,6 +203729,28 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "unliftio_0_2_2_0" = callPackage
+    ({ mkDerivation, async, base, deepseq, directory, filepath, hspec
+     , stm, transformers, unix, unliftio-core
+     }:
+     mkDerivation {
+       pname = "unliftio";
+       version = "0.2.2.0";
+       sha256 = "0qqacdzwbrynk2ma49q830irpya1il8m5b9rkklm906k60yjz9b9";
+       libraryHaskellDepends = [
+         async base deepseq directory filepath stm transformers unix
+         unliftio-core
+       ];
+       testHaskellDepends = [
+         async base deepseq directory filepath hspec stm transformers unix
+         unliftio-core
+       ];
+       homepage = "https://github.com/fpco/unliftio/tree/master/unliftio#readme";
+       description = "The MonadUnliftIO typeclass for unlifting monads to IO (batteries included)";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "unliftio-core" = callPackage
     ({ mkDerivation, base, transformers }:
      mkDerivation {
@@ -210197,15 +210611,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "weeder_0_1_10" = callPackage
+  "weeder_0_1_11" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cmdargs, deepseq
      , directory, extra, filepath, foundation, hashable, process, text
      , unordered-containers, vector, yaml
      }:
      mkDerivation {
        pname = "weeder";
-       version = "0.1.10";
-       sha256 = "0mcxp8jrhyd98fz29i6rzwi8h4vd8w32nqw1qarbw2qbyrq03a72";
+       version = "0.1.11";
+       sha256 = "072gz2pwmzy7y4fnqgwwghgmcn5qy5aw8n9mhzwdspqjwyxr4rmh";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -214635,6 +215049,37 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) libyaml;};
 
+  "yaml_0_8_25_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, base-compat, bytestring
+     , conduit, containers, directory, filepath, hspec, HUnit, libyaml
+     , mockery, resourcet, scientific, semigroups, template-haskell
+     , temporary, text, transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "yaml";
+       version = "0.8.25.1";
+       sha256 = "0s5db3ayjb9cs1pah1dggy9v95jnxis6v038jkh6229vi1piq4gz";
+       configureFlags = [ "-fsystem-libyaml" ];
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring conduit containers directory
+         filepath resourcet scientific semigroups template-haskell text
+         transformers unordered-containers vector
+       ];
+       libraryPkgconfigDepends = [ libyaml ];
+       executableHaskellDepends = [ aeson base bytestring ];
+       testHaskellDepends = [
+         aeson base base-compat bytestring conduit directory hspec HUnit
+         mockery resourcet temporary text transformers unordered-containers
+         vector
+       ];
+       homepage = "http://github.com/snoyberg/yaml/";
+       description = "Support for parsing and rendering YAML documents";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) libyaml;};
+
   "yaml-combinators" = callPackage
     ({ mkDerivation, aeson, base, bytestring, doctest, generics-sop
      , scientific, tasty, tasty-hunit, text, transformers
@@ -214838,6 +215283,7 @@ self: {
        executableHaskellDepends = [ base blank-canvas text Yampa ];
        description = "blank-canvas frontend for Yampa";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "yampa-glfw" = callPackage
@@ -216995,6 +217441,34 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "yesod-test_1_5_9" = callPackage
+    ({ mkDerivation, attoparsec, base, blaze-builder, blaze-html
+     , blaze-markup, bytestring, case-insensitive, containers, cookie
+     , hspec, hspec-core, html-conduit, http-types, HUnit, lifted-base
+     , monad-control, network, persistent, pretty-show, text, time
+     , transformers, wai, wai-extra, xml-conduit, xml-types, yesod-core
+     , yesod-form
+     }:
+     mkDerivation {
+       pname = "yesod-test";
+       version = "1.5.9";
+       sha256 = "1kmqrm5qk3wnmrqsq0jmglabs731dw4d7b0jp3sn1z5lqgxm7kzm";
+       libraryHaskellDepends = [
+         attoparsec base blaze-builder blaze-html blaze-markup bytestring
+         case-insensitive containers cookie hspec-core html-conduit
+         http-types HUnit monad-control network persistent pretty-show text
+         time transformers wai wai-extra xml-conduit xml-types yesod-core
+       ];
+       testHaskellDepends = [
+         base bytestring containers hspec html-conduit http-types HUnit
+         lifted-base text wai xml-conduit yesod-core yesod-form
+       ];
+       homepage = "http://www.yesodweb.com";
+       description = "integration testing for WAI/Yesod Applications";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "yesod-test-json" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, hspec
      , http-types, HUnit, text, transformers, wai, wai-test
diff --git a/pkgs/development/haskell-modules/hie-packages.nix b/pkgs/development/haskell-modules/hie-packages.nix
new file mode 100644
index 000000000000..41b28023348d
--- /dev/null
+++ b/pkgs/development/haskell-modules/hie-packages.nix
@@ -0,0 +1,459 @@
+{ pkgs, stdenv, callPackage }: self:
+let src = pkgs.fetchFromGitHub
+      { owner = "haskell";
+        repo = "haskell-ide-engine";
+        rev = "3ec8e93e9ca751cf282556998851ffa65f32e06b";
+        sha256 = "1wzqzvsa39c1cngmmjryqrq4vqdg6d4wp5wdf17vp96ljvz1cczw";
+      };
+    cabal-helper-src = pkgs.fetchgit
+      { url = "https://gitlab.com/dxld/cabal-helper.git";
+        rev = "4bfc6b916fcc696a5d82e7cd35713d6eabcb0533";
+        sha256 = "1a8231as0wdvi0q73ha9lc0qrx23kmcwf910qaicvmdar5p2b15m";
+      };
+    ghc-dump-tree-src = pkgs.fetchgit
+      { url = "https://gitlab.com/alanz/ghc-dump-tree.git";
+        rev = "50f8b28fda675cca4df53909667c740120060c49";
+        sha256 = "0v3r81apdqp91sv7avy7f0s3im9icrakkggw8q5b7h0h4js6irqj";
+      };
+    ghc-mod-src = pkgs.fetchFromGitHub
+      { owner = "wz1000";
+        repo = "ghc-mod";
+        rev = "03c91ea53b6389e7a1fcf4e471171aa3d6c8de41";
+        sha256 = "11iic93klsh5izp8v4mhl7vnnlib821cfhdymlpg4drx7zbm9il6";
+      };
+    HaRe-src = pkgs.fetchgit
+      { url = "https://gitlab.com/alanz/HaRe.git";
+        rev = "e325975450ce89d790ed3f92de3ef675967d9538";
+        sha256 = "0z7r3l4j5a1brz7zb2rgd985m58rs0ki2p59y1l9i46fcy8r9y4g";
+      };
+    cabal-helper = self.cabal-helper_hie;
+    haddock-library = self.haddock-library_1_4_4;
+    ghc-dump-tree = self.ghc-dump-tree_hie;
+    ghc-mod = self.ghc-mod_hie;
+    HaRe = self.HaRe_hie;
+in
+  { ### Overrides required by hie
+    cabal-helper_hie = callPackage
+      ({ mkDerivation, base, bytestring, Cabal, cabal-install, containers
+       , directory, exceptions, filepath, ghc-prim, mtl, process
+       , semigroupoids, template-haskell, temporary, transformers
+       , unix, unix-compat, utf8-string
+       }:
+       mkDerivation {
+         pname = "cabal-helper";
+         version = "0.8.0.0";
+         src = cabal-helper-src;
+         isLibrary = true;
+         isExecutable = true;
+         jailbreak = true;
+         setupHaskellDepends = [ base Cabal directory filepath ];
+         libraryHaskellDepends = [
+           base Cabal directory filepath ghc-prim mtl process semigroupoids
+           transformers unix unix-compat
+         ];
+         executableHaskellDepends = [
+           base bytestring Cabal containers directory exceptions filepath
+           ghc-prim mtl process template-haskell temporary transformers unix
+           unix-compat utf8-string
+         ];
+         testHaskellDepends = [
+           base bytestring Cabal directory exceptions filepath ghc-prim mtl
+           process template-haskell temporary transformers unix unix-compat
+           utf8-string
+         ];
+         testToolDepends = [ cabal-install ];
+         postInstall =
+           ''
+             libexec="$out/libexec/$(basename $out/lib/ghc*/*ghc*)/$name"
+             mkdir -p "$libexec"
+             ln -sv $out/bin/cabal-helper-wrapper "$libexec"
+           '';
+         doCheck = false;
+         description = "Simple interface to some of Cabal's configuration state, mainly used by ghc-mod";
+         license = stdenv.lib.licenses.agpl3;
+       }) {};
+    ghc-dump-tree_hie = callPackage
+      ({ mkDerivation, aeson, base, bytestring, ghc, optparse-applicative
+       , pretty, pretty-show, process, unordered-containers
+       , vector
+       }:
+       mkDerivation {
+         pname = "ghc-dump-tree";
+         version = "0.2.0.1";
+         src = ghc-dump-tree-src;
+         isLibrary = true;
+         isExecutable = true;
+         libraryHaskellDepends = [
+           aeson base bytestring ghc pretty pretty-show process
+           unordered-containers vector
+         ];
+         executableHaskellDepends = [
+           aeson base bytestring ghc optparse-applicative pretty pretty-show
+           process unordered-containers vector
+         ];
+         homepage = "https://github.com/edsko/ghc-dump-tree";
+         description = "Dump GHC's parsed, renamed, and type checked ASTs";
+         license = stdenv.lib.licenses.bsd3;
+       }) {};
+    ghc-mod-core = callPackage
+      ({ mkDerivation, base, binary, bytestring, Cabal, cabal-helper
+       , containers, deepseq, directory, djinn-ghc, extra, fclabels
+       , filepath, fingertree, ghc, ghc-boot, ghc-paths, ghc-syb-utils
+       , haskell-src-exts, hlint, monad-control, monad-journal, mtl
+       , old-time, optparse-applicative, pipes, process, safe, semigroups
+       , split, syb, template-haskell, temporary, text, time
+       , transformers, transformers-base
+       }:
+       mkDerivation {
+         pname = "ghc-mod-core";
+         version = "5.9.0.0";
+         src = "${ghc-mod-src}/core";
+         setupHaskellDepends = [
+           base Cabal containers directory filepath process template-haskell
+           transformers
+         ];
+         libraryHaskellDepends = [
+           base binary bytestring cabal-helper containers deepseq directory
+           djinn-ghc extra fclabels filepath fingertree ghc ghc-boot ghc-paths
+           ghc-syb-utils haskell-src-exts hlint monad-control monad-journal
+           mtl old-time optparse-applicative pipes process safe semigroups
+           split syb template-haskell temporary text time transformers
+           transformers-base
+         ];
+         homepage = "https://github.com/DanielG/ghc-mod";
+         description = "Happy Haskell Hacking";
+         license = stdenv.lib.licenses.agpl3;
+       }) { inherit cabal-helper; };
+    ghc-mod_hie = callPackage
+      ({ mkDerivation, base, binary, bytestring, Cabal, cabal-doctest
+       , cabal-helper, containers, criterion, deepseq, directory
+       , djinn-ghc, doctest, extra, fclabels, filepath, ghc, ghc-boot
+       , ghc-mod-core, ghc-paths, ghc-syb-utils, haskell-src-exts, hlint
+       , hspec, monad-control, monad-journal, mtl, old-time
+       , optparse-applicative, pipes, process, safe, semigroups, shelltest
+       , split, syb, template-haskell, temporary, text, time
+       , transformers, transformers-base
+       }:
+       mkDerivation {
+         pname = "ghc-mod";
+         version = "5.9.0.0";
+         src = ghc-mod-src;
+         isLibrary = true;
+         isExecutable = true;
+         enableSeparateDataOutput = true;
+         setupHaskellDepends = [
+           base Cabal cabal-doctest containers directory filepath process
+           template-haskell transformers
+         ];
+         libraryHaskellDepends = [
+           base binary bytestring cabal-helper containers deepseq directory
+           djinn-ghc extra fclabels filepath ghc ghc-boot ghc-mod-core
+           ghc-paths ghc-syb-utils haskell-src-exts hlint monad-control
+           monad-journal mtl old-time optparse-applicative pipes process safe
+           semigroups split syb template-haskell temporary text time
+           transformers transformers-base
+         ];
+         executableHaskellDepends = [
+           base binary deepseq directory fclabels filepath ghc ghc-mod-core
+           monad-control mtl old-time optparse-applicative process semigroups
+           split time
+         ];
+         testHaskellDepends = [
+           base cabal-helper containers directory doctest fclabels filepath
+           ghc ghc-boot ghc-mod-core hspec monad-journal mtl process split
+           temporary transformers
+         ];
+         testToolDepends = [ shelltest ];
+         # Doesn't work with our doctest
+         doCheck = false;
+         benchmarkHaskellDepends = [
+           base criterion directory filepath ghc-mod-core temporary
+         ];
+         homepage = "https://github.com/DanielG/ghc-mod";
+         description = "Happy Haskell Hacking";
+         license = stdenv.lib.licenses.agpl3;
+       }) { shelltest = null; inherit cabal-helper; };
+    HaRe_hie = callPackage
+      ({ mkDerivation, attoparsec, base, base-prelude, Cabal, cabal-helper
+       , case-insensitive, containers, conversion
+       , conversion-case-insensitive, conversion-text, Diff, directory
+       , filepath, foldl, ghc, ghc-exactprint, ghc-mod-core, ghc-syb-utils
+       , gitrev, hslogger, hspec, HUnit, monad-control, mtl
+       , optparse-applicative, optparse-simple, parsec, stdenv
+       , Strafunski-StrategyLib, syb, syz, turtle
+       }:
+       mkDerivation {
+         pname = "HaRe";
+         version = "0.8.4.1";
+         src = HaRe-src;
+         isLibrary = true;
+         isExecutable = true;
+         enableSeparateDataOutput = true;
+         libraryHaskellDepends = [
+           base cabal-helper containers directory filepath ghc ghc-exactprint
+           ghc-mod-core ghc-syb-utils hslogger monad-control mtl
+           Strafunski-StrategyLib syb syz
+         ];
+         executableHaskellDepends = [
+           base Cabal ghc-mod-core gitrev mtl optparse-applicative
+           optparse-simple
+         ];
+         testHaskellDepends = [
+           attoparsec base base-prelude cabal-helper case-insensitive
+           containers conversion conversion-case-insensitive conversion-text
+           Diff directory filepath foldl ghc ghc-exactprint ghc-mod-core
+           ghc-syb-utils hslogger hspec HUnit monad-control mtl parsec
+           Strafunski-StrategyLib syb syz turtle
+         ];
+         # Test directory doesn't exist
+         doCheck = false;
+         homepage = "https://github.com/RefactoringTools/HaRe/wiki";
+         description = "the Haskell Refactorer";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit cabal-helper; };
+    ### hie packages
+    haskell-ide-engine = callPackage
+      ({ mkDerivation, aeson, async, base, bytestring, Cabal, cabal-install
+       , containers, data-default, Diff, directory, either, ekg, filepath, ghc
+       , ghc-mod-core, gitrev, haskell-lsp, hie-apply-refact, hie-base
+       , hie-brittany, hie-build-plugin, hie-eg-plugin-async
+       , hie-example-plugin2, hie-ghc-mod, hie-ghc-tree, hie-haddock
+       , hie-hare, hie-hoogle, hie-plugin-api, hoogle, hslogger, hspec
+       , lens, mtl, optparse-simple, QuickCheck, quickcheck-instances
+       , sorted-list, stm, text, time, transformers
+       , unordered-containers, vector, vinyl, yaml, yi-rope
+       }:
+       mkDerivation {
+         pname = "haskell-ide-engine";
+         version = "0.1.0.0";
+         inherit src;
+         isLibrary = true;
+         isExecutable = true;
+         libraryHaskellDepends = [
+           aeson async base bytestring Cabal containers data-default directory
+           either filepath ghc ghc-mod-core gitrev haskell-lsp
+           hie-apply-refact hie-base hie-brittany hie-ghc-mod hie-haddock
+           hie-hare hie-hoogle hie-plugin-api hslogger lens mtl
+           optparse-simple sorted-list stm text transformers
+           unordered-containers vector yi-rope
+         ];
+         executableHaskellDepends = [
+           base Cabal containers directory ekg ghc-mod-core gitrev haskell-lsp
+           hie-apply-refact hie-build-plugin hie-eg-plugin-async
+           hie-example-plugin2 hie-ghc-mod hie-ghc-tree hie-hare hie-hoogle
+           hie-plugin-api hslogger optparse-simple stm text time transformers
+           unordered-containers vinyl
+         ];
+         testHaskellDepends = [
+           aeson base containers Diff directory filepath ghc-mod-core
+           haskell-lsp hie-apply-refact hie-base hie-eg-plugin-async
+           hie-example-plugin2 hie-ghc-mod hie-ghc-tree hie-hare hie-hoogle
+           hie-plugin-api hoogle hslogger hspec QuickCheck
+           quickcheck-instances stm text transformers unordered-containers
+           vector vinyl yaml
+         ];
+         preCheck = "export HOME=$NIX_BUILD_TOP/home; mkdir $HOME";
+         # https://github.com/haskell/haskell-ide-engine/issues/425
+         # The disabled tests do work in a local nix-shell with cabal available.
+         patches = [ ./patches/hie-testsuite.patch ];
+         homepage = "http://github.com/githubuser/haskell-ide-engine#readme";
+         description = "Provide a common engine to power any Haskell IDE";
+         license = stdenv.lib.licenses.bsd3;
+      }) {};
+    hie-apply-refact = callPackage
+      ({ mkDerivation, aeson, apply-refact, base, either, extra, ghc-mod
+       , ghc-mod-core, haskell-src-exts, hie-base, hie-plugin-api, hlint
+       , text, transformers
+       }:
+       mkDerivation {
+         pname = "hie-apply-refact";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-apply-refact";
+         libraryHaskellDepends = [
+           aeson apply-refact base either extra ghc-mod ghc-mod-core
+           haskell-src-exts hie-base hie-plugin-api hlint text transformers
+         ];
+         description = "Haskell IDE Apply Refact plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit ghc-mod; };
+    hie-base = callPackage
+      ({ mkDerivation, aeson, base, haskell-lsp, text }:
+       mkDerivation {
+         pname = "hie-base";
+         version = "0.1.0.0";
+         inherit src;
+         preUnpack = "sourceRoot=source/hie-base";
+         libraryHaskellDepends = [ aeson base haskell-lsp text ];
+         description = "Haskell IDE API base types";
+         license = stdenv.lib.licenses.bsd3;
+       }) {};
+    hie-brittany = callPackage
+      ({ mkDerivation, aeson, base, brittany, ghc-mod, ghc-mod-core
+       , haskell-lsp, hie-plugin-api, lens, text
+       }:
+       mkDerivation {
+         pname = "hie-brittany";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-brittany";
+         libraryHaskellDepends = [
+           aeson base brittany ghc-mod ghc-mod-core haskell-lsp hie-plugin-api
+           lens text
+         ];
+         description = "Haskell IDE Hoogle plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit ghc-mod; };
+    hie-build-plugin = callPackage
+      ({ mkDerivation, aeson, base, bytestring, Cabal, cabal-helper
+       , containers, directory, filepath, haskell-lsp, hie-plugin-api
+       , process, stm, text, transformers, yaml
+       }:
+       mkDerivation {
+         pname = "hie-build-plugin";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-build-plugin";
+         libraryHaskellDepends = [
+           aeson base bytestring Cabal cabal-helper containers directory
+           filepath haskell-lsp hie-plugin-api process stm text transformers
+           yaml
+         ];
+         description = "Haskell IDE build plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit cabal-helper; };
+    hie-eg-plugin-async = callPackage
+      ({ mkDerivation, base, ghc-mod-core, hie-plugin-api, stm
+       , text
+       }:
+       mkDerivation {
+         pname = "hie-eg-plugin-async";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-eg-plugin-async";
+         libraryHaskellDepends = [
+           base ghc-mod-core hie-plugin-api stm text
+         ];
+         description = "Haskell IDE example plugin, using async processes";
+         license = stdenv.lib.licenses.bsd3;
+       }) {};
+    hie-example-plugin2 = callPackage
+      ({ mkDerivation, base, hie-plugin-api, text }:
+       mkDerivation {
+         pname = "hie-example-plugin2";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-example-plugin2";
+         libraryHaskellDepends = [ base hie-plugin-api text ];
+         description = "Haskell IDE example plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) {};
+    hie-ghc-mod = callPackage
+      ({ mkDerivation, aeson, base, containers, ghc, ghc-mod, ghc-mod-core
+       , hie-base, hie-plugin-api, text, transformers
+       }:
+       mkDerivation {
+         pname = "hie-ghc-mod";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-ghc-mod";
+         libraryHaskellDepends = [
+           aeson base containers ghc ghc-mod ghc-mod-core hie-base
+           hie-plugin-api text transformers
+         ];
+         description = "Haskell IDE ghc-mod plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit ghc-mod; };
+    hie-ghc-tree = callPackage
+      ({ mkDerivation, aeson, base, ghc-dump-tree, ghc-mod, ghc-mod-core
+       , hie-base, hie-plugin-api, text
+       }:
+       mkDerivation {
+         pname = "hie-ghc-tree";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-ghc-tree";
+         libraryHaskellDepends = [
+           aeson base ghc-dump-tree ghc-mod ghc-mod-core hie-base
+           hie-plugin-api text
+         ];
+         description = "Haskell IDE GHC Tree plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit ghc-dump-tree ghc-mod; };
+    hie-haddock = callPackage
+      ({ mkDerivation, aeson, base, containers, directory, either
+       , filepath, ghc, ghc-exactprint, ghc-mod, ghc-mod-core, haddock-api
+       , haddock-library, HaRe, haskell-lsp, hie-base, hie-ghc-mod
+       , hie-hare, hie-plugin-api, lens, monad-control, mtl, text
+       , transformers
+       }:
+       mkDerivation {
+         pname = "hie-haddock";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-haddock";
+         libraryHaskellDepends = [
+           aeson base containers directory either filepath ghc ghc-exactprint
+           ghc-mod ghc-mod-core haddock-api haddock-library HaRe haskell-lsp
+           hie-base hie-ghc-mod hie-hare hie-plugin-api lens monad-control mtl
+           text transformers
+         ];
+         description = "Haskell IDE Haddock plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit haddock-library HaRe ghc-mod; };
+    hie-hare = callPackage
+      ({ mkDerivation, aeson, base, containers, Diff, either, ghc
+       , ghc-exactprint, ghc-mod, ghc-mod-core, HaRe, haskell-lsp
+       , hie-base, hie-ghc-mod, hie-plugin-api, lens, monad-control, mtl
+       , text, transformers
+       }:
+       mkDerivation {
+         pname = "hie-hare";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-hare";
+         libraryHaskellDepends = [
+           aeson base containers Diff either ghc ghc-exactprint ghc-mod
+           ghc-mod-core HaRe haskell-lsp hie-base hie-ghc-mod hie-plugin-api
+           lens monad-control mtl text transformers
+         ];
+         description = "Haskell IDE HaRe plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit ghc-mod HaRe; };
+    hie-hoogle = callPackage
+      ({ mkDerivation, aeson, base, directory, filepath, ghc-mod
+       , ghc-mod-core, hie-plugin-api, hoogle, tagsoup, text
+       }:
+       mkDerivation {
+         pname = "hie-hoogle";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-hoogle";
+         libraryHaskellDepends = [
+           aeson base directory filepath ghc-mod ghc-mod-core hie-plugin-api
+           hoogle tagsoup text
+         ];
+         description = "Haskell IDE Hoogle plugin";
+         license = stdenv.lib.licenses.bsd3;
+       }) { inherit ghc-mod; };
+    hie-plugin-api = callPackage
+      ({ mkDerivation, aeson, base, containers, Diff, directory, either
+       , filepath, fingertree, ghc, ghc-mod-core, haskell-lsp, hie-base
+       , hslogger, lifted-base, monad-control, mtl, stdenv, stm, syb, text
+       , time, transformers, unordered-containers
+       }:
+       mkDerivation {
+         pname = "hie-plugin-api";
+         version = "0.1.0.0";
+         inherit src;
+         postUnpack = "sourceRoot=source/hie-plugin-api";
+         libraryHaskellDepends = [
+           aeson base containers Diff directory either filepath fingertree ghc
+           ghc-mod-core haskell-lsp hie-base hslogger lifted-base
+           monad-control mtl stm syb text time transformers
+           unordered-containers
+         ];
+         description = "Haskell IDE API for plugin communication";
+         license = stdenv.lib.licenses.bsd3;
+       }) {};
+  }
diff --git a/pkgs/development/haskell-modules/initial-packages.nix b/pkgs/development/haskell-modules/initial-packages.nix
new file mode 100644
index 000000000000..8e8712d90967
--- /dev/null
+++ b/pkgs/development/haskell-modules/initial-packages.nix
@@ -0,0 +1,2 @@
+args@{ pkgs, stdenv, callPackage }: self:
+   (import ./hie-packages.nix args self) // (import ./hackage-packages.nix args self)
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix
index 96520dce2b2d..6a724130d254 100644
--- a/pkgs/development/haskell-modules/lib.nix
+++ b/pkgs/development/haskell-modules/lib.nix
@@ -147,4 +147,84 @@ rec {
   overrideSrc = drv: { src, version ? drv.version }:
     overrideCabal drv (_: { inherit src version; editedCabalFile = null; });
 
+  # Extract the haskell build inputs of a haskell package.
+  # This is useful to build environments for developing on that
+  # package.
+  getHaskellBuildInputs = p:
+    (p.override { mkDerivation = extractBuildInputs p.compiler;
+                }).haskellBuildInputs;
+
+  ghcInfo = ghc:
+    rec { isCross = (ghc.cross or null) != null;
+          isGhcjs = ghc.isGhcjs or false;
+          nativeGhc = if isCross || isGhcjs
+                        then ghc.bootPkgs.ghc
+                        else ghc;
+        };
+
+  ### mkDerivation helpers
+  # These allow external users of a haskell package to extract
+  # information about how it is built in the same way that the
+  # generic haskell builder does, by reusing the same functions.
+  # Each function here has the same interface as mkDerivation and thus
+  # can be called for a given package simply by overriding the
+  # mkDerivation argument it used. See getHaskellBuildInputs above for
+  # an example of this.
+
+  # Some information about which phases should be run.
+  controlPhases = ghc: let inherit (ghcInfo ghc) isCross; in
+                  { doCheck ? !isCross && (lib.versionOlder "7.4" ghc.version)
+                  , doBenchmark ? false
+                  , ...
+                  }: { inherit doCheck doBenchmark; };
+
+  # Divide the build inputs of the package into useful sets.
+  extractBuildInputs = ghc:
+    { setupHaskellDepends ? [], extraLibraries ? []
+    , librarySystemDepends ? [], executableSystemDepends ? []
+    , pkgconfigDepends ? [], libraryPkgconfigDepends ? []
+    , executablePkgconfigDepends ? [], testPkgconfigDepends ? []
+    , benchmarkPkgconfigDepends ? [], testDepends ? []
+    , testHaskellDepends ? [], testSystemDepends ? []
+    , testToolDepends ? [], benchmarkDepends ? []
+    , benchmarkHaskellDepends ? [], benchmarkSystemDepends ? []
+    , benchmarkToolDepends ? [], buildDepends ? []
+    , libraryHaskellDepends ? [], executableHaskellDepends ? []
+    , ...
+    }@args:
+    let inherit (ghcInfo ghc) isGhcjs nativeGhc;
+        inherit (controlPhases ghc args) doCheck doBenchmark;
+        isHaskellPkg = x: x ? isHaskellLibrary;
+        allPkgconfigDepends =
+          pkgconfigDepends ++ libraryPkgconfigDepends ++
+          executablePkgconfigDepends ++
+          lib.optionals doCheck testPkgconfigDepends ++
+          lib.optionals doBenchmark benchmarkPkgconfigDepends;
+        otherBuildInputs =
+          setupHaskellDepends ++ extraLibraries ++
+          librarySystemDepends ++ executableSystemDepends ++
+          allPkgconfigDepends ++
+          lib.optionals doCheck ( testDepends ++ testHaskellDepends ++
+                                  testSystemDepends ++ testToolDepends
+                                ) ++
+          # ghcjs's hsc2hs calls out to the native hsc2hs
+          lib.optional isGhcjs nativeGhc ++
+          lib.optionals doBenchmark ( benchmarkDepends ++
+                                      benchmarkHaskellDepends ++
+                                      benchmarkSystemDepends ++
+                                      benchmarkToolDepends
+                                    );
+        propagatedBuildInputs =
+          buildDepends ++ libraryHaskellDepends ++
+          executableHaskellDepends;
+        allBuildInputs = propagatedBuildInputs ++ otherBuildInputs;
+        isHaskellPartition =
+          lib.partition isHaskellPkg allBuildInputs;
+    in
+      { haskellBuildInputs = isHaskellPartition.right;
+        systemBuildInputs = isHaskellPartition.wrong;
+        inherit propagatedBuildInputs otherBuildInputs
+          allPkgconfigDepends;
+      };
+
 }
diff --git a/pkgs/development/haskell-modules/patches/hie-testsuite.patch b/pkgs/development/haskell-modules/patches/hie-testsuite.patch
new file mode 100644
index 000000000000..86cac15c2464
--- /dev/null
+++ b/pkgs/development/haskell-modules/patches/hie-testsuite.patch
@@ -0,0 +1,40 @@
+diff --git a/test/HaRePluginSpec.hs b/test/HaRePluginSpec.hs
+index 039c094..d0d1fa4 100644
+--- a/test/HaRePluginSpec.hs
++++ b/test/HaRePluginSpec.hs
+@@ -326,35 +326,6 @@ hareSpec = do
+                               $ List [TextEdit (Range (Position 4 0) (Position 8 12))
+                                        "parseStr = char '\"' *> (many1 (noneOf \"\\\"\")) <* char '\"'"])
+           Nothing)
+-    it "finds definition across components" $ do
+-      let u = filePathToUri "./app/Main.hs"
+-      let lreq = setTypecheckedModule u
+-      let req = findDef u (toPos (7,8))
+-      r <- dispatchRequestPGoto $ lreq >> req
+-      r `shouldBe` IdeResponseOk [Location (filePathToUri $ cwd </> "test/testdata/gototest/src/Lib.hs")
+-                                           (Range (toPos (6,1)) (toPos (6,9)))]
+-      let req2 = findDef u (toPos (7,20))
+-      r2 <- dispatchRequestPGoto $ lreq >> req2
+-      r2 `shouldBe` IdeResponseOk [Location (filePathToUri $ cwd </> "test/testdata/gototest/src/Lib2.hs")
+-                                            (Range (toPos (5,1)) (toPos (5,2)))]
+-    it "finds definition in the same component" $ do
+-      let u = filePathToUri "./src/Lib2.hs"
+-      let lreq = setTypecheckedModule u
+-      let req = findDef u (toPos (6,5))
+-      r <- dispatchRequestPGoto $ lreq >> req
+-      r `shouldBe` IdeResponseOk [Location (filePathToUri $ cwd </> "test/testdata/gototest/src/Lib.hs")
+-                                           (Range (toPos (6,1)) (toPos (6,9)))]
+-    it "finds local definitions" $ do
+-      let u = filePathToUri "./src/Lib2.hs"
+-      let lreq = setTypecheckedModule u
+-      let req = findDef u (toPos (7,11))
+-      r <- dispatchRequestPGoto $ lreq >> req
+-      r `shouldBe` IdeResponseOk [Location (filePathToUri $ cwd </> "test/testdata/gototest/src/Lib2.hs")
+-                                           (Range (toPos (10,9)) (toPos (10,10)))]
+-      let req2 = findDef u (toPos (10,13))
+-      r2 <- dispatchRequestPGoto $ lreq >> req2
+-      r2 `shouldBe` IdeResponseOk [Location (filePathToUri $ cwd </> "test/testdata/gototest/src/Lib2.hs")
+-                                            (Range (toPos (9,9)) (toPos (9,10)))]
+ 
+ 
+     -- ---------------------------------