diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b4eda7ea91a079ca824ac2388609072ebf09da1b..46f22a0ae677a42b3cf6021534ab3f89b10e11b8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,6 @@
 stages:
 - generate
+- eval
 - check
 
 generate-flake-ci:
@@ -9,6 +10,10 @@ generate-flake-ci:
     paths:
       - flake-ci.yml
 
+eval-flake:
+  stage: eval
+  script: nix flake show
+
 flake-ci:
   stage: check
   trigger:
diff --git a/broken.dhall b/broken.dhall
new file mode 100644
index 0000000000000000000000000000000000000000..892cd5ef1d865acb354007e3f7aa26cc8fea534c
--- /dev/null
+++ b/broken.dhall
@@ -0,0 +1,51 @@
+let HsSrc =
+      < FromHackage : { name : Text, version : Text }
+      | FromGit :
+          { url : Text, revision : Optional Text, subdir : Optional Text }
+      >
+
+let Modifiers =
+      { Type = { doJailbreak : Bool, doCheck : Bool }
+      , default = { doJailbreak = True, doCheck = False }
+      }
+
+let Attr = λ(a : Type) → { mapKey : Text, mapValue : a }
+
+let HsPkg =
+      { Type = { source : HsSrc, modifiers : Modifiers.Type }
+      , default.modifiers = Modifiers.default
+      }
+
+let callHackage
+    : ∀(name : Text) → ∀(version : Text) → Attr HsPkg.Type
+    = λ(name : Text) →
+      λ(version : Text) →
+        { mapKey = name
+        , mapValue = HsPkg::{ source = HsSrc.FromHackage { name, version } }
+        }
+
+let callCabal2nix
+    : ∀(name : Text) →
+      ∀(url : Text) →
+      ∀(revision : Optional Text) →
+      ∀(subdir : Optional Text) →
+        Attr HsPkg.Type
+    = λ(name : Text) →
+      λ(url : Text) →
+      λ(revision : Optional Text) →
+      λ(subdir : Optional Text) →
+        { mapKey = name
+        , mapValue = HsPkg::{ source = HsSrc.FromGit { url, revision, subdir } }
+        }
+
+let callHorizonAdopted
+    : ∀(name : Text) → ∀(revision : Text) → Attr HsPkg.Type
+    = λ(name : Text) →
+      λ(revision : Text) →
+        callCabal2nix
+          name
+          ("https://gitlab.homotopic.tech/horizon/adopted/" ++ name)
+          (Some revision)
+          (None Text)
+
+in  [ callHackage "hiedb" "0.4.2.0" ]
diff --git a/configuration-ghc-9.4.x.nix b/configuration-ghc-9.4.x.nix
new file mode 100644
index 0000000000000000000000000000000000000000..01d66cab5faf9e9355ee578adde064b706d572b4
--- /dev/null
+++ b/configuration-ghc-9.4.x.nix
@@ -0,0 +1,48 @@
+{ pkgs, haskellLib }:
+
+let
+  inherit (pkgs) fetchpatch lib;
+  inherit (lib) throwIfNot versionOlder;
+in
+
+self: super: {
+  llvmPackages = lib.dontRecurseIntoAttrs self.ghc.llvmPackages;
+
+  # Disable GHC core libraries.
+  array = null;
+  base = null;
+  binary = null;
+  bytestring = null;
+  containers = null;
+  deepseq = null;
+  directory = null;
+  exceptions = null;
+  filepath = null;
+  ghc-bignum = null;
+  ghc-boot = null;
+  ghc-boot-th = null;
+  ghc-compact = null;
+  ghc-heap = null;
+  ghc-prim = null;
+  ghci = null;
+  haskeline = null;
+  hpc = null;
+  integer-gmp = null;
+  libiserv = null;
+  mtl = null;
+  pretty = null;
+  process = null;
+  rts = null;
+  stm = null;
+  system-cxx-std-lib = null;
+  template-haskell = null;
+  # GHC only builds terminfo if it is a native compiler
+  terminfo = if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then null else self.terminfo_0_4_1_5;
+  text = null;
+  time = null;
+  transformers = null;
+  unix = null;
+  # GHC only bundles the xhtml library if haddock is enabled, check if this is
+  # still the case when updating: https://gitlab.haskell.org/ghc/ghc/-/blob/0198841877f6f04269d6050892b98b5c3807ce4c/ghc.mk#L463
+  xhtml = if self.ghc.hasHaddock or true then null else self.xhtml_3000_2_2_1;
+}
diff --git a/configuration.nix b/configuration.nix
index 8cb73b545765470b390b60450fd162177e5c1d3c..e03c8a2fb983ec5edf81108eb7e52f024f1009db 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -1,11 +1,20 @@
-{ pkgs, ... }:
+{ pkgs, haskellLib }:
 
 with pkgs.haskell.lib;
 
 final: prev: {
 
-  saltine = addPkgconfigDepend prev.saltine pkgs.libsodium;
+  digest = addExtraLibrary prev.digest pkgs.zlib;
+
+  hopenssl = prev.hopenssl.override { openssl = pkgs.openssl_1_1; };
 
   libsodium = prev.callPackage ./pkgs/libsodium.nix { inherit (pkgs) libsodium; };
 
+  saltine = addPkgconfigDepend prev.saltine pkgs.libsodium;
+
+  splitmix = prev.callPackage ./pkgs/splitmix.nix { inherit (pkgs) testu01; };
+
+  text-icu = prev.callPackage ./pkgs/text-icu.nix { icu-i18n = pkgs.icu; };
+
+  zlib = prev.callPackage ./pkgs/zlib.nix { inherit (pkgs) zlib; };
 }
diff --git a/flake.lock b/flake.lock
index 4299055f995a09f004cbf48da4c2d2065b2cdfa9..3b3c425ae597ccfb022980f25f1dff7275918c12 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,5 +1,22 @@
 {
   "nodes": {
+    "all-cabal-hashes": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1667742759,
+        "narHash": "sha256-PniFwhuGiX32rPHNyqgx8nn1No39SP89CHSoBuJOXlE=",
+        "owner": "commercialhaskell",
+        "repo": "all-cabal-hashes",
+        "rev": "eaf3b72978447f236e82c0de1d6f770e3dec00a7",
+        "type": "github"
+      },
+      "original": {
+        "owner": "commercialhaskell",
+        "ref": "hackage",
+        "repo": "all-cabal-hashes",
+        "type": "github"
+      }
+    },
     "flake-utils": {
       "locked": {
         "lastModified": 1659877975,
@@ -47,11 +64,11 @@
     "horizon-gen-nix": {
       "flake": false,
       "locked": {
-        "lastModified": 1667577671,
-        "narHash": "sha256-rDbpc4sbCmcT7oP+eD557zrlCYCrYumyiDJucOTNsTs=",
+        "lastModified": 1667926671,
+        "narHash": "sha256-TWD8yl8GSasvcFzn1ytS6/riemJ9zLi9xvc2Uhqi8QQ=",
         "ref": "refs/heads/master",
-        "rev": "9d3a1f027f2852dbc896d06c089556134035ddba",
-        "revCount": 31,
+        "rev": "0b00a1c2c4e8f8ed169bb732ea35c4da4ea3e387",
+        "revCount": 39,
         "type": "git",
         "url": "https://gitlab.homotopic.tech/horizon/horizon-gen-nix"
       },
@@ -113,6 +130,7 @@
     },
     "root": {
       "inputs": {
+        "all-cabal-hashes": "all-cabal-hashes",
         "flake-utils": "flake-utils",
         "get-flake": "get-flake",
         "horizon-gen-nix": "horizon-gen-nix",
diff --git a/flake.nix b/flake.nix
index cd7514fc285630c073c0d45b08b97e11f3821425..e229255a496860967eaf002c03f364530df76655 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,5 +1,9 @@
 {
   inputs = {
+    all-cabal-hashes = {
+      url = "github:commercialhaskell/all-cabal-hashes/hackage";
+      flake = false;
+    };
     get-flake.url = "github:ursi/get-flake";
     lint-utils.url = "git+https://gitlab.homotopic.tech/nix/lint-utils";
     horizon-gen-nix = {
@@ -8,15 +12,22 @@
     };
     nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
   };
-  outputs = inputs@{ self, nixpkgs, flake-utils, get-flake, horizon-gen-nix, lint-utils, ... }:
+  outputs = inputs@{ self, all-cabal-hashes, nixpkgs, flake-utils, get-flake, horizon-gen-nix, lint-utils, ... }:
     flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
       let
         pkgs = import nixpkgs { inherit system; };
         horizon-gen-nix-app = get-flake horizon-gen-nix;
-        overrides-hp = import ./overlay.nix { inherit inputs pkgs; };
         configuration = import ./configuration.nix { inherit inputs pkgs; };
-        hp = pkgs.haskell.packages.ghc942.override {
-          overrides = pkgs.lib.composeManyExtensions [ overrides-hp configuration ];
+        haskellLib = pkgs.haskell.lib.compose;
+        hsPkgs = pkgs.callPackage (nixpkgs + /pkgs/development/haskell-modules) {
+          buildHaskellPackages = pkgs.haskell.packages.ghc942;
+          configurationCommon = import ./configuration.nix;
+          configurationNix = { pkgs, haskellLib }: self: super: { };
+          ghc = pkgs.haskell.compiler.ghc942;
+          haskellLib = pkgs.haskell.lib.compose;
+          initialPackages = import ./overlay.nix;
+          nonHackagePackages = self: super: { };
+          compilerConfig = pkgs.callPackage ./configuration-ghc-9.4.x.nix { haskellLib = haskellLib; };
         };
         hp' = pkgs.lib.filterAttrs
           (n: v: v != null
@@ -24,12 +35,12 @@
             && pkgs.lib.hasAttr "type" v
             && v.type == "derivation"
             && v.meta.broken == false)
-          hp;
+          hsPkgs;
         horizon-gen-gitlab-ci = pkgs.writers.writeBashBin "gen-gitlab-ci" "${pkgs.dhall-json}/bin/dhall-to-yaml --file .gitlab-ci.dhall";
       in
       {
         apps = {
-          horizon-gen-nix = horizon-gen-nix-app.outputs.apps.${system}.default;
+          horizon-gen-nix = horizon-gen-nix-app.outputs.apps.${system}.horizon-gen-nix;
           horizon-gen-gitlab-ci = {
             type = "app";
             program = "${horizon-gen-gitlab-ci}/bin/gen-gitlab-ci";
@@ -39,7 +50,6 @@
           dhall-format = lint-utils.outputs.linters.x86_64-linux.dhall-format ./.;
           nixpkgs-fmt = lint-utils.outputs.linters.x86_64-linux.nixpkgs-fmt ./.;
         };
-        overrides.ghc942 = overrides-hp;
         packages = hp';
       });
 }
diff --git a/manifest.dhall b/manifest.dhall
index 091d1466e10d058d73bb3a779e439e4efc447c4d..89cd394243371988a22952a88a698255376e6c7c 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -38,6 +38,16 @@ let callCabal2nix
         , mapValue = HsPkg::{ source = HsSrc.FromGit { url, revision, subdir } }
         }
 
+let callHorizonAdopted
+    : ∀(name : Text) → ∀(revision : Text) → Attr HsPkg.Type
+    = λ(name : Text) →
+      λ(revision : Text) →
+        callCabal2nix
+          name
+          ("https://gitlab.homotopic.tech/horizon/adopted/" ++ name)
+          (Some revision)
+          (None Text)
+
 in  [ callHackage "Cabal" "3.8.1.0"
     , callCabal2nix
         "Cabal-QuickCheck"
@@ -54,29 +64,40 @@ in  [ callHackage "Cabal" "3.8.1.0"
         "https://gitlab.haskell.org/ghc/packages/Cabal"
         (None Text)
         (Some "Cabal-syntax")
-    , callCabal2nix
-        "Cabal-syntax"
-        "https://gitlab.haskell.org/ghc/packages/Cabal"
-        (None Text)
-        (Some "Cabal-syntax")
     , callCabal2nix
         "Cabal-tree-diff"
         "https://gitlab.haskell.org/ghc/packages/Cabal"
         (None Text)
         (Some "Cabal-tree-diff")
     , callHackage "ChasingBottoms" "1.3.1.12"
+    , callHackage "Decimal" "0.5.2"
+    , callHackage "Diff" "0.4.1"
+    , callHackage "Glob" "0.10.2"
     , callHackage "HTTP" "4000.4.1"
+    , callHackage "HsYAML" "0.2.1.1"
+    , callHackage "HUnit" "1.6.2.0"
+    , callHackage "ListLike" "4.7.7"
     , callHackage "JuicyPixels" "3.3.8"
     , callHackage "MonadRandom" "0.5.3"
     , callHackage "OneTuple" "0.3.1"
+    , callHackage "Only" "0.1"
     , callHackage "OpenGLRaw" "3.3.4.1"
+    , callHackage "PSQueue" "1.1.1"
     , callHackage "PyF" "0.11.1.0"
+    , callHackage "QuickCheck" "2.14.2"
+    , callHackage "SHA" "1.6.4.4"
+    , callHackage "StateVar" "1.2.2"
+    , callHackage "abstract-deque" "0.3"
+    , callHackage "abstract-par" "0.3.3"
     , callHackage "adjunctions" "4.4.2"
     , callHackage "aeson" "2.1.0.0"
     , callHackage "aeson-pretty" "0.8.9"
     , callHackage "aeson-yaml" "1.1.0.1"
+    , callHackage "alex" "3.2.7.1"
+    , callHackage "algebraic-graphs" "0.7"
     , callHackage "ansi-terminal" "0.11.3"
     , callHackage "ansi-wl-pprint" "0.6.9"
+    , callHackage "appar" "0.1.8"
     , callHackage "apecs" "0.9.4"
     , callHackage "asn1-encoding" "0.9.6"
     , callHackage "asn1-parse" "0.9.5"
@@ -84,30 +105,40 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "assoc" "1.0.2"
     , callHackage "async" "2.2.4"
     , callHackage "atomic-primops" "0.8.4"
+    , callHackage "atomic-write" "0.2.0.7"
     , callHackage "attoparsec-binary" "0.2"
     , callHackage "attoparsec-iso8601" "1.1.0.0"
     , callHackage "attoparsec" "0.14.4"
+    , callHackage "auto-update" "0.1.6"
     , callHackage "autodocodec" "0.2.0.1"
     , callHackage "autodocodec-schema" "0.1.0.2"
     , callHackage "autodocodec-servant-multipart" "0.0.0.0"
     , callHackage "autodocodec-yaml" "0.2.0.2"
     , callHackage "barbies" "2.0.3.1"
+    , callHackage "base-orphans" "0.8.7"
     , callHackage "basement" "0.0.15"
+    , callHackage "base16-bytestring" "1.0.2.0"
+    , callHackage "base64-bytestring" "1.2.1.0"
     , callHackage "base64" "0.4.2.4"
     , callHackage "base-compat" "0.12.2"
     , callHackage "base-compat-batteries" "0.12.2"
     , callHackage "bifunctors" "5.5.13"
     , callHackage "bimap" "0.5.0"
-    , callHackage "bitvec" "1.1.3.0"
     , callHackage "binary-orphans" "1.0.3"
+    , callHackage "bitvec" "1.1.3.0"
+    , callHackage "blaze-builder" "0.4.2.2"
     , callHackage "blaze-html" "0.9.1.2"
-    , callHackage "blaze-textual" "0.2.2.1"
     , callHackage "blaze-markup" "0.8.2.8"
+    , callHackage "blaze-textual" "0.2.2.1"
     , callHackage "boring" "0.2"
-    , callHackage "bsb-http-chunked" "0.0.0.4"
     , callHackage "breakpoint" "0.1.1.1"
     , callHackage "brick" "1.3"
+    , callHackage "bsb-http-chunked" "0.0.0.4"
+    , callHackage "byteable" "0.1.1"
+    , callHackage "byteorder" "1.0.4"
+    , callHackage "bytestring-builder" "0.10.8.2.0"
     , callHackage "bytes" "0.17.2"
+    , callHackage "c2hs" "0.28.8"
     , callHackage "cabal-doctest" "1.0.9"
     , callHackage "cabal-install" "3.8.1.0"
     , callHackage "cabal-install-solver" "3.8.1.0"
@@ -117,27 +148,36 @@ in  [ callHackage "Cabal" "3.8.1.0"
         (None Text)
         (Some "cabal2nix")
     , callHackage "cache" "0.1.3.0"
+    , callHackage "call-stack" "0.4.0"
     , callHackage "case-insensitive" "1.2.1.0"
     , callHackage "cassava" "0.5.3.0"
     , callHackage "cassava-megaparsec" "2.0.4"
-    , callHackage "cereal" "0.5.8.3"
     , callHackage "cborg" "0.2.8.0"
     , callHackage "cborg-json" "0.2.5.0"
+    , callHackage "cereal-vector" "0.2.0.1"
+    , callHackage "cereal" "0.5.8.3"
     , callHackage "charset" "0.3.9"
+    , callHackage "checkers" "0.6.0"
+    , callHackage "chell-quickcheck" "0.2.5.3"
+    , callHackage "chell" "0.5.0.1"
     , callHackage "citeproc" "0.8.0.1"
+    , callHackage "clock" "0.8.3"
+    , callHackage "cmdargs" "0.10.21"
     , callHackage "co-log-core" "0.3.1.0"
     , callHackage "co-log-polysemy" "0.0.1.3"
+    , callHackage "code-page" "0.2.1"
+    , callHackage "colour" "2.3.6"
     , callHackage "colourista" "0.1.0.1"
     , callHackage "commonmark-extensions" "0.2.3.3"
     , callHackage "commonmark-pandoc" "0.2.1.2"
     , callHackage "commonmark" "0.2.2"
     , callHackage "comonad" "5.0.8"
-    , callHackage "compact" "0.2.0.0"
     , callCabal2nix
         "compactable"
         "https://gitlab.com/fresheyeball/Compactable"
         (Some "f63927b1e438c267f0d12f36e5b3735cfaebeeb4")
         (None Text)
+    , callHackage "compact" "0.2.0.0"
     , callHackage "composite-base" "0.8.1.0"
     , callHackage "composite-cassava" "0.0.3.1"
     , callHackage "composite-dhall" "0.1.0.1"
@@ -148,10 +188,15 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "conduit-extra" "1.3.6"
     , callHackage "config-ini" "0.2.5.0"
     , callHackage "connection" "0.3.1"
+    , callHackage "constraints-extras" "0.3.2.1"
     , callHackage "constraints" "0.13.4"
+    , callHackage "contravariant" "1.5.5"
+    , callHackage "control-monad-free" "0.6.2"
+    , callHackage "cookie" "0.4.5"
+    , callHackage "cpphs" "1.20.9.1"
     , callHackage "criterion-measurement" "0.2.0.0"
     , callHackage "criterion" "1.5.13.0"
-    , callHackage "cursor" "0.3.2.0"
+    , callHorizonAdopted "csv" "d02b89bbad79136b52fd1197f087466cf51573dd"
     , callHackage "cursor-brick" "0.1.0.1"
     , callCabal2nix
         "cursor-dirforest"
@@ -169,19 +214,37 @@ in  [ callHackage "Cabal" "3.8.1.0"
         (Some "6ad5b168e26eb4e647df9f007d812aaf59338d40")
         (Some "cursor-dirforest-gen")
     , callHackage "cursor-gen" "0.4.0.0"
+    , callHackage "cursor" "0.3.2.0"
     , callHackage "cryptonite" "0.30"
+    , callHackage "cryptohash-md5" "0.11.101.0"
     , callHackage "cryptohash-sha1" "0.11.101.0"
+    , callHackage "cryptohash-sha256" "0.11.102.1"
     , callHackage "cryptohash" "0.11.9"
+    , callHackage "crypto-api-tests" "0.3"
+    , callHackage "crypto-api" "0.13.3"
     , callHackage "daemons" "0.3.0"
+    , callHackage "data-binary-ieee754" "0.4.4"
+    , callHackage "data-clist" "0.2"
+    , callHackage "data-default-class" "0.1.2.0"
+    , callHackage "data-default-instances-containers" "0.0.1"
+    , callHackage "data-default-instances-dlist" "0.0.1"
+    , callHackage "data-default-instances-old-locale" "0.0.1"
+    , callHackage "data-default" "0.7.1.1"
     , callHackage "data-fix" "0.3.2"
     , callHackage "data-sketches" "0.3.1.0"
     , callHackage "data-sketches-core" "0.1.0.0"
     , callHackage "dec" "0.0.5"
+    , callHackage "deepseq-generics" "0.2.0.0"
     , callHackage "dense-linear-algebra" "0.1.0.0"
+    , callHackage "dependent-map" "0.4.0.0"
+    , callHackage "dependent-sum" "0.7.1.0"
+    , callHackage "derp" "0.1.6"
     , callHackage "deriving-aeson" "0.2.8"
     , callHackage "dhall" "1.41.2"
     , callHackage "dhall-json" "1.7.11"
+    , callHackage "digest" "0.0.1.3"
     , callHackage "dimensional" "1.5"
+    , callHackage "direct-sqlite" "2.3.27"
     , callCabal2nix
         "dirforest"
         "https://github.com/NorfairKing/dirforest"
@@ -189,6 +252,10 @@ in  [ callHackage "Cabal" "3.8.1.0"
         (Some "dirforest")
     , callHackage "distribution-nixpkgs" "1.7.0"
     , callHackage "distributive" "0.6.2.1"
+    , callHackage "dlist" "1.0"
+    , callHackage "doclayout" "0.4"
+    , callHackage "doctest-exitcode-stdio" "0.0"
+    , callHackage "doctest-lib" "0.1"
     , callCabal2nix
         "doctest"
         "https://github.com/sol/doctest"
@@ -196,16 +263,20 @@ in  [ callHackage "Cabal" "3.8.1.0"
         (None Text)
     , callHackage "doctemplates" "0.10.0.2"
     , callHackage "doctest-parallel" "0.2.5"
+    , callHackage "dotgen" "0.4.3"
     , callCabal2nix
         "double-conversion"
         "https://github.com/haskell/double-conversion"
         (None Text)
         (None Text)
+    , callHackage "easy-file" "0.2.2"
+    , callHackage "echo" "0.1.4"
     , callCabal2nix
         "ed25519"
         "https://gitlab.homotopic.tech/horizon/adopted/ed25519"
         (None Text)
         (None Text)
+    , callHackage "edit-distance" "0.2.2.1"
     , callHackage "either" "5.0.2"
     , callHackage "email-validate" "2.3.2.16"
     , callCabal2nix
@@ -216,24 +287,52 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "effectful-core" "2.1.0.0"
     , callHackage "effectful-th" "1.0.0.0"
     , callHackage "effectful" "2.1.0.0"
+    , callHackage "emojis" "0.1.2"
     , callHackage "enclosed-exceptions" "1.0.3"
+    , callHackage "entropy" "0.4.1.10"
+    , callHackage "envparse" "0.5.0"
+    , callHackage "erf" "2.0.0.0"
+    , callHackage "exact-pi" "0.5.0.2"
+    , callHackage "extensible-effects" "5.0.0.1"
+    , callHackage "extensible-exceptions" "0.1.1.4"
     , callHackage "extra" "1.7.12"
     , callHackage "expiring-cache-map" "0.0.6.1"
+    , callHackage "fail" "4.9.0.0"
+    , callHackage "fast-logger" "3.1.1"
     , callHackage "fcf-containers" "0.7.1"
+    , callHackage "file-embed-lzma" "0.0.1"
+    , callHackage "file-embed" "0.0.15.0"
+    , callHackage "filemanip" "0.3.6.3"
     , callHackage "filepattern" "0.1.3"
+    , callHackage "filtrable" "0.1.6.0"
+    , callCabal2nix
+        "fingertree-psqueue"
+        "https://gitlab.homotopic.tech/horizon/adopted/fingertree-psqueue"
+        (Some "d466b18e18d706dc1373ed2894c1e20ea2826329")
+        (None Text)
+    , callHackage "fingertree" "0.1.5.0"
     , callHackage "finite-field" "0.10.0"
     , callHackage "first-class-families" "0.8.0.1"
     , callHackage "fin" "0.2.1"
-    , callHackage "free" "5.1.9"
-    , callHackage "fsnotify" "0.4.1.0"
+    , callHackage "fixed" "0.3"
+    , callHackage "fmlist" "0.9.4"
     , callHackage "foldl" "1.4.12"
+    , callHackage "foreign-store" "0.2"
+    , callHackage "formatting" "7.1.3"
     , callHackage "foundation" "0.0.29"
+    , callHackage "free" "5.1.9"
+    , callHackage "freer-simple" "1.2.1.2"
+    , callHackage "friendly-time" "0.4.1"
+    , callHackage "fsnotify" "0.4.1.0"
     , callHackage "fuzzy-time" "0.2.0.3"
+    , callHackage "generically" "0.1"
+    , callHackage "generic-deriving" "1.14.2"
     , callHackage "generic-lens-core" "2.2.1.0"
     , callHackage "generic-lens-lite" "0.1"
     , callHackage "generic-monoid" "0.1.0.1"
     , callHackage "generic-optics-lite" "0.1"
     , callHackage "generic-optics" "2.2.1.0"
+    , callHackage "generic-random" "1.5.0.1"
     , callHackage "generics-sop" "0.5.1.2"
     , callHackage "genvalidity" "1.1.0.0"
     , callHackage "genvalidity-aeson" "1.0.0.1"
@@ -247,6 +346,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
         (Some "69e8ae036b047fae105c1fe990e175a7572a3eba")
         (Some "genvalidity-dirforest")
     , callHackage "genvalidity-hspec" "1.0.0.2"
+    , callHackage "genvalidity-hspec-aeson" "1.0.0.0"
     , callHackage "genvalidity-hspec-optics" "1.0.0.0"
     , callHackage "genvalidity-path" "1.0.0.1"
     , callHackage "genvalidity-persistent" "1.0.0.1"
@@ -272,36 +372,47 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "ghc-typelits-knownnat" "0.7.7"
     , callHackage "ghc-typelits-natnormalise" "0.7.7"
     , callHackage "ghcid" "0.8.8"
+    , callHackage "githash" "0.1.6.3"
     , callHackage "gitrev" "1.3.1"
+    , callHackage "gridtables" "0.1.0.0"
+    , callHackage "groups" "0.5.3"
     , callHackage "hackage-db" "2.1.2"
     , callHackage "hackage-security" "0.6.2.2"
     , callHackage "haddock-library" "1.11.0"
+    , callHackage "half" "0.3.1"
+    , callHackage "happy" "1.20.0"
     , callHackage "hashable" "1.4.1.0"
     , callHackage "hashing" "0.1.0.1"
+    , callHackage "hashmap" "1.3.3"
     , callHackage "hashtables" "1.3"
+    , callHackage "haskell-lexer" "1.1"
+    , callHackage "haskell-src-exts" "1.23.1"
     , callHackage "haskell-src-meta" "0.8.11"
-    , callHackage "hedgehog" "1.2"
+    , callHackage "heaps" "0.4"
     , callCabal2nix
         "hedgehog-golden"
         "https://github.com/maybe-hedgehog-later/hedgehog-golden"
         (None Text)
         (None Text)
+    , callHackage "hedgehog" "1.2"
     , callHackage "hie-bios" "0.11.0"
     , callHackage "hie-compat" "0.3.0.0"
-    , callHackage "hiedb" "0.4.2.0"
     , callHackage "hinotify" "0.4.1"
     , callHackage "hledger-lib" "1.27.1"
     , callHackage "hledger" "1.27.1"
     , callHackage "hlint" "3.5"
+    , callHackage "hopenssl" "2.2.4"
     , callHackage "hosc" "0.19.1"
+    , callHackage "hostname" "1.0"
     , callHackage "hourglass" "0.2.12"
-    , callHackage "hpack" "0.35.0"
     , callHackage "hpack-dhall" "0.5.7"
+    , callHackage "hpack" "0.35.0"
     , callCabal2nix
         "horizon-gen-nix"
         "https://gitlab.homotopic.tech/horizon/horizon-gen-nix"
         (Some "918df757ce5c9244232c1e3a1e05e9d9e3ab4f09")
         (None Text)
+    , callHackage "hscolour" "1.24.4"
     , callHackage "hslua-aeson" "2.2.1"
     , callHackage "hslua-core" "2.2.1"
     , callHackage "hslua-classes" "2.2.0"
@@ -314,30 +425,46 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "hslua-objectorientation" "2.2.1"
     , callHackage "hslua-packaging" "2.2.1"
     , callHackage "hslua" "2.2.1"
-    , callHackage "hspec" "2.10.3"
     , callHackage "hspec-contrib" "0.5.1.1"
     , callHackage "hspec-core" "2.10.0.1"
     , callHackage "hspec-discover" "2.10.0.1"
+    , callHackage "hspec-expectations-lifted" "0.10.0"
+    , callHackage "hspec-expectations" "0.8.2"
+    , callHackage "hspec-hedgehog" "0.0.1.2"
+    , callHackage "hspec-megaparsec" "2.2.0"
     , callHackage "hspec-meta" "2.9.3"
+    , callHackage "hspec-smallcheck" "0.5.3"
+    , callHackage "hspec-wai" "0.11.1"
+    , callHackage "hspec" "2.10.3"
+    , callHackage "html" "1.0.1.2"
+    , callHackage "httpd-shed" "0.4.1.1"
     , callHackage "http-api-data" "0.5"
     , callHackage "http-client-tls" "0.3.6.1"
     , callHackage "http-client" "0.7.13.1"
-    , callHackage "http-types" "0.12.3"
     , callHackage "http-date" "0.0.11"
     , callHackage "http-media" "0.8.0.0"
     , callHackage "http-types" "0.12.3"
     , callHackage "http2" "3.0.3"
+    , callHackage "ieee754" "0.8.0"
     , callHackage "incipit-base" "0.3.0.0"
     , callHackage "incipit-core" "0.3.0.0"
-    , callHackage "indexed-traversable" "0.1.2"
+    , callHackage "indexed-profunctors" "0.1.1"
     , callHackage "indexed-traversable-instances" "0.1.1.1"
+    , callHackage "indexed-traversable" "0.1.2"
     , callHackage "infer-license" "0.2.0"
+    , callHackage "ini" "0.4.2"
     , callHackage "insert-ordered-containers" "0.2.5.1"
     , callHackage "inspection-testing" "0.5"
     , callHackage "integer-logarithms" "1.0.3.1"
+    , callHackage "interpolate" "0.2.1"
     , callHackage "invariant" "0.6"
     , callHackage "ipynb" "0.2"
     , callHackage "iproute" "1.7.12"
+    , callHackage "jira-wiki-markup" "1.4.0"
+    , callHackage "js-chart" "2.9.4.1"
+    , callHackage "js-dgtable" "0.5.2"
+    , callHackage "js-flot" "0.8.3"
+    , callHackage "js-jquery" "3.3.1"
     , callHackage "kan-extensions" "5.2.5"
     , callHackage "keys" "3.12.3"
     , callCabal2nix
@@ -360,15 +487,26 @@ in  [ callHackage "Cabal" "3.8.1.0"
         "https://github.com/haskell-effectful/kvstore-effectful"
         (Some "3502825423aea3a1af9384e9d751feea4599c60b")
         (Some "kvstore-effectful-statemap")
+    , callHackage "language-c" "0.9.1"
+    , callCabal2nix
+        "language-haskell-extract"
+        "https://github.com/chessai/template-helper"
+        (Some "f654f1e7ef47c591bb5ea23f1234289f99d09d05")
+        (None Text)
     , callHackage "language-nix" "2.2.0"
-    , callHackage "lens" "5.2"
     , callHackage "lens-aeson" "1.2.1"
+    , callHackage "lens-family-core" "2.1.2"
     , callHackage "lens-family-th" "0.5.2.1"
+    , callHackage "lens" "5.2"
     , callHackage "libsodium" "1.0.18.2"
+    , callHackage "libxml" "0.1.1"
     , callHackage "libyaml" "0.1.2"
+    , callHackage "lift-type" "0.1.0.1"
     , callHackage "lifted-async" "0.10.2.1"
     , callHackage "lifted-base" "0.2.3.12"
     , callHackage "linear" "1.21.10"
+    , callHackage "logging-facade" "0.3.1"
+    , callHackage "logict" "0.8.0.0"
     , callHackage "log-base" "0.12.0.0"
     , callCabal2nix
         "log-effectful"
@@ -385,53 +523,91 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "lucid-svg" "0.7.1"
     , callHackage "lucid" "2.11.1"
     , callHackage "lukko" "0.1.1.3"
+    , callHackage "lzma" "0.0.0.4"
+    , callHackage "neat-interpolation" "0.5.1.3"
     , callHackage "net-mqtt" "0.8.2.2"
+    , callHackage "managed" "1.0.9"
     , callHackage "markdown-unlit" "0.5.1"
     , callHackage "math-functions" "0.3.4.2"
     , callHackage "megaparsec" "9.2.2"
     , callHackage "memory" "0.18.0"
-    , callHackage "mockery" "0.3.5"
+    , callHackage "mersenne-random" "1.0.0.1"
     , callHackage "microlens-aeson" "2.5.0"
+    , callHackage "microlens-ghc" "0.4.14.0"
+    , callHackage "microlens-mtl" "0.2.0.2"
+    , callHackage "microlens-platform" "0.4.3.2"
+    , callHackage "microlens-th" "0.4.3.10"
+    , callHackage "microlens" "0.4.13.0"
+    , callHackage "microspec" "0.2.1.3"
     , callHackage "microstache" "1.0.2.2"
+    , callHackage "mime-types" "0.1.1.0"
+    , callHackage "mmorph" "1.2.0"
+    , callHackage "mockery" "0.3.5"
     , callHackage "mod" "0.1.2.2"
+    , callHackage "monads-tf" "0.1.0.3"
     , callHackage "monad-control" "1.0.3.1"
     , callHackage "monad-logger" "0.3.37"
+    , callHackage "monad-loops" "0.4.3"
     , callHackage "monad-time" "0.4.0.0"
+    , callHackage "monad-parallel" "0.8"
     , callHackage "monad-par-extras" "0.3.3"
     , callHackage "monad-par" "0.3.5"
-    , callHackage "monoid-subclasses" "1.1.3"
+    , callHackage "monad-peel" "0.2.1.2"
     , callHackage "mono-traversable" "1.0.15.3"
+    , callHackage "monoid-subclasses" "1.1.3"
+    , callHackage "mtl-compat" "0.2.2"
     , callHackage "mwc-random" "0.15.0.2"
+    , callHackage "nanospec" "0.2.2"
+    , callHackage "nats" "1.1.2"
+    , callHackage "natural-transformation" "0.4"
+    , callHackage "network-bsd" "2.8.1.0"
     , callHackage "network-byte-order" "0.1.6"
     , callHackage "network-conduit-tls" "1.3.2"
+    , callHackage "network-info" "0.2.1"
+    , callHackage "network-run" "0.2.4"
     , callHackage "network-uri" "2.6.4.1"
     , callHackage "network" "3.1.2.7"
     , callHackage "newtype-generics" "0.6.2"
     , callHackage "nothunks" "0.1.3"
+    , callHackage "numtype-dk" "0.5.0.3"
     , callCabal2nix
         "odd-jobs"
         "https://github.com/saurabhnanda/odd-jobs"
         (Some "f6c7bbbcdb383d2eb487ad7fe427ec05a747c14f")
         (None Text)
+    , callHackage "old-locale" "1.0.0.7"
+    , callHackage "old-time" "1.1.0.3"
     , callHackage "optics-core" "0.4.1"
     , callHackage "optics-extra" "0.4.2.1"
     , callHackage "optics-th" "0.4.1"
     , callHackage "optics" "0.4.2"
+    , callHackage "optional-args" "1.0.2"
+    , callHackage "options" "1.2.1.1"
     , callHackage "optparse-applicative" "0.17.0.0"
-    , callHackage "parsers" "0.12.11"
+    , callHackage "ordered-containers" "0.2.3"
     , callHackage "pandoc-lua-marshal" "0.1.7"
     , callHackage "pandoc-types" "1.22.2.1"
     , callHackage "pandoc" "2.19.2"
     , callHackage "parallel" "3.2.2.0"
+    , callHackage "parsec-class" "1.0.0.0"
+    , callHackage "parsec" "3.1.15.1"
+    , callHackage "parsers-megaparsec" "0.1.0.1"
+    , callHackage "parsers" "0.12.11"
+    , callHackage "parser-combinators" "1.3.0"
     , callHackage "password-types" "1.0.0.0"
     , callHackage "password" "3.0.2.0"
     , callHackage "path-dhall-instance" "0.2.1.0"
+    , callHackage "path-pieces" "0.2.1"
     , callHackage "path-io" "1.7.0"
     , callHackage "path" "0.9.2"
+    , callHackage "patience" "0.3"
     , callHackage "pcg-random" "0.1.3.7"
+    , callHackage "pcre-light" "0.4.1.0"
     , callHackage "pcre2" "2.2.1"
     , callHackage "pem" "0.2.4"
+    , callHackage "persistent-template" "2.12.0.0"
     , callHackage "persistent" "2.14.3.0"
+    , callHackage "pipes" "4.3.16"
     , callHackage "pg-entity" "0.0.2.0"
     , callHackage "pg-transact" "0.3.2.0"
     , callCabal2nix
@@ -439,8 +615,9 @@ in  [ callHackage "Cabal" "3.8.1.0"
         "https://github.com/Kleidukos/pg-transact-effectful"
         (Some "45730b124c7c21f1dcfd85667fda1c19b8ec9723")
         (None Text)
+    , callHackage "pgp-wordlist" "0.1.0.3"
     , callHackage "pointed" "5.0.4"
-    , callHackage "polysemy" "1.7.1.0"
+    , callHackage "polyparse" "1.13"
     , callHackage "polysemy-extra" "0.2.1.0"
     , callHackage "polysemy-kvstore" "0.1.3.0"
     , callHackage "polysemy-methodology" "0.2.1.0"
@@ -451,44 +628,71 @@ in  [ callHackage "Cabal" "3.8.1.0"
         (Some "bd944ca000c1ca69602d4723e3859af431b9d0c4")
         (Some "polysemy-plugin")
     , callHackage "polysemy-several" "0.1.1.0"
+    , callHackage "polysemy-test" "0.6.0.0"
     , callHackage "polysemy-time" "0.5.1.0"
     , callHackage "polysemy-vinyl" "0.1.5.0"
     , callHackage "polysemy-zoo" "0.8.0.0"
+    , callHackage "polysemy" "1.7.1.0"
+    , callHackage "port-utils" "0.2.1.0"
     , callHackage "postgresql-libpq" "0.9.4.3"
     , callHackage "postgresql-migration" "0.2.1.4"
     , callHackage "postgresql-simple" "0.6.4"
     , callHackage "postgresql-simple-migration" "0.1.15.0"
+    , callHackage "postgres-options" "0.2.0.0"
+    , callHackage "pretty-hex" "1.1"
     , callHackage "pretty-show" "1.10"
     , callHackage "pretty-simple" "4.1.1.0"
     , callHackage "prettyprinter-ansi-terminal" "1.1.3"
+    , callHackage "prettyprinter" "1.7.1"
+    , callHackage "primes" "0.2.1.0"
     , callHackage "primitive" "0.7.4.0"
     , callHackage "primitive-addr" "0.1.0.2"
     , callHackage "profunctors" "5.6.2"
     , callHackage "prometheus-client" "1.1.0"
     , callHackage "prometheus-proc" "0.1.4.0"
+    , callHackage "process-extras" "0.7.4"
     , callHackage "proteaaudio-sdl" "0.9.2"
     , callHackage "psqueues" "0.2.7.3"
+    , callHackage "pureMD5" "2.1.4"
+    , callHackage "quickcheck-assertions" "0.3.0"
+    , callHackage "quickcheck-classes-base" "0.6.2.0"
     , callHackage "quickcheck-classes" "0.6.5.0"
     , callHackage "quickcheck-dynamic" "2.0.0"
     , callHackage "quickcheck-instances" "0.3.28"
+    , callHackage "quickcheck-io" "0.2.0"
+    , callHackage "quickcheck-text" "0.1.2.1"
+    , callHackage "quickcheck-unicode" "1.0.1.0"
+    , callHackage "random-bytestring" "0.1.4"
     , callHackage "random-shuffle" "0.0.4"
+    , callHackage "random" "1.2.1.1"
+    , callHackage "raw-strings-qq" "1.1"
+    , callHackage "rdtsc" "1.3.0.1"
     , callHackage "rebase" "1.16"
     , callHackage "reducers" "3.12.4"
+    , callHackage "refact" "0.3.0.2"
     , callHackage "regex-applicative" "0.3.4"
+    , callHackage "regex-base" "0.94.0.2"
+    , callHackage "regex-compat" "0.95.2.1"
+    , callHackage "regex-pcre-builtin" "0.95.2.3.8.44"
+    , callHackage "regex-posix" "0.96.0.1"
     , callHackage "regex-tdfa" "1.3.2"
     , callHackage "refined" "0.8"
     , callHackage "reflection" "2.1.6"
-    , callHackage "resource-pool" "0.3.1.0"
-    , callHackage "resourcet" "1.3.0"
+    , callHackage "relude" "1.1.0.0"
+    , callHackage "repline" "0.4.2.0"
     , callHackage "rerebase" "1.15.0.3"
     , callHackage "rere" "0.2"
-    , callHackage "relude" "1.1.0.0"
+    , callHackage "resolv" "0.1.2.0"
+    , callHackage "resource-pool" "0.3.1.0"
+    , callHackage "resourcet" "1.3.0"
     , callHackage "retry" "0.9.3.0"
     , callHackage "rope-utf16-splay" "0.4.0.0"
     , callHackage "safe-coloured-text-terminfo" "0.1.0.0"
     , callHackage "safe-coloured-text" "0.2.0.1"
     , callHackage "safe-exceptions" "0.1.7.3"
+    , callHackage "safe" "0.3.19"
     , callHackage "saltine" "0.2.0.1"
+    , callHackage "sandwich" "0.1.1.2"
     , callHackage "scotty" "0.12"
     , callHackage "scientific" "0.3.7.0"
     , callHackage "sdl2" "2.5.3.3"
@@ -496,6 +700,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "sdl2-image" "2.1.0.0"
     , callHackage "sdl2-mixer" "1.2.0.0"
     , callHackage "sdl2-ttf" "2.1.3"
+    , callHackage "selective" "0.5"
     , callHackage "semialign" "1.2.0.1"
     , callHackage "semigroups" "0.20"
     , callHackage "semigroupoids" "5.3.7"
@@ -528,7 +733,6 @@ in  [ callHackage "Cabal" "3.8.1.0"
         "https://github.com/TeofilC/servant"
         (Some "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc")
         (Some "servant-foreign")
-
     , callHackage "servant-lucid" "0.9.0.5"
     , callHackage "servant-multipart" "0.12.1"
     , callHackage "servant-multipart-api" "0.12.1"
@@ -538,13 +742,17 @@ in  [ callHackage "Cabal" "3.8.1.0"
         "https://github.com/TeofilC/servant"
         (Some "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc")
         (Some "servant-server")
-    , callHackage "servant-swagger" "1.1.11"  
+    , callHackage "servant-swagger" "1.1.11"
     , callHackage "servant-swagger-ui" "0.3.5.4.5.0"
     , callHackage "servant-swagger-ui-core" "0.3.5"
     , callHackage "servant-static-th" "1.0.0.0"
+    , callHackage "setenv" "0.1.1.3"
     , callHackage "shakespeare" "2.0.30"
     , callHackage "shake" "0.19.6"
     , callHackage "shelly" "1.10.0"
+    , callHackage "should-not-typecheck" "2.1.0"
+    , callHackage "silently" "1.2.5.3"
+    , callHackage "simple-reflect" "0.3.3"
     , callHackage "simple-sendfile" "0.2.30"
     , callHackage "singleton-bool" "0.1.6"
     , callHackage "singletons" "3.0.2"
@@ -554,50 +762,83 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "skylighting-format-ansi" "0.1"
     , callHackage "skylighting-format-blaze-html" "0.1"
     , callHackage "skylighting-format-latex" "0.1"
+    , callHackage "smallcheck" "1.2.1"
     , callHackage "socks" "0.6.1"
     , callHackage "some" "1.0.4"
     , callHackage "sop-core" "0.5.0.1"
+    , callHackage "sorted-list" "0.2.1.0"
     , callHackage "souffle-haskell" "3.5.0"
+    , callHackage "special-values" "0.1.0.0"
+    , callHackage "splitmix" "0.1.0.4"
     , callHackage "split" "0.2.3.3"
+    , callHackage "spoon" "0.3.1"
     , callHackage "sqlite-simple" "0.4.18.2"
     , callHackage "statistics" "0.16.1.0"
+    , callHackage "stm-chans" "3.0.0.6"
     , callHackage "streaming-commons" "0.2.2.4"
+    , callHackage "streaming" "0.2.3.1"
+    , callHackage "store-core" "0.4.4.4"
+    , callHackage "store" "0.7.16"
     , callHackage "strict" "0.4.0.1"
+    , callHackage "string-conversions" "0.4.0.1"
+    , callHackage "string-conv" "0.2.0"
     , callHackage "string-interpolate" "0.3.1.2"
     , callHackage "string-qq" "0.0.4"
+    , callHackage "stringbuilder" "0.5.1"
     , callHackage "swagger2" "2.8.5"
     , callHackage "syb" "0.7.2.1"
     , callHackage "sydtest" "0.13.0.0"
     , callHackage "sydtest-discover" "0.0.0.2"
+    , callHackage "system-filepath" "0.4.14"
+    , callHackage "tabular" "0.2.2.8"
     , callHackage "tagged" "0.8.6.1"
+    , callHackage "tagsoup" "0.14.8"
+    , callCabal2nix
+        "tar"
+        "https://github.com/locallycompact/tar"
+        (Some "107c0b78524acfd0e77e767b83073492008bea0c")
+        (None Text)
     , callCabal2nix
         "tasty"
         "https://github.com/UnkindPartition/tasty"
         (None Text)
         (Some "core")
+    , callHackage "tasty-bench" "0.3.2"
     , callHackage "tasty-discover" "5.0.0"
     , callHackage "tasty-expected-failure" "0.12.3"
+    , callHackage "tasty-golden" "2.3.5"
     , callCabal2nix
         "tasty-hedgehog"
         "https://github.com/locallycompact/tasty-hedgehog"
         (None Text)
         (None Text)
+    , callHackage "tasty-hslua" "1.0.2"
+    , callHackage "tasty-hspec" "1.2.0.1"
     , callCabal2nix
         "tasty-hunit"
         "https://github.com/UnkindPartition/tasty"
         (None Text)
         (Some "hunit")
+    , callHackage "tasty-inspection-testing" "0.2"
+    , callHackage "tasty-kat" "0.0.3"
     , callHackage "tasty-lua" "1.0.2"
-    , callHackage "tasty-hslua" "1.0.2"
-    , callHackage "tasty-golden" "2.3.5"
+    , callHackage "tasty-silver" "3.3.1.1"
     , callHackage "tasty-smallcheck" "0.8.2"
+    , callHackage "tasty-th" "0.1.7"
     , callHackage "tasty-quickcheck" "0.10.2"
     , callHackage "tasty-wai" "0.1.2.0"
+    , callHackage "tdigest" "0.2.1.1"
+    , callHackage "temporary" "1.3"
+    , callHackage "terminal-size" "0.3.3"
     , callHackage "test-framework" "0.8.2.0"
     , callHackage "test-framework-hunit" "0.3.0.2"
+    , callHackage "test-framework-th" "0.2.4"
     , callHackage "test-framework-quickcheck2" "0.3.0.5"
+    , callHackage "test-framework-smallcheck" "0.2"
     , callHackage "texmath" "0.12.5.4"
+    , callHackage "text-conversions" "0.3.1.1"
     , callHackage "text-display" "0.0.3.0"
+    , callHackage "text-icu" "0.8.0.2"
     , callHackage "text-manipulate" "0.3.1.0"
     , callHackage "text-metrics" "0.3.2"
     , callHackage "text-rope" "0.2"
@@ -606,23 +847,36 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "these" "1.1.1.1"
     , callHackage "these-skinny" "0.7.5"
     , callHackage "tf-random" "0.5"
+    , callHackage "th-abstraction" "0.4.5.0"
+    , callHackage "th-compat" "0.1.4"
     , callHackage "th-env" "0.1.1"
     , callHackage "th-expand-syns" "0.4.10.0"
     , callHackage "th-extras" "0.0.0.6"
     , callHackage "th-lift-instances" "0.1.20"
+    , callHackage "th-lift" "0.8.2"
     , callHackage "th-orphans" "0.13.14"
     , callHackage "th-reify-many" "0.1.10"
+    , callHackage "th-utilities" "0.2.5.0"
     , callHackage "tidal" "1.8.1"
+    , callHackage "timing-convenience" "0.1"
+    , callHackage "timeit" "2.0"
     , callHackage "time-compat" "1.9.6.1"
     , callCabal2nix
         "time-effectful"
         "https://github.com/haskell-effectful/time-effectful"
         (Some "e212239b685e1ecf7ee95dd1e944cc563351907f")
         (None Text)
+    , callHackage "time-manager" "0.0.0"
     , callHackage "tls-session-manager" "0.0.4"
     , callHackage "tls" "1.6.0"
+    , callHackage "tmp-postgres" "1.34.1.0"
+    , callHackage "torsor" "0.1"
+    , callHackage "transformers-base" "0.4.6"
+    , callHackage "transformers-compat" "0.7.2"
     , callHackage "tree-diff" "0.2.2"
     , callHackage "trifecta" "2.1.2"
+    , callHackage "tuple" "0.3.0.2"
+    , callHackage "turtle" "1.6.1"
     , callHackage "typed-process" "0.2.10.1"
     , callHackage "type-errors-pretty" "0.0.1.2"
     , callHackage "type-errors" "0.2.0.0"
@@ -632,16 +886,24 @@ in  [ callHackage "Cabal" "3.8.1.0"
         "https://github.com/parsonsmatt/typerep-map"
         (Some "75b7cd5d45986be07420a6821d352ad2adc0b697")
         (None Text)
+    , callHackage "uglymemo" "0.1.0.1"
     , callHackage "unagi-chan" "0.4.1.4"
+    , callHackage "unbounded-delays" "0.1.1.1"
     , callHackage "unicode-collation" "0.1.3.2"
     , callHackage "unicode-data" "0.4.0"
     , callHackage "unicode-transforms" "0.4.0.1"
     , callHackage "uniplate" "1.6.13"
     , callHackage "universe-base" "1.1.3"
+    , callHackage "unix-compat" "0.6"
+    , callHackage "unix-memory" "0.1.2"
+    , callHackage "unix-time" "0.4.8"
     , callHackage "unliftio-core" "0.2.0.1"
     , callHackage "unliftio" "0.2.23.0"
     , callHackage "unordered-containers" "0.2.19.1"
+    , callHackage "uri-bytestring" "0.3.3.1"
     , callHackage "uri-encode" "1.5.0.7"
+    , callHackage "utf8-string" "1.0.2"
+    , callHackage "utility-ht" "0.0.16"
     , callHackage "uuid-types" "1.0.5"
     , callHackage "uuid" "1.3.15"
     , callHackage "validity" "0.12.0.1"
@@ -663,6 +925,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "vector-algorithms" "0.9.0.1"
     , callHackage "vector-binary-instances" "0.2.5.2"
     , callHackage "vector-instances" "3.4"
+    , callHackage "vector-stream" "0.1.0.0"
     , callHackage "vector-th-unbox" "0.2.2"
     , callHackage "vec" "0.4.1"
     , callHackage "vinyl" "0.14.3"
@@ -681,12 +944,21 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "warp" "3.3.22"
     , callHackage "warp-tls" "3.3.3"
     , callHackage "websockets" "0.12.7.3"
+    , callHackage "weigh" "0.0.16"
     , callHackage "witherable" "0.4.2"
     , callHackage "with-utf8" "1.0.2.3"
+    , callHackage "wizards" "1.0.3"
+    , callHackage "wl-pprint-annotated" "0.1.0.1"
+    , callHackage "word-wrap" "0.5"
+    , callHackage "word8" "0.1.3"
     , callHackage "x509-store" "1.6.9"
     , callHackage "x509-system" "1.6.7"
     , callHackage "x509-validation" "1.6.12"
     , callHackage "x509" "1.7.7"
     , callHackage "xml-conduit" "1.9.1.1"
+    , callHackage "xml-types" "0.3.8"
+    , callHackage "xml" "1.3.14"
     , callHackage "yaml" "0.11.8.0"
+    , callHackage "zip-archive" "0.4.2.2"
+    , callHackage "zlib" "0.6.3.0"
     ]
diff --git a/overlay.nix b/overlay.nix
index ba62a593e87121413bdd916c5f881acd6c01d137..981d54a49e425a612dba623664a505f1cf4ac08d 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -1,996 +1,1510 @@
-{pkgs, ...}:
+{pkgs, lib, callPackage, ...}:
 
-final: prev: with pkgs.haskell.lib; {
-  Cabal = prev.callPackage (./pkgs/Cabal.nix) { };
+self: with pkgs.haskell.lib; {
+  Cabal = self.callPackage (./pkgs/Cabal.nix) { };
 
-  Cabal-QuickCheck = prev.callPackage (./pkgs/Cabal-QuickCheck.nix) { };
+  Cabal-QuickCheck = self.callPackage (./pkgs/Cabal-QuickCheck.nix) { };
 
-  Cabal-described = prev.callPackage (./pkgs/Cabal-described.nix) { };
+  Cabal-described = self.callPackage (./pkgs/Cabal-described.nix) { };
 
-  Cabal-syntax = prev.callPackage (./pkgs/Cabal-syntax.nix) { };
+  Cabal-syntax = self.callPackage (./pkgs/Cabal-syntax.nix) { };
 
-  Cabal-tree-diff = prev.callPackage (./pkgs/Cabal-tree-diff.nix) { };
+  Cabal-tree-diff = self.callPackage (./pkgs/Cabal-tree-diff.nix) { };
 
-  ChasingBottoms = prev.callPackage (./pkgs/ChasingBottoms.nix) { };
+  ChasingBottoms = self.callPackage (./pkgs/ChasingBottoms.nix) { };
 
-  HTTP = prev.callPackage (./pkgs/HTTP.nix) { };
+  Decimal = self.callPackage (./pkgs/Decimal.nix) { };
 
-  JuicyPixels = prev.callPackage (./pkgs/JuicyPixels.nix) { };
+  Diff = self.callPackage (./pkgs/Diff.nix) { };
 
-  MonadRandom = prev.callPackage (./pkgs/MonadRandom.nix) { };
+  Glob = self.callPackage (./pkgs/Glob.nix) { };
 
-  OneTuple = prev.callPackage (./pkgs/OneTuple.nix) { };
+  HTTP = self.callPackage (./pkgs/HTTP.nix) { };
 
-  OpenGLRaw = prev.callPackage (./pkgs/OpenGLRaw.nix) { };
+  HUnit = self.callPackage (./pkgs/HUnit.nix) { };
 
-  PyF = prev.callPackage (./pkgs/PyF.nix) { };
+  HsYAML = self.callPackage (./pkgs/HsYAML.nix) { };
 
-  adjunctions = prev.callPackage (./pkgs/adjunctions.nix) { };
+  JuicyPixels = self.callPackage (./pkgs/JuicyPixels.nix) { };
 
-  aeson = prev.callPackage (./pkgs/aeson.nix) { };
+  ListLike = self.callPackage (./pkgs/ListLike.nix) { };
 
-  aeson-pretty = prev.callPackage (./pkgs/aeson-pretty.nix) { };
+  MonadRandom = self.callPackage (./pkgs/MonadRandom.nix) { };
 
-  aeson-yaml = prev.callPackage (./pkgs/aeson-yaml.nix) { };
+  OneTuple = self.callPackage (./pkgs/OneTuple.nix) { };
 
-  ansi-terminal = prev.callPackage (./pkgs/ansi-terminal.nix) { };
+  Only = self.callPackage (./pkgs/Only.nix) { };
 
-  ansi-wl-pprint = prev.callPackage (./pkgs/ansi-wl-pprint.nix) { };
+  OpenGLRaw = self.callPackage (./pkgs/OpenGLRaw.nix) { };
 
-  apecs = prev.callPackage (./pkgs/apecs.nix) { };
+  PSQueue = self.callPackage (./pkgs/PSQueue.nix) { };
 
-  asn1-encoding = prev.callPackage (./pkgs/asn1-encoding.nix) { };
+  PyF = self.callPackage (./pkgs/PyF.nix) { };
 
-  asn1-parse = prev.callPackage (./pkgs/asn1-parse.nix) { };
+  QuickCheck = self.callPackage (./pkgs/QuickCheck.nix) { };
 
-  asn1-types = prev.callPackage (./pkgs/asn1-types.nix) { };
+  SHA = self.callPackage (./pkgs/SHA.nix) { };
 
-  assoc = prev.callPackage (./pkgs/assoc.nix) { };
+  StateVar = self.callPackage (./pkgs/StateVar.nix) { };
 
-  async = prev.callPackage (./pkgs/async.nix) { };
+  abstract-deque = self.callPackage (./pkgs/abstract-deque.nix) { };
 
-  atomic-primops = prev.callPackage (./pkgs/atomic-primops.nix) { };
+  abstract-par = self.callPackage (./pkgs/abstract-par.nix) { };
 
-  attoparsec = prev.callPackage (./pkgs/attoparsec.nix) { };
+  adjunctions = self.callPackage (./pkgs/adjunctions.nix) { };
 
-  attoparsec-binary = prev.callPackage (./pkgs/attoparsec-binary.nix) { };
+  aeson = self.callPackage (./pkgs/aeson.nix) { };
 
-  attoparsec-iso8601 = prev.callPackage (./pkgs/attoparsec-iso8601.nix) { };
+  aeson-pretty = self.callPackage (./pkgs/aeson-pretty.nix) { };
 
-  autodocodec = prev.callPackage (./pkgs/autodocodec.nix) { };
+  aeson-yaml = self.callPackage (./pkgs/aeson-yaml.nix) { };
 
-  autodocodec-schema = prev.callPackage (./pkgs/autodocodec-schema.nix) { };
+  alex = self.callPackage (./pkgs/alex.nix) { };
 
-  autodocodec-servant-multipart = prev.callPackage (./pkgs/autodocodec-servant-multipart.nix) { };
+  algebraic-graphs = self.callPackage (./pkgs/algebraic-graphs.nix) { };
 
-  autodocodec-yaml = prev.callPackage (./pkgs/autodocodec-yaml.nix) { };
+  ansi-terminal = self.callPackage (./pkgs/ansi-terminal.nix) { };
 
-  barbies = prev.callPackage (./pkgs/barbies.nix) { };
+  ansi-wl-pprint = self.callPackage (./pkgs/ansi-wl-pprint.nix) { };
 
-  base-compat = prev.callPackage (./pkgs/base-compat.nix) { };
+  apecs = self.callPackage (./pkgs/apecs.nix) { };
 
-  base-compat-batteries = prev.callPackage (./pkgs/base-compat-batteries.nix) { };
+  appar = self.callPackage (./pkgs/appar.nix) { };
 
-  base64 = prev.callPackage (./pkgs/base64.nix) { };
+  asn1-encoding = self.callPackage (./pkgs/asn1-encoding.nix) { };
 
-  basement = prev.callPackage (./pkgs/basement.nix) { };
+  asn1-parse = self.callPackage (./pkgs/asn1-parse.nix) { };
 
-  bifunctors = prev.callPackage (./pkgs/bifunctors.nix) { };
+  asn1-types = self.callPackage (./pkgs/asn1-types.nix) { };
 
-  bimap = prev.callPackage (./pkgs/bimap.nix) { };
+  assoc = self.callPackage (./pkgs/assoc.nix) { };
 
-  binary-orphans = prev.callPackage (./pkgs/binary-orphans.nix) { };
+  async = self.callPackage (./pkgs/async.nix) { };
 
-  bitvec = prev.callPackage (./pkgs/bitvec.nix) { };
+  atomic-primops = self.callPackage (./pkgs/atomic-primops.nix) { };
 
-  blaze-html = prev.callPackage (./pkgs/blaze-html.nix) { };
+  atomic-write = self.callPackage (./pkgs/atomic-write.nix) { };
 
-  blaze-markup = prev.callPackage (./pkgs/blaze-markup.nix) { };
+  attoparsec = self.callPackage (./pkgs/attoparsec.nix) { };
 
-  blaze-textual = prev.callPackage (./pkgs/blaze-textual.nix) { };
+  attoparsec-binary = self.callPackage (./pkgs/attoparsec-binary.nix) { };
 
-  boring = prev.callPackage (./pkgs/boring.nix) { };
+  attoparsec-iso8601 = self.callPackage (./pkgs/attoparsec-iso8601.nix) { };
 
-  breakpoint = prev.callPackage (./pkgs/breakpoint.nix) { };
+  auto-update = self.callPackage (./pkgs/auto-update.nix) { };
 
-  brick = prev.callPackage (./pkgs/brick.nix) { };
+  autodocodec = self.callPackage (./pkgs/autodocodec.nix) { };
 
-  bsb-http-chunked = prev.callPackage (./pkgs/bsb-http-chunked.nix) { };
+  autodocodec-schema = self.callPackage (./pkgs/autodocodec-schema.nix) { };
 
-  bytes = prev.callPackage (./pkgs/bytes.nix) { };
+  autodocodec-servant-multipart = self.callPackage (./pkgs/autodocodec-servant-multipart.nix) { };
 
-  cabal-doctest = prev.callPackage (./pkgs/cabal-doctest.nix) { };
+  autodocodec-yaml = self.callPackage (./pkgs/autodocodec-yaml.nix) { };
 
-  cabal-install = prev.callPackage (./pkgs/cabal-install.nix) { };
+  barbies = self.callPackage (./pkgs/barbies.nix) { };
 
-  cabal-install-solver = prev.callPackage (./pkgs/cabal-install-solver.nix) { };
+  base-compat = self.callPackage (./pkgs/base-compat.nix) { };
 
-  cabal2nix = prev.callPackage (./pkgs/cabal2nix.nix) { };
+  base-compat-batteries = self.callPackage (./pkgs/base-compat-batteries.nix) { };
 
-  cache = prev.callPackage (./pkgs/cache.nix) { };
+  base-orphans = self.callPackage (./pkgs/base-orphans.nix) { };
 
-  case-insensitive = prev.callPackage (./pkgs/case-insensitive.nix) { };
+  base16-bytestring = self.callPackage (./pkgs/base16-bytestring.nix) { };
 
-  cassava = prev.callPackage (./pkgs/cassava.nix) { };
+  base64 = self.callPackage (./pkgs/base64.nix) { };
 
-  cassava-megaparsec = prev.callPackage (./pkgs/cassava-megaparsec.nix) { };
+  base64-bytestring = self.callPackage (./pkgs/base64-bytestring.nix) { };
 
-  cborg = prev.callPackage (./pkgs/cborg.nix) { };
+  basement = self.callPackage (./pkgs/basement.nix) { };
 
-  cborg-json = prev.callPackage (./pkgs/cborg-json.nix) { };
+  bifunctors = self.callPackage (./pkgs/bifunctors.nix) { };
 
-  cereal = prev.callPackage (./pkgs/cereal.nix) { };
+  bimap = self.callPackage (./pkgs/bimap.nix) { };
 
-  charset = prev.callPackage (./pkgs/charset.nix) { };
+  binary-orphans = self.callPackage (./pkgs/binary-orphans.nix) { };
 
-  citeproc = prev.callPackage (./pkgs/citeproc.nix) { };
+  bitvec = self.callPackage (./pkgs/bitvec.nix) { };
 
-  co-log-core = prev.callPackage (./pkgs/co-log-core.nix) { };
+  blaze-builder = self.callPackage (./pkgs/blaze-builder.nix) { };
 
-  co-log-polysemy = prev.callPackage (./pkgs/co-log-polysemy.nix) { };
+  blaze-html = self.callPackage (./pkgs/blaze-html.nix) { };
 
-  colourista = prev.callPackage (./pkgs/colourista.nix) { };
+  blaze-markup = self.callPackage (./pkgs/blaze-markup.nix) { };
 
-  commonmark = prev.callPackage (./pkgs/commonmark.nix) { };
+  blaze-textual = self.callPackage (./pkgs/blaze-textual.nix) { };
 
-  commonmark-extensions = prev.callPackage (./pkgs/commonmark-extensions.nix) { };
+  boring = self.callPackage (./pkgs/boring.nix) { };
 
-  commonmark-pandoc = prev.callPackage (./pkgs/commonmark-pandoc.nix) { };
+  breakpoint = self.callPackage (./pkgs/breakpoint.nix) { };
 
-  comonad = prev.callPackage (./pkgs/comonad.nix) { };
+  brick = self.callPackage (./pkgs/brick.nix) { };
 
-  compact = prev.callPackage (./pkgs/compact.nix) { };
+  bsb-http-chunked = self.callPackage (./pkgs/bsb-http-chunked.nix) { };
 
-  compactable = prev.callPackage (./pkgs/compactable.nix) { };
+  byteable = self.callPackage (./pkgs/byteable.nix) { };
 
-  composite-base = prev.callPackage (./pkgs/composite-base.nix) { };
+  byteorder = self.callPackage (./pkgs/byteorder.nix) { };
 
-  composite-cassava = prev.callPackage (./pkgs/composite-cassava.nix) { };
+  bytes = self.callPackage (./pkgs/bytes.nix) { };
 
-  composite-dhall = prev.callPackage (./pkgs/composite-dhall.nix) { };
+  bytestring-builder = self.callPackage (./pkgs/bytestring-builder.nix) { };
 
-  composite-lens-extra = prev.callPackage (./pkgs/composite-lens-extra.nix) { };
+  c2hs = self.callPackage (./pkgs/c2hs.nix) { };
 
-  composite-tuple = prev.callPackage (./pkgs/composite-tuple.nix) { };
+  cabal-doctest = self.callPackage (./pkgs/cabal-doctest.nix) { };
 
-  concurrent-output = prev.callPackage (./pkgs/concurrent-output.nix) { };
+  cabal-install = self.callPackage (./pkgs/cabal-install.nix) { };
 
-  conduit = prev.callPackage (./pkgs/conduit.nix) { };
+  cabal-install-solver = self.callPackage (./pkgs/cabal-install-solver.nix) { };
 
-  conduit-extra = prev.callPackage (./pkgs/conduit-extra.nix) { };
+  cabal2nix = self.callPackage (./pkgs/cabal2nix.nix) { };
 
-  config-ini = prev.callPackage (./pkgs/config-ini.nix) { };
+  cache = self.callPackage (./pkgs/cache.nix) { };
 
-  connection = prev.callPackage (./pkgs/connection.nix) { };
+  call-stack = self.callPackage (./pkgs/call-stack.nix) { };
 
-  constraints = prev.callPackage (./pkgs/constraints.nix) { };
+  case-insensitive = self.callPackage (./pkgs/case-insensitive.nix) { };
 
-  criterion = prev.callPackage (./pkgs/criterion.nix) { };
+  cassava = self.callPackage (./pkgs/cassava.nix) { };
 
-  criterion-measurement = prev.callPackage (./pkgs/criterion-measurement.nix) { };
+  cassava-megaparsec = self.callPackage (./pkgs/cassava-megaparsec.nix) { };
 
-  cryptohash = prev.callPackage (./pkgs/cryptohash.nix) { };
+  cborg = self.callPackage (./pkgs/cborg.nix) { };
 
-  cryptohash-sha1 = prev.callPackage (./pkgs/cryptohash-sha1.nix) { };
+  cborg-json = self.callPackage (./pkgs/cborg-json.nix) { };
 
-  cryptonite = prev.callPackage (./pkgs/cryptonite.nix) { };
+  cereal = self.callPackage (./pkgs/cereal.nix) { };
 
-  cursor = prev.callPackage (./pkgs/cursor.nix) { };
+  cereal-vector = self.callPackage (./pkgs/cereal-vector.nix) { };
 
-  cursor-brick = prev.callPackage (./pkgs/cursor-brick.nix) { };
+  charset = self.callPackage (./pkgs/charset.nix) { };
 
-  cursor-dirforest = prev.callPackage (./pkgs/cursor-dirforest.nix) { };
+  checkers = self.callPackage (./pkgs/checkers.nix) { };
 
-  cursor-dirforest-brick = prev.callPackage (./pkgs/cursor-dirforest-brick.nix) { };
+  chell = self.callPackage (./pkgs/chell.nix) { };
 
-  cursor-dirforest-gen = prev.callPackage (./pkgs/cursor-dirforest-gen.nix) { };
+  chell-quickcheck = self.callPackage (./pkgs/chell-quickcheck.nix) { };
 
-  cursor-gen = prev.callPackage (./pkgs/cursor-gen.nix) { };
+  citeproc = self.callPackage (./pkgs/citeproc.nix) { };
 
-  daemons = prev.callPackage (./pkgs/daemons.nix) { };
+  clock = self.callPackage (./pkgs/clock.nix) { };
 
-  data-fix = prev.callPackage (./pkgs/data-fix.nix) { };
+  cmdargs = self.callPackage (./pkgs/cmdargs.nix) { };
 
-  data-sketches = prev.callPackage (./pkgs/data-sketches.nix) { };
+  co-log-core = self.callPackage (./pkgs/co-log-core.nix) { };
 
-  data-sketches-core = prev.callPackage (./pkgs/data-sketches-core.nix) { };
+  co-log-polysemy = self.callPackage (./pkgs/co-log-polysemy.nix) { };
 
-  dec = prev.callPackage (./pkgs/dec.nix) { };
+  code-page = self.callPackage (./pkgs/code-page.nix) { };
 
-  dense-linear-algebra = prev.callPackage (./pkgs/dense-linear-algebra.nix) { };
+  colour = self.callPackage (./pkgs/colour.nix) { };
 
-  deriving-aeson = prev.callPackage (./pkgs/deriving-aeson.nix) { };
+  colourista = self.callPackage (./pkgs/colourista.nix) { };
 
-  dhall = prev.callPackage (./pkgs/dhall.nix) { };
+  commonmark = self.callPackage (./pkgs/commonmark.nix) { };
 
-  dhall-json = prev.callPackage (./pkgs/dhall-json.nix) { };
+  commonmark-extensions = self.callPackage (./pkgs/commonmark-extensions.nix) { };
 
-  dimensional = prev.callPackage (./pkgs/dimensional.nix) { };
+  commonmark-pandoc = self.callPackage (./pkgs/commonmark-pandoc.nix) { };
 
-  dirforest = prev.callPackage (./pkgs/dirforest.nix) { };
+  comonad = self.callPackage (./pkgs/comonad.nix) { };
 
-  distribution-nixpkgs = prev.callPackage (./pkgs/distribution-nixpkgs.nix) { };
+  compact = self.callPackage (./pkgs/compact.nix) { };
 
-  distributive = prev.callPackage (./pkgs/distributive.nix) { };
+  compactable = self.callPackage (./pkgs/compactable.nix) { };
 
-  doctemplates = prev.callPackage (./pkgs/doctemplates.nix) { };
+  composite-base = self.callPackage (./pkgs/composite-base.nix) { };
 
-  doctest = prev.callPackage (./pkgs/doctest.nix) { };
+  composite-cassava = self.callPackage (./pkgs/composite-cassava.nix) { };
 
-  doctest-parallel = prev.callPackage (./pkgs/doctest-parallel.nix) { };
+  composite-dhall = self.callPackage (./pkgs/composite-dhall.nix) { };
 
-  double-conversion = prev.callPackage (./pkgs/double-conversion.nix) { };
+  composite-lens-extra = self.callPackage (./pkgs/composite-lens-extra.nix) { };
 
-  ed25519 = prev.callPackage (./pkgs/ed25519.nix) { };
+  composite-tuple = self.callPackage (./pkgs/composite-tuple.nix) { };
 
-  effectful = prev.callPackage (./pkgs/effectful.nix) { };
+  concurrent-output = self.callPackage (./pkgs/concurrent-output.nix) { };
 
-  effectful-cache = prev.callPackage (./pkgs/effectful-cache.nix) { };
+  conduit = self.callPackage (./pkgs/conduit.nix) { };
 
-  effectful-core = prev.callPackage (./pkgs/effectful-core.nix) { };
+  conduit-extra = self.callPackage (./pkgs/conduit-extra.nix) { };
 
-  effectful-th = prev.callPackage (./pkgs/effectful-th.nix) { };
+  config-ini = self.callPackage (./pkgs/config-ini.nix) { };
 
-  either = prev.callPackage (./pkgs/either.nix) { };
+  connection = self.callPackage (./pkgs/connection.nix) { };
 
-  email-validate = prev.callPackage (./pkgs/email-validate.nix) { };
+  constraints = self.callPackage (./pkgs/constraints.nix) { };
 
-  enclosed-exceptions = prev.callPackage (./pkgs/enclosed-exceptions.nix) { };
+  constraints-extras = self.callPackage (./pkgs/constraints-extras.nix) { };
 
-  expiring-cache-map = prev.callPackage (./pkgs/expiring-cache-map.nix) { };
+  contravariant = self.callPackage (./pkgs/contravariant.nix) { };
 
-  extra = prev.callPackage (./pkgs/extra.nix) { };
+  control-monad-free = self.callPackage (./pkgs/control-monad-free.nix) { };
 
-  fcf-containers = prev.callPackage (./pkgs/fcf-containers.nix) { };
+  cookie = self.callPackage (./pkgs/cookie.nix) { };
 
-  filepattern = prev.callPackage (./pkgs/filepattern.nix) { };
+  cpphs = self.callPackage (./pkgs/cpphs.nix) { };
 
-  fin = prev.callPackage (./pkgs/fin.nix) { };
+  criterion = self.callPackage (./pkgs/criterion.nix) { };
 
-  finite-field = prev.callPackage (./pkgs/finite-field.nix) { };
+  criterion-measurement = self.callPackage (./pkgs/criterion-measurement.nix) { };
 
-  first-class-families = prev.callPackage (./pkgs/first-class-families.nix) { };
+  crypto-api = self.callPackage (./pkgs/crypto-api.nix) { };
 
-  foldl = prev.callPackage (./pkgs/foldl.nix) { };
+  crypto-api-tests = self.callPackage (./pkgs/crypto-api-tests.nix) { };
 
-  foundation = prev.callPackage (./pkgs/foundation.nix) { };
+  cryptohash = self.callPackage (./pkgs/cryptohash.nix) { };
 
-  free = prev.callPackage (./pkgs/free.nix) { };
+  cryptohash-md5 = self.callPackage (./pkgs/cryptohash-md5.nix) { };
 
-  fsnotify = prev.callPackage (./pkgs/fsnotify.nix) { };
+  cryptohash-sha1 = self.callPackage (./pkgs/cryptohash-sha1.nix) { };
 
-  fuzzy-time = prev.callPackage (./pkgs/fuzzy-time.nix) { };
+  cryptohash-sha256 = self.callPackage (./pkgs/cryptohash-sha256.nix) { };
 
-  generic-lens-core = prev.callPackage (./pkgs/generic-lens-core.nix) { };
+  cryptonite = self.callPackage (./pkgs/cryptonite.nix) { };
 
-  generic-lens-lite = prev.callPackage (./pkgs/generic-lens-lite.nix) { };
+  csv = self.callPackage (./pkgs/csv.nix) { };
 
-  generic-monoid = prev.callPackage (./pkgs/generic-monoid.nix) { };
+  cursor = self.callPackage (./pkgs/cursor.nix) { };
 
-  generic-optics = prev.callPackage (./pkgs/generic-optics.nix) { };
+  cursor-brick = self.callPackage (./pkgs/cursor-brick.nix) { };
 
-  generic-optics-lite = prev.callPackage (./pkgs/generic-optics-lite.nix) { };
+  cursor-dirforest = self.callPackage (./pkgs/cursor-dirforest.nix) { };
 
-  generics-sop = prev.callPackage (./pkgs/generics-sop.nix) { };
+  cursor-dirforest-brick = self.callPackage (./pkgs/cursor-dirforest-brick.nix) { };
 
-  genvalidity = prev.callPackage (./pkgs/genvalidity.nix) { };
+  cursor-dirforest-gen = self.callPackage (./pkgs/cursor-dirforest-gen.nix) { };
 
-  genvalidity-aeson = prev.callPackage (./pkgs/genvalidity-aeson.nix) { };
+  cursor-gen = self.callPackage (./pkgs/cursor-gen.nix) { };
 
-  genvalidity-bytestring = prev.callPackage (./pkgs/genvalidity-bytestring.nix) { };
+  daemons = self.callPackage (./pkgs/daemons.nix) { };
 
-  genvalidity-case-insensitive = prev.callPackage (./pkgs/genvalidity-case-insensitive.nix) { };
+  data-binary-ieee754 = self.callPackage (./pkgs/data-binary-ieee754.nix) { };
 
-  genvalidity-containers = prev.callPackage (./pkgs/genvalidity-containers.nix) { };
+  data-clist = self.callPackage (./pkgs/data-clist.nix) { };
 
-  genvalidity-criterion = prev.callPackage (./pkgs/genvalidity-criterion.nix) { };
+  data-default = self.callPackage (./pkgs/data-default.nix) { };
 
-  genvalidity-dirforest = prev.callPackage (./pkgs/genvalidity-dirforest.nix) { };
+  data-default-class = self.callPackage (./pkgs/data-default-class.nix) { };
 
-  genvalidity-hspec = prev.callPackage (./pkgs/genvalidity-hspec.nix) { };
+  data-default-instances-containers = self.callPackage (./pkgs/data-default-instances-containers.nix) { };
 
-  genvalidity-hspec-optics = prev.callPackage (./pkgs/genvalidity-hspec-optics.nix) { };
+  data-default-instances-dlist = self.callPackage (./pkgs/data-default-instances-dlist.nix) { };
 
-  genvalidity-path = prev.callPackage (./pkgs/genvalidity-path.nix) { };
+  data-default-instances-old-locale = self.callPackage (./pkgs/data-default-instances-old-locale.nix) { };
 
-  genvalidity-persistent = prev.callPackage (./pkgs/genvalidity-persistent.nix) { };
+  data-fix = self.callPackage (./pkgs/data-fix.nix) { };
 
-  genvalidity-property = prev.callPackage (./pkgs/genvalidity-property.nix) { };
+  data-sketches = self.callPackage (./pkgs/data-sketches.nix) { };
 
-  genvalidity-scientific = prev.callPackage (./pkgs/genvalidity-scientific.nix) { };
+  data-sketches-core = self.callPackage (./pkgs/data-sketches-core.nix) { };
 
-  genvalidity-sydtest = prev.callPackage (./pkgs/genvalidity-sydtest.nix) { };
+  dec = self.callPackage (./pkgs/dec.nix) { };
 
-  genvalidity-sydtest-aeson = prev.callPackage (./pkgs/genvalidity-sydtest-aeson.nix) { };
+  deepseq-generics = self.callPackage (./pkgs/deepseq-generics.nix) { };
 
-  genvalidity-sydtest-hashable = prev.callPackage (./pkgs/genvalidity-sydtest-hashable.nix) { };
+  dense-linear-algebra = self.callPackage (./pkgs/dense-linear-algebra.nix) { };
 
-  genvalidity-sydtest-lens = prev.callPackage (./pkgs/genvalidity-sydtest-lens.nix) { };
+  dependent-map = self.callPackage (./pkgs/dependent-map.nix) { };
 
-  genvalidity-sydtest-persistent = prev.callPackage (./pkgs/genvalidity-sydtest-persistent.nix) { };
+  dependent-sum = self.callPackage (./pkgs/dependent-sum.nix) { };
 
-  genvalidity-text = prev.callPackage (./pkgs/genvalidity-text.nix) { };
+  deriving-aeson = self.callPackage (./pkgs/deriving-aeson.nix) { };
 
-  genvalidity-time = prev.callPackage (./pkgs/genvalidity-time.nix) { };
+  derp = self.callPackage (./pkgs/derp.nix) { };
 
-  genvalidity-unordered-containers = prev.callPackage (./pkgs/genvalidity-unordered-containers.nix) { };
+  dhall = self.callPackage (./pkgs/dhall.nix) { };
 
-  genvalidity-uuid = prev.callPackage (./pkgs/genvalidity-uuid.nix) { };
+  dhall-json = self.callPackage (./pkgs/dhall-json.nix) { };
 
-  genvalidity-vector = prev.callPackage (./pkgs/genvalidity-vector.nix) { };
+  digest = self.callPackage (./pkgs/digest.nix) { };
 
-  ghc-byteorder = prev.callPackage (./pkgs/ghc-byteorder.nix) { };
+  dimensional = self.callPackage (./pkgs/dimensional.nix) { };
 
-  ghc-check = prev.callPackage (./pkgs/ghc-check.nix) { };
+  direct-sqlite = self.callPackage (./pkgs/direct-sqlite.nix) { };
 
-  ghc-exactprint = prev.callPackage (./pkgs/ghc-exactprint.nix) { };
+  dirforest = self.callPackage (./pkgs/dirforest.nix) { };
 
-  ghc-lib-parser = prev.callPackage (./pkgs/ghc-lib-parser.nix) { };
+  distribution-nixpkgs = self.callPackage (./pkgs/distribution-nixpkgs.nix) { };
 
-  ghc-lib-parser-ex = prev.callPackage (./pkgs/ghc-lib-parser-ex.nix) { };
+  distributive = self.callPackage (./pkgs/distributive.nix) { };
 
-  ghc-paths = prev.callPackage (./pkgs/ghc-paths.nix) { };
+  dlist = self.callPackage (./pkgs/dlist.nix) { };
 
-  ghc-tcplugins-extra = prev.callPackage (./pkgs/ghc-tcplugins-extra.nix) { };
+  doclayout = self.callPackage (./pkgs/doclayout.nix) { };
 
-  ghc-typelits-knownnat = prev.callPackage (./pkgs/ghc-typelits-knownnat.nix) { };
+  doctemplates = self.callPackage (./pkgs/doctemplates.nix) { };
 
-  ghc-typelits-natnormalise = prev.callPackage (./pkgs/ghc-typelits-natnormalise.nix) { };
+  doctest = self.callPackage (./pkgs/doctest.nix) { };
 
-  ghcid = prev.callPackage (./pkgs/ghcid.nix) { };
+  doctest-exitcode-stdio = self.callPackage (./pkgs/doctest-exitcode-stdio.nix) { };
 
-  gitrev = prev.callPackage (./pkgs/gitrev.nix) { };
+  doctest-lib = self.callPackage (./pkgs/doctest-lib.nix) { };
 
-  hackage-db = prev.callPackage (./pkgs/hackage-db.nix) { };
+  doctest-parallel = self.callPackage (./pkgs/doctest-parallel.nix) { };
 
-  hackage-security = prev.callPackage (./pkgs/hackage-security.nix) { };
+  dotgen = self.callPackage (./pkgs/dotgen.nix) { };
 
-  haddock-library = prev.callPackage (./pkgs/haddock-library.nix) { };
+  double-conversion = self.callPackage (./pkgs/double-conversion.nix) { };
 
-  hashable = prev.callPackage (./pkgs/hashable.nix) { };
+  easy-file = self.callPackage (./pkgs/easy-file.nix) { };
 
-  hashing = prev.callPackage (./pkgs/hashing.nix) { };
+  echo = self.callPackage (./pkgs/echo.nix) { };
 
-  hashtables = prev.callPackage (./pkgs/hashtables.nix) { };
+  ed25519 = self.callPackage (./pkgs/ed25519.nix) { };
 
-  haskell-src-meta = prev.callPackage (./pkgs/haskell-src-meta.nix) { };
+  edit-distance = self.callPackage (./pkgs/edit-distance.nix) { };
 
-  hedgehog = prev.callPackage (./pkgs/hedgehog.nix) { };
+  effectful = self.callPackage (./pkgs/effectful.nix) { };
 
-  hedgehog-golden = prev.callPackage (./pkgs/hedgehog-golden.nix) { };
+  effectful-cache = self.callPackage (./pkgs/effectful-cache.nix) { };
 
-  hie-bios = prev.callPackage (./pkgs/hie-bios.nix) { };
+  effectful-core = self.callPackage (./pkgs/effectful-core.nix) { };
 
-  hie-compat = prev.callPackage (./pkgs/hie-compat.nix) { };
+  effectful-th = self.callPackage (./pkgs/effectful-th.nix) { };
 
-  hiedb = prev.callPackage (./pkgs/hiedb.nix) { };
+  either = self.callPackage (./pkgs/either.nix) { };
 
-  hinotify = prev.callPackage (./pkgs/hinotify.nix) { };
+  email-validate = self.callPackage (./pkgs/email-validate.nix) { };
 
-  hledger = prev.callPackage (./pkgs/hledger.nix) { };
+  emojis = self.callPackage (./pkgs/emojis.nix) { };
 
-  hledger-lib = prev.callPackage (./pkgs/hledger-lib.nix) { };
+  enclosed-exceptions = self.callPackage (./pkgs/enclosed-exceptions.nix) { };
 
-  hlint = prev.callPackage (./pkgs/hlint.nix) { };
+  entropy = self.callPackage (./pkgs/entropy.nix) { };
 
-  horizon-gen-nix = prev.callPackage (./pkgs/horizon-gen-nix.nix) { };
+  envparse = self.callPackage (./pkgs/envparse.nix) { };
 
-  hosc = prev.callPackage (./pkgs/hosc.nix) { };
+  erf = self.callPackage (./pkgs/erf.nix) { };
 
-  hourglass = prev.callPackage (./pkgs/hourglass.nix) { };
+  exact-pi = self.callPackage (./pkgs/exact-pi.nix) { };
 
-  hpack = prev.callPackage (./pkgs/hpack.nix) { };
+  expiring-cache-map = self.callPackage (./pkgs/expiring-cache-map.nix) { };
 
-  hpack-dhall = prev.callPackage (./pkgs/hpack-dhall.nix) { };
+  extensible-effects = self.callPackage (./pkgs/extensible-effects.nix) { };
 
-  hslua = prev.callPackage (./pkgs/hslua.nix) { };
+  extensible-exceptions = self.callPackage (./pkgs/extensible-exceptions.nix) { };
 
-  hslua-aeson = prev.callPackage (./pkgs/hslua-aeson.nix) { };
+  extra = self.callPackage (./pkgs/extra.nix) { };
 
-  hslua-classes = prev.callPackage (./pkgs/hslua-classes.nix) { };
+  fail = self.callPackage (./pkgs/fail.nix) { };
 
-  hslua-core = prev.callPackage (./pkgs/hslua-core.nix) { };
+  fast-logger = self.callPackage (./pkgs/fast-logger.nix) { };
 
-  hslua-marshalling = prev.callPackage (./pkgs/hslua-marshalling.nix) { };
+  fcf-containers = self.callPackage (./pkgs/fcf-containers.nix) { };
 
-  hslua-module-doclayout = prev.callPackage (./pkgs/hslua-module-doclayout.nix) { };
+  file-embed = self.callPackage (./pkgs/file-embed.nix) { };
 
-  hslua-module-path = prev.callPackage (./pkgs/hslua-module-path.nix) { };
+  file-embed-lzma = self.callPackage (./pkgs/file-embed-lzma.nix) { };
 
-  hslua-module-system = prev.callPackage (./pkgs/hslua-module-system.nix) { };
+  filemanip = self.callPackage (./pkgs/filemanip.nix) { };
 
-  hslua-module-text = prev.callPackage (./pkgs/hslua-module-text.nix) { };
+  filepattern = self.callPackage (./pkgs/filepattern.nix) { };
 
-  hslua-module-version = prev.callPackage (./pkgs/hslua-module-version.nix) { };
+  filtrable = self.callPackage (./pkgs/filtrable.nix) { };
 
-  hslua-objectorientation = prev.callPackage (./pkgs/hslua-objectorientation.nix) { };
+  fin = self.callPackage (./pkgs/fin.nix) { };
 
-  hslua-packaging = prev.callPackage (./pkgs/hslua-packaging.nix) { };
+  fingertree = self.callPackage (./pkgs/fingertree.nix) { };
 
-  hspec = prev.callPackage (./pkgs/hspec.nix) { };
+  fingertree-psqueue = self.callPackage (./pkgs/fingertree-psqueue.nix) { };
 
-  hspec-contrib = prev.callPackage (./pkgs/hspec-contrib.nix) { };
+  finite-field = self.callPackage (./pkgs/finite-field.nix) { };
 
-  hspec-core = prev.callPackage (./pkgs/hspec-core.nix) { };
+  first-class-families = self.callPackage (./pkgs/first-class-families.nix) { };
 
-  hspec-discover = prev.callPackage (./pkgs/hspec-discover.nix) { };
+  fixed = self.callPackage (./pkgs/fixed.nix) { };
 
-  hspec-meta = prev.callPackage (./pkgs/hspec-meta.nix) { };
+  fmlist = self.callPackage (./pkgs/fmlist.nix) { };
 
-  http-api-data = prev.callPackage (./pkgs/http-api-data.nix) { };
+  foldl = self.callPackage (./pkgs/foldl.nix) { };
 
-  http-client = prev.callPackage (./pkgs/http-client.nix) { };
+  foreign-store = self.callPackage (./pkgs/foreign-store.nix) { };
 
-  http-client-tls = prev.callPackage (./pkgs/http-client-tls.nix) { };
+  formatting = self.callPackage (./pkgs/formatting.nix) { };
 
-  http-date = prev.callPackage (./pkgs/http-date.nix) { };
+  foundation = self.callPackage (./pkgs/foundation.nix) { };
 
-  http-media = prev.callPackage (./pkgs/http-media.nix) { };
+  free = self.callPackage (./pkgs/free.nix) { };
 
-  http-types = prev.callPackage (./pkgs/http-types.nix) { };
+  freer-simple = self.callPackage (./pkgs/freer-simple.nix) { };
 
-  http2 = prev.callPackage (./pkgs/http2.nix) { };
+  friendly-time = self.callPackage (./pkgs/friendly-time.nix) { };
 
-  incipit-base = prev.callPackage (./pkgs/incipit-base.nix) { };
+  fsnotify = self.callPackage (./pkgs/fsnotify.nix) { };
 
-  incipit-core = prev.callPackage (./pkgs/incipit-core.nix) { };
+  fuzzy-time = self.callPackage (./pkgs/fuzzy-time.nix) { };
 
-  indexed-traversable = prev.callPackage (./pkgs/indexed-traversable.nix) { };
+  generic-deriving = self.callPackage (./pkgs/generic-deriving.nix) { };
 
-  indexed-traversable-instances = prev.callPackage (./pkgs/indexed-traversable-instances.nix) { };
+  generic-lens-core = self.callPackage (./pkgs/generic-lens-core.nix) { };
 
-  infer-license = prev.callPackage (./pkgs/infer-license.nix) { };
+  generic-lens-lite = self.callPackage (./pkgs/generic-lens-lite.nix) { };
 
-  insert-ordered-containers = prev.callPackage (./pkgs/insert-ordered-containers.nix) { };
+  generic-monoid = self.callPackage (./pkgs/generic-monoid.nix) { };
 
-  inspection-testing = prev.callPackage (./pkgs/inspection-testing.nix) { };
+  generic-optics = self.callPackage (./pkgs/generic-optics.nix) { };
 
-  integer-logarithms = prev.callPackage (./pkgs/integer-logarithms.nix) { };
+  generic-optics-lite = self.callPackage (./pkgs/generic-optics-lite.nix) { };
 
-  invariant = prev.callPackage (./pkgs/invariant.nix) { };
+  generic-random = self.callPackage (./pkgs/generic-random.nix) { };
 
-  iproute = prev.callPackage (./pkgs/iproute.nix) { };
+  generically = self.callPackage (./pkgs/generically.nix) { };
 
-  ipynb = prev.callPackage (./pkgs/ipynb.nix) { };
+  generics-sop = self.callPackage (./pkgs/generics-sop.nix) { };
 
-  kan-extensions = prev.callPackage (./pkgs/kan-extensions.nix) { };
+  genvalidity = self.callPackage (./pkgs/genvalidity.nix) { };
 
-  keys = prev.callPackage (./pkgs/keys.nix) { };
+  genvalidity-aeson = self.callPackage (./pkgs/genvalidity-aeson.nix) { };
 
-  kvstore-effectful = prev.callPackage (./pkgs/kvstore-effectful.nix) { };
+  genvalidity-bytestring = self.callPackage (./pkgs/genvalidity-bytestring.nix) { };
 
-  kvstore-effectful-cache = prev.callPackage (./pkgs/kvstore-effectful-cache.nix) { };
+  genvalidity-case-insensitive = self.callPackage (./pkgs/genvalidity-case-insensitive.nix) { };
 
-  kvstore-effectful-spec = prev.callPackage (./pkgs/kvstore-effectful-spec.nix) { };
+  genvalidity-containers = self.callPackage (./pkgs/genvalidity-containers.nix) { };
 
-  kvstore-effectful-statemap = prev.callPackage (./pkgs/kvstore-effectful-statemap.nix) { };
+  genvalidity-criterion = self.callPackage (./pkgs/genvalidity-criterion.nix) { };
 
-  language-nix = prev.callPackage (./pkgs/language-nix.nix) { };
+  genvalidity-dirforest = self.callPackage (./pkgs/genvalidity-dirforest.nix) { };
 
-  lens = prev.callPackage (./pkgs/lens.nix) { };
+  genvalidity-hspec = self.callPackage (./pkgs/genvalidity-hspec.nix) { };
 
-  lens-aeson = prev.callPackage (./pkgs/lens-aeson.nix) { };
+  genvalidity-hspec-aeson = self.callPackage (./pkgs/genvalidity-hspec-aeson.nix) { };
 
-  lens-family-th = prev.callPackage (./pkgs/lens-family-th.nix) { };
+  genvalidity-hspec-optics = self.callPackage (./pkgs/genvalidity-hspec-optics.nix) { };
 
-  libsodium = prev.callPackage (./pkgs/libsodium.nix) { };
+  genvalidity-path = self.callPackage (./pkgs/genvalidity-path.nix) { };
 
-  libyaml = prev.callPackage (./pkgs/libyaml.nix) { };
+  genvalidity-persistent = self.callPackage (./pkgs/genvalidity-persistent.nix) { };
 
-  lifted-async = prev.callPackage (./pkgs/lifted-async.nix) { };
+  genvalidity-property = self.callPackage (./pkgs/genvalidity-property.nix) { };
 
-  lifted-base = prev.callPackage (./pkgs/lifted-base.nix) { };
+  genvalidity-scientific = self.callPackage (./pkgs/genvalidity-scientific.nix) { };
 
-  linear = prev.callPackage (./pkgs/linear.nix) { };
+  genvalidity-sydtest = self.callPackage (./pkgs/genvalidity-sydtest.nix) { };
 
-  log-base = prev.callPackage (./pkgs/log-base.nix) { };
+  genvalidity-sydtest-aeson = self.callPackage (./pkgs/genvalidity-sydtest-aeson.nix) { };
 
-  log-effectful = prev.callPackage (./pkgs/log-effectful.nix) { };
+  genvalidity-sydtest-hashable = self.callPackage (./pkgs/genvalidity-sydtest-hashable.nix) { };
 
-  lpeg = prev.callPackage (./pkgs/lpeg.nix) { };
+  genvalidity-sydtest-lens = self.callPackage (./pkgs/genvalidity-sydtest-lens.nix) { };
 
-  lsp = prev.callPackage (./pkgs/lsp.nix) { };
+  genvalidity-sydtest-persistent = self.callPackage (./pkgs/genvalidity-sydtest-persistent.nix) { };
 
-  lsp-types = prev.callPackage (./pkgs/lsp-types.nix) { };
+  genvalidity-text = self.callPackage (./pkgs/genvalidity-text.nix) { };
 
-  lua = prev.callPackage (./pkgs/lua.nix) { };
+  genvalidity-time = self.callPackage (./pkgs/genvalidity-time.nix) { };
 
-  lua-arbitrary = prev.callPackage (./pkgs/lua-arbitrary.nix) { };
+  genvalidity-unordered-containers = self.callPackage (./pkgs/genvalidity-unordered-containers.nix) { };
 
-  lucid = prev.callPackage (./pkgs/lucid.nix) { };
+  genvalidity-uuid = self.callPackage (./pkgs/genvalidity-uuid.nix) { };
 
-  lucid-alpine = prev.callPackage (./pkgs/lucid-alpine.nix) { };
+  genvalidity-vector = self.callPackage (./pkgs/genvalidity-vector.nix) { };
 
-  lucid-aria = prev.callPackage (./pkgs/lucid-aria.nix) { };
+  ghc-byteorder = self.callPackage (./pkgs/ghc-byteorder.nix) { };
 
-  lucid-svg = prev.callPackage (./pkgs/lucid-svg.nix) { };
+  ghc-check = self.callPackage (./pkgs/ghc-check.nix) { };
 
-  lukko = prev.callPackage (./pkgs/lukko.nix) { };
+  ghc-exactprint = self.callPackage (./pkgs/ghc-exactprint.nix) { };
 
-  markdown-unlit = prev.callPackage (./pkgs/markdown-unlit.nix) { };
+  ghc-lib-parser = self.callPackage (./pkgs/ghc-lib-parser.nix) { };
 
-  math-functions = prev.callPackage (./pkgs/math-functions.nix) { };
+  ghc-lib-parser-ex = self.callPackage (./pkgs/ghc-lib-parser-ex.nix) { };
 
-  megaparsec = prev.callPackage (./pkgs/megaparsec.nix) { };
+  ghc-paths = self.callPackage (./pkgs/ghc-paths.nix) { };
 
-  memory = prev.callPackage (./pkgs/memory.nix) { };
+  ghc-tcplugins-extra = self.callPackage (./pkgs/ghc-tcplugins-extra.nix) { };
 
-  microlens-aeson = prev.callPackage (./pkgs/microlens-aeson.nix) { };
+  ghc-typelits-knownnat = self.callPackage (./pkgs/ghc-typelits-knownnat.nix) { };
 
-  microstache = prev.callPackage (./pkgs/microstache.nix) { };
+  ghc-typelits-natnormalise = self.callPackage (./pkgs/ghc-typelits-natnormalise.nix) { };
 
-  mockery = prev.callPackage (./pkgs/mockery.nix) { };
+  ghcid = self.callPackage (./pkgs/ghcid.nix) { };
 
-  mod = prev.callPackage (./pkgs/mod.nix) { };
+  githash = self.callPackage (./pkgs/githash.nix) { };
 
-  monad-control = prev.callPackage (./pkgs/monad-control.nix) { };
+  gitrev = self.callPackage (./pkgs/gitrev.nix) { };
 
-  monad-logger = prev.callPackage (./pkgs/monad-logger.nix) { };
+  gridtables = self.callPackage (./pkgs/gridtables.nix) { };
 
-  monad-par = prev.callPackage (./pkgs/monad-par.nix) { };
+  groups = self.callPackage (./pkgs/groups.nix) { };
 
-  monad-par-extras = prev.callPackage (./pkgs/monad-par-extras.nix) { };
+  hackage-db = self.callPackage (./pkgs/hackage-db.nix) { };
 
-  monad-time = prev.callPackage (./pkgs/monad-time.nix) { };
+  hackage-security = self.callPackage (./pkgs/hackage-security.nix) { };
 
-  mono-traversable = prev.callPackage (./pkgs/mono-traversable.nix) { };
+  haddock-library = self.callPackage (./pkgs/haddock-library.nix) { };
 
-  monoid-subclasses = prev.callPackage (./pkgs/monoid-subclasses.nix) { };
+  half = self.callPackage (./pkgs/half.nix) { };
 
-  mwc-random = prev.callPackage (./pkgs/mwc-random.nix) { };
+  happy = self.callPackage (./pkgs/happy.nix) { };
 
-  net-mqtt = prev.callPackage (./pkgs/net-mqtt.nix) { };
+  hashable = self.callPackage (./pkgs/hashable.nix) { };
 
-  network = prev.callPackage (./pkgs/network.nix) { };
+  hashing = self.callPackage (./pkgs/hashing.nix) { };
 
-  network-byte-order = prev.callPackage (./pkgs/network-byte-order.nix) { };
+  hashmap = self.callPackage (./pkgs/hashmap.nix) { };
 
-  network-conduit-tls = prev.callPackage (./pkgs/network-conduit-tls.nix) { };
+  hashtables = self.callPackage (./pkgs/hashtables.nix) { };
 
-  network-uri = prev.callPackage (./pkgs/network-uri.nix) { };
+  haskell-lexer = self.callPackage (./pkgs/haskell-lexer.nix) { };
 
-  newtype-generics = prev.callPackage (./pkgs/newtype-generics.nix) { };
+  haskell-src-exts = self.callPackage (./pkgs/haskell-src-exts.nix) { };
 
-  nothunks = prev.callPackage (./pkgs/nothunks.nix) { };
+  haskell-src-meta = self.callPackage (./pkgs/haskell-src-meta.nix) { };
 
-  odd-jobs = prev.callPackage (./pkgs/odd-jobs.nix) { };
+  heaps = self.callPackage (./pkgs/heaps.nix) { };
 
-  optics = prev.callPackage (./pkgs/optics.nix) { };
+  hedgehog = self.callPackage (./pkgs/hedgehog.nix) { };
 
-  optics-core = prev.callPackage (./pkgs/optics-core.nix) { };
+  hedgehog-golden = self.callPackage (./pkgs/hedgehog-golden.nix) { };
 
-  optics-extra = prev.callPackage (./pkgs/optics-extra.nix) { };
+  hie-bios = self.callPackage (./pkgs/hie-bios.nix) { };
 
-  optics-th = prev.callPackage (./pkgs/optics-th.nix) { };
+  hie-compat = self.callPackage (./pkgs/hie-compat.nix) { };
 
-  optparse-applicative = prev.callPackage (./pkgs/optparse-applicative.nix) { };
+  hinotify = self.callPackage (./pkgs/hinotify.nix) { };
 
-  pandoc = prev.callPackage (./pkgs/pandoc.nix) { };
+  hledger = self.callPackage (./pkgs/hledger.nix) { };
 
-  pandoc-lua-marshal = prev.callPackage (./pkgs/pandoc-lua-marshal.nix) { };
+  hledger-lib = self.callPackage (./pkgs/hledger-lib.nix) { };
 
-  pandoc-types = prev.callPackage (./pkgs/pandoc-types.nix) { };
+  hlint = self.callPackage (./pkgs/hlint.nix) { };
 
-  parallel = prev.callPackage (./pkgs/parallel.nix) { };
+  hopenssl = self.callPackage (./pkgs/hopenssl.nix) { };
 
-  parsers = prev.callPackage (./pkgs/parsers.nix) { };
+  horizon-gen-nix = self.callPackage (./pkgs/horizon-gen-nix.nix) { };
 
-  password = prev.callPackage (./pkgs/password.nix) { };
+  hosc = self.callPackage (./pkgs/hosc.nix) { };
 
-  password-types = prev.callPackage (./pkgs/password-types.nix) { };
+  hostname = self.callPackage (./pkgs/hostname.nix) { };
 
-  path = prev.callPackage (./pkgs/path.nix) { };
+  hourglass = self.callPackage (./pkgs/hourglass.nix) { };
 
-  path-dhall-instance = prev.callPackage (./pkgs/path-dhall-instance.nix) { };
+  hpack = self.callPackage (./pkgs/hpack.nix) { };
 
-  path-io = prev.callPackage (./pkgs/path-io.nix) { };
+  hpack-dhall = self.callPackage (./pkgs/hpack-dhall.nix) { };
 
-  pcg-random = prev.callPackage (./pkgs/pcg-random.nix) { };
+  hscolour = self.callPackage (./pkgs/hscolour.nix) { };
 
-  pcre2 = prev.callPackage (./pkgs/pcre2.nix) { };
+  hslua = self.callPackage (./pkgs/hslua.nix) { };
 
-  pem = prev.callPackage (./pkgs/pem.nix) { };
+  hslua-aeson = self.callPackage (./pkgs/hslua-aeson.nix) { };
 
-  persistent = prev.callPackage (./pkgs/persistent.nix) { };
+  hslua-classes = self.callPackage (./pkgs/hslua-classes.nix) { };
 
-  pg-entity = prev.callPackage (./pkgs/pg-entity.nix) { };
+  hslua-core = self.callPackage (./pkgs/hslua-core.nix) { };
 
-  pg-transact = prev.callPackage (./pkgs/pg-transact.nix) { };
+  hslua-marshalling = self.callPackage (./pkgs/hslua-marshalling.nix) { };
 
-  pg-transact-effectful = prev.callPackage (./pkgs/pg-transact-effectful.nix) { };
+  hslua-module-doclayout = self.callPackage (./pkgs/hslua-module-doclayout.nix) { };
 
-  pointed = prev.callPackage (./pkgs/pointed.nix) { };
+  hslua-module-path = self.callPackage (./pkgs/hslua-module-path.nix) { };
 
-  polysemy = prev.callPackage (./pkgs/polysemy.nix) { };
+  hslua-module-system = self.callPackage (./pkgs/hslua-module-system.nix) { };
 
-  polysemy-extra = prev.callPackage (./pkgs/polysemy-extra.nix) { };
+  hslua-module-text = self.callPackage (./pkgs/hslua-module-text.nix) { };
 
-  polysemy-kvstore = prev.callPackage (./pkgs/polysemy-kvstore.nix) { };
+  hslua-module-version = self.callPackage (./pkgs/hslua-module-version.nix) { };
 
-  polysemy-methodology = prev.callPackage (./pkgs/polysemy-methodology.nix) { };
+  hslua-objectorientation = self.callPackage (./pkgs/hslua-objectorientation.nix) { };
 
-  polysemy-path = prev.callPackage (./pkgs/polysemy-path.nix) { };
+  hslua-packaging = self.callPackage (./pkgs/hslua-packaging.nix) { };
 
-  polysemy-plugin = prev.callPackage (./pkgs/polysemy-plugin.nix) { };
+  hspec = self.callPackage (./pkgs/hspec.nix) { };
 
-  polysemy-several = prev.callPackage (./pkgs/polysemy-several.nix) { };
+  hspec-contrib = self.callPackage (./pkgs/hspec-contrib.nix) { };
 
-  polysemy-time = prev.callPackage (./pkgs/polysemy-time.nix) { };
+  hspec-core = self.callPackage (./pkgs/hspec-core.nix) { };
 
-  polysemy-vinyl = prev.callPackage (./pkgs/polysemy-vinyl.nix) { };
+  hspec-discover = self.callPackage (./pkgs/hspec-discover.nix) { };
 
-  polysemy-zoo = prev.callPackage (./pkgs/polysemy-zoo.nix) { };
+  hspec-expectations = self.callPackage (./pkgs/hspec-expectations.nix) { };
 
-  postgresql-libpq = prev.callPackage (./pkgs/postgresql-libpq.nix) { };
+  hspec-expectations-lifted = self.callPackage (./pkgs/hspec-expectations-lifted.nix) { };
 
-  postgresql-migration = prev.callPackage (./pkgs/postgresql-migration.nix) { };
+  hspec-hedgehog = self.callPackage (./pkgs/hspec-hedgehog.nix) { };
 
-  postgresql-simple = prev.callPackage (./pkgs/postgresql-simple.nix) { };
+  hspec-megaparsec = self.callPackage (./pkgs/hspec-megaparsec.nix) { };
 
-  postgresql-simple-migration = prev.callPackage (./pkgs/postgresql-simple-migration.nix) { };
+  hspec-meta = self.callPackage (./pkgs/hspec-meta.nix) { };
 
-  pretty-show = prev.callPackage (./pkgs/pretty-show.nix) { };
+  hspec-smallcheck = self.callPackage (./pkgs/hspec-smallcheck.nix) { };
 
-  pretty-simple = prev.callPackage (./pkgs/pretty-simple.nix) { };
+  hspec-wai = self.callPackage (./pkgs/hspec-wai.nix) { };
 
-  prettyprinter-ansi-terminal = prev.callPackage (./pkgs/prettyprinter-ansi-terminal.nix) { };
+  html = self.callPackage (./pkgs/html.nix) { };
 
-  primitive = prev.callPackage (./pkgs/primitive.nix) { };
+  http-api-data = self.callPackage (./pkgs/http-api-data.nix) { };
 
-  primitive-addr = prev.callPackage (./pkgs/primitive-addr.nix) { };
+  http-client = self.callPackage (./pkgs/http-client.nix) { };
 
-  profunctors = prev.callPackage (./pkgs/profunctors.nix) { };
+  http-client-tls = self.callPackage (./pkgs/http-client-tls.nix) { };
 
-  prometheus-client = prev.callPackage (./pkgs/prometheus-client.nix) { };
+  http-date = self.callPackage (./pkgs/http-date.nix) { };
 
-  prometheus-proc = prev.callPackage (./pkgs/prometheus-proc.nix) { };
+  http-media = self.callPackage (./pkgs/http-media.nix) { };
 
-  proteaaudio-sdl = prev.callPackage (./pkgs/proteaaudio-sdl.nix) { };
+  http-types = self.callPackage (./pkgs/http-types.nix) { };
 
-  psqueues = prev.callPackage (./pkgs/psqueues.nix) { };
+  http2 = self.callPackage (./pkgs/http2.nix) { };
 
-  quickcheck-classes = prev.callPackage (./pkgs/quickcheck-classes.nix) { };
+  httpd-shed = self.callPackage (./pkgs/httpd-shed.nix) { };
 
-  quickcheck-dynamic = prev.callPackage (./pkgs/quickcheck-dynamic.nix) { };
+  ieee754 = self.callPackage (./pkgs/ieee754.nix) { };
 
-  quickcheck-instances = prev.callPackage (./pkgs/quickcheck-instances.nix) { };
+  incipit-base = self.callPackage (./pkgs/incipit-base.nix) { };
 
-  random-shuffle = prev.callPackage (./pkgs/random-shuffle.nix) { };
+  incipit-core = self.callPackage (./pkgs/incipit-core.nix) { };
 
-  rebase = prev.callPackage (./pkgs/rebase.nix) { };
+  indexed-profunctors = self.callPackage (./pkgs/indexed-profunctors.nix) { };
 
-  reducers = prev.callPackage (./pkgs/reducers.nix) { };
+  indexed-traversable = self.callPackage (./pkgs/indexed-traversable.nix) { };
 
-  refined = prev.callPackage (./pkgs/refined.nix) { };
+  indexed-traversable-instances = self.callPackage (./pkgs/indexed-traversable-instances.nix) { };
 
-  reflection = prev.callPackage (./pkgs/reflection.nix) { };
+  infer-license = self.callPackage (./pkgs/infer-license.nix) { };
 
-  regex-applicative = prev.callPackage (./pkgs/regex-applicative.nix) { };
+  ini = self.callPackage (./pkgs/ini.nix) { };
 
-  regex-tdfa = prev.callPackage (./pkgs/regex-tdfa.nix) { };
+  insert-ordered-containers = self.callPackage (./pkgs/insert-ordered-containers.nix) { };
 
-  relude = prev.callPackage (./pkgs/relude.nix) { };
+  inspection-testing = self.callPackage (./pkgs/inspection-testing.nix) { };
 
-  rere = prev.callPackage (./pkgs/rere.nix) { };
+  integer-logarithms = self.callPackage (./pkgs/integer-logarithms.nix) { };
 
-  rerebase = prev.callPackage (./pkgs/rerebase.nix) { };
+  interpolate = self.callPackage (./pkgs/interpolate.nix) { };
 
-  resource-pool = prev.callPackage (./pkgs/resource-pool.nix) { };
+  invariant = self.callPackage (./pkgs/invariant.nix) { };
 
-  resourcet = prev.callPackage (./pkgs/resourcet.nix) { };
+  iproute = self.callPackage (./pkgs/iproute.nix) { };
 
-  retry = prev.callPackage (./pkgs/retry.nix) { };
+  ipynb = self.callPackage (./pkgs/ipynb.nix) { };
 
-  rope-utf16-splay = prev.callPackage (./pkgs/rope-utf16-splay.nix) { };
+  jira-wiki-markup = self.callPackage (./pkgs/jira-wiki-markup.nix) { };
 
-  safe-coloured-text = prev.callPackage (./pkgs/safe-coloured-text.nix) { };
+  js-chart = self.callPackage (./pkgs/js-chart.nix) { };
 
-  safe-coloured-text-terminfo = prev.callPackage (./pkgs/safe-coloured-text-terminfo.nix) { };
+  js-dgtable = self.callPackage (./pkgs/js-dgtable.nix) { };
 
-  safe-exceptions = prev.callPackage (./pkgs/safe-exceptions.nix) { };
+  js-flot = self.callPackage (./pkgs/js-flot.nix) { };
 
-  saltine = prev.callPackage (./pkgs/saltine.nix) { };
+  js-jquery = self.callPackage (./pkgs/js-jquery.nix) { };
 
-  scientific = prev.callPackage (./pkgs/scientific.nix) { };
+  kan-extensions = self.callPackage (./pkgs/kan-extensions.nix) { };
 
-  scotty = prev.callPackage (./pkgs/scotty.nix) { };
+  keys = self.callPackage (./pkgs/keys.nix) { };
 
-  sdl2 = prev.callPackage (./pkgs/sdl2.nix) { };
+  kvstore-effectful = self.callPackage (./pkgs/kvstore-effectful.nix) { };
 
-  sdl2-gfx = prev.callPackage (./pkgs/sdl2-gfx.nix) { };
+  kvstore-effectful-cache = self.callPackage (./pkgs/kvstore-effectful-cache.nix) { };
 
-  sdl2-image = prev.callPackage (./pkgs/sdl2-image.nix) { };
+  kvstore-effectful-spec = self.callPackage (./pkgs/kvstore-effectful-spec.nix) { };
 
-  sdl2-mixer = prev.callPackage (./pkgs/sdl2-mixer.nix) { };
+  kvstore-effectful-statemap = self.callPackage (./pkgs/kvstore-effectful-statemap.nix) { };
 
-  sdl2-ttf = prev.callPackage (./pkgs/sdl2-ttf.nix) { };
+  language-c = self.callPackage (./pkgs/language-c.nix) { };
 
-  semialign = prev.callPackage (./pkgs/semialign.nix) { };
+  language-haskell-extract = self.callPackage (./pkgs/language-haskell-extract.nix) { };
 
-  semigroupoids = prev.callPackage (./pkgs/semigroupoids.nix) { };
+  language-nix = self.callPackage (./pkgs/language-nix.nix) { };
 
-  semigroups = prev.callPackage (./pkgs/semigroups.nix) { };
+  lens = self.callPackage (./pkgs/lens.nix) { };
 
-  semirings = prev.callPackage (./pkgs/semirings.nix) { };
+  lens-aeson = self.callPackage (./pkgs/lens-aeson.nix) { };
 
-  serialise = prev.callPackage (./pkgs/serialise.nix) { };
+  lens-family-core = self.callPackage (./pkgs/lens-family-core.nix) { };
 
-  servant = prev.callPackage (./pkgs/servant.nix) { };
+  lens-family-th = self.callPackage (./pkgs/lens-family-th.nix) { };
 
-  servant-blaze = prev.callPackage (./pkgs/servant-blaze.nix) { };
+  libsodium = self.callPackage (./pkgs/libsodium.nix) { };
 
-  servant-client = prev.callPackage (./pkgs/servant-client.nix) { };
+  libxml = self.callPackage (./pkgs/libxml.nix) { };
 
-  servant-client-core = prev.callPackage (./pkgs/servant-client-core.nix) { };
+  libyaml = self.callPackage (./pkgs/libyaml.nix) { };
 
-  servant-docs = prev.callPackage (./pkgs/servant-docs.nix) { };
+  lift-type = self.callPackage (./pkgs/lift-type.nix) { };
 
-  servant-effectful = prev.callPackage (./pkgs/servant-effectful.nix) { };
+  lifted-async = self.callPackage (./pkgs/lifted-async.nix) { };
 
-  servant-foreign = prev.callPackage (./pkgs/servant-foreign.nix) { };
+  lifted-base = self.callPackage (./pkgs/lifted-base.nix) { };
 
-  servant-lucid = prev.callPackage (./pkgs/servant-lucid.nix) { };
+  linear = self.callPackage (./pkgs/linear.nix) { };
 
-  servant-multipart = prev.callPackage (./pkgs/servant-multipart.nix) { };
+  log-base = self.callPackage (./pkgs/log-base.nix) { };
 
-  servant-multipart-api = prev.callPackage (./pkgs/servant-multipart-api.nix) { };
+  log-effectful = self.callPackage (./pkgs/log-effectful.nix) { };
 
-  servant-polysemy = prev.callPackage (./pkgs/servant-polysemy.nix) { };
+  logging-facade = self.callPackage (./pkgs/logging-facade.nix) { };
 
-  servant-server = prev.callPackage (./pkgs/servant-server.nix) { };
+  logict = self.callPackage (./pkgs/logict.nix) { };
 
-  servant-static-th = prev.callPackage (./pkgs/servant-static-th.nix) { };
+  lpeg = self.callPackage (./pkgs/lpeg.nix) { };
 
-  servant-swagger = prev.callPackage (./pkgs/servant-swagger.nix) { };
+  lsp = self.callPackage (./pkgs/lsp.nix) { };
 
-  servant-swagger-ui = prev.callPackage (./pkgs/servant-swagger-ui.nix) { };
+  lsp-types = self.callPackage (./pkgs/lsp-types.nix) { };
 
-  servant-swagger-ui-core = prev.callPackage (./pkgs/servant-swagger-ui-core.nix) { };
+  lua = self.callPackage (./pkgs/lua.nix) { };
 
-  shake = prev.callPackage (./pkgs/shake.nix) { };
+  lua-arbitrary = self.callPackage (./pkgs/lua-arbitrary.nix) { };
 
-  shakespeare = prev.callPackage (./pkgs/shakespeare.nix) { };
+  lucid = self.callPackage (./pkgs/lucid.nix) { };
 
-  shelly = prev.callPackage (./pkgs/shelly.nix) { };
+  lucid-alpine = self.callPackage (./pkgs/lucid-alpine.nix) { };
 
-  simple-sendfile = prev.callPackage (./pkgs/simple-sendfile.nix) { };
+  lucid-aria = self.callPackage (./pkgs/lucid-aria.nix) { };
 
-  singleton-bool = prev.callPackage (./pkgs/singleton-bool.nix) { };
+  lucid-svg = self.callPackage (./pkgs/lucid-svg.nix) { };
 
-  singletons = prev.callPackage (./pkgs/singletons.nix) { };
+  lukko = self.callPackage (./pkgs/lukko.nix) { };
 
-  skylighting = prev.callPackage (./pkgs/skylighting.nix) { };
+  lzma = self.callPackage (./pkgs/lzma.nix) { };
 
-  skylighting-core = prev.callPackage (./pkgs/skylighting-core.nix) { };
+  managed = self.callPackage (./pkgs/managed.nix) { };
 
-  skylighting-format-ansi = prev.callPackage (./pkgs/skylighting-format-ansi.nix) { };
+  markdown-unlit = self.callPackage (./pkgs/markdown-unlit.nix) { };
 
-  skylighting-format-blaze-html = prev.callPackage (./pkgs/skylighting-format-blaze-html.nix) { };
+  math-functions = self.callPackage (./pkgs/math-functions.nix) { };
 
-  skylighting-format-latex = prev.callPackage (./pkgs/skylighting-format-latex.nix) { };
+  megaparsec = self.callPackage (./pkgs/megaparsec.nix) { };
 
-  slugify = prev.callPackage (./pkgs/slugify.nix) { };
+  memory = self.callPackage (./pkgs/memory.nix) { };
 
-  socks = prev.callPackage (./pkgs/socks.nix) { };
+  mersenne-random = self.callPackage (./pkgs/mersenne-random.nix) { };
 
-  some = prev.callPackage (./pkgs/some.nix) { };
+  microlens = self.callPackage (./pkgs/microlens.nix) { };
 
-  sop-core = prev.callPackage (./pkgs/sop-core.nix) { };
+  microlens-aeson = self.callPackage (./pkgs/microlens-aeson.nix) { };
 
-  souffle-haskell = prev.callPackage (./pkgs/souffle-haskell.nix) { };
+  microlens-ghc = self.callPackage (./pkgs/microlens-ghc.nix) { };
 
-  split = prev.callPackage (./pkgs/split.nix) { };
+  microlens-mtl = self.callPackage (./pkgs/microlens-mtl.nix) { };
 
-  sqlite-simple = prev.callPackage (./pkgs/sqlite-simple.nix) { };
+  microlens-platform = self.callPackage (./pkgs/microlens-platform.nix) { };
 
-  statistics = prev.callPackage (./pkgs/statistics.nix) { };
+  microlens-th = self.callPackage (./pkgs/microlens-th.nix) { };
 
-  streaming-commons = prev.callPackage (./pkgs/streaming-commons.nix) { };
+  microspec = self.callPackage (./pkgs/microspec.nix) { };
 
-  strict = prev.callPackage (./pkgs/strict.nix) { };
+  microstache = self.callPackage (./pkgs/microstache.nix) { };
 
-  string-interpolate = prev.callPackage (./pkgs/string-interpolate.nix) { };
+  mime-types = self.callPackage (./pkgs/mime-types.nix) { };
 
-  string-qq = prev.callPackage (./pkgs/string-qq.nix) { };
+  mmorph = self.callPackage (./pkgs/mmorph.nix) { };
 
-  swagger2 = prev.callPackage (./pkgs/swagger2.nix) { };
+  mockery = self.callPackage (./pkgs/mockery.nix) { };
 
-  syb = prev.callPackage (./pkgs/syb.nix) { };
+  mod = self.callPackage (./pkgs/mod.nix) { };
 
-  sydtest = prev.callPackage (./pkgs/sydtest.nix) { };
+  monad-control = self.callPackage (./pkgs/monad-control.nix) { };
 
-  sydtest-discover = prev.callPackage (./pkgs/sydtest-discover.nix) { };
+  monad-logger = self.callPackage (./pkgs/monad-logger.nix) { };
 
-  tagged = prev.callPackage (./pkgs/tagged.nix) { };
+  monad-loops = self.callPackage (./pkgs/monad-loops.nix) { };
 
-  tasty = prev.callPackage (./pkgs/tasty.nix) { };
+  monad-par = self.callPackage (./pkgs/monad-par.nix) { };
 
-  tasty-discover = prev.callPackage (./pkgs/tasty-discover.nix) { };
+  monad-par-extras = self.callPackage (./pkgs/monad-par-extras.nix) { };
 
-  tasty-expected-failure = prev.callPackage (./pkgs/tasty-expected-failure.nix) { };
+  monad-parallel = self.callPackage (./pkgs/monad-parallel.nix) { };
 
-  tasty-golden = prev.callPackage (./pkgs/tasty-golden.nix) { };
+  monad-peel = self.callPackage (./pkgs/monad-peel.nix) { };
 
-  tasty-hedgehog = prev.callPackage (./pkgs/tasty-hedgehog.nix) { };
+  monad-time = self.callPackage (./pkgs/monad-time.nix) { };
 
-  tasty-hslua = prev.callPackage (./pkgs/tasty-hslua.nix) { };
+  monads-tf = self.callPackage (./pkgs/monads-tf.nix) { };
 
-  tasty-hunit = prev.callPackage (./pkgs/tasty-hunit.nix) { };
+  mono-traversable = self.callPackage (./pkgs/mono-traversable.nix) { };
 
-  tasty-lua = prev.callPackage (./pkgs/tasty-lua.nix) { };
+  monoid-subclasses = self.callPackage (./pkgs/monoid-subclasses.nix) { };
 
-  tasty-quickcheck = prev.callPackage (./pkgs/tasty-quickcheck.nix) { };
+  mtl-compat = self.callPackage (./pkgs/mtl-compat.nix) { };
 
-  tasty-smallcheck = prev.callPackage (./pkgs/tasty-smallcheck.nix) { };
+  mwc-random = self.callPackage (./pkgs/mwc-random.nix) { };
 
-  tasty-wai = prev.callPackage (./pkgs/tasty-wai.nix) { };
+  nanospec = self.callPackage (./pkgs/nanospec.nix) { };
 
-  test-framework = prev.callPackage (./pkgs/test-framework.nix) { };
+  nats = self.callPackage (./pkgs/nats.nix) { };
 
-  test-framework-hunit = prev.callPackage (./pkgs/test-framework-hunit.nix) { };
+  natural-transformation = self.callPackage (./pkgs/natural-transformation.nix) { };
 
-  test-framework-quickcheck2 = prev.callPackage (./pkgs/test-framework-quickcheck2.nix) { };
+  neat-interpolation = self.callPackage (./pkgs/neat-interpolation.nix) { };
 
-  texmath = prev.callPackage (./pkgs/texmath.nix) { };
+  net-mqtt = self.callPackage (./pkgs/net-mqtt.nix) { };
 
-  text-display = prev.callPackage (./pkgs/text-display.nix) { };
+  network = self.callPackage (./pkgs/network.nix) { };
 
-  text-manipulate = prev.callPackage (./pkgs/text-manipulate.nix) { };
+  network-bsd = self.callPackage (./pkgs/network-bsd.nix) { };
 
-  text-metrics = prev.callPackage (./pkgs/text-metrics.nix) { };
+  network-byte-order = self.callPackage (./pkgs/network-byte-order.nix) { };
 
-  text-rope = prev.callPackage (./pkgs/text-rope.nix) { };
+  network-conduit-tls = self.callPackage (./pkgs/network-conduit-tls.nix) { };
 
-  text-short = prev.callPackage (./pkgs/text-short.nix) { };
+  network-info = self.callPackage (./pkgs/network-info.nix) { };
 
-  text-zipper = prev.callPackage (./pkgs/text-zipper.nix) { };
+  network-run = self.callPackage (./pkgs/network-run.nix) { };
 
-  tf-random = prev.callPackage (./pkgs/tf-random.nix) { };
+  network-uri = self.callPackage (./pkgs/network-uri.nix) { };
 
-  th-env = prev.callPackage (./pkgs/th-env.nix) { };
+  newtype-generics = self.callPackage (./pkgs/newtype-generics.nix) { };
 
-  th-expand-syns = prev.callPackage (./pkgs/th-expand-syns.nix) { };
+  nothunks = self.callPackage (./pkgs/nothunks.nix) { };
 
-  th-extras = prev.callPackage (./pkgs/th-extras.nix) { };
+  numtype-dk = self.callPackage (./pkgs/numtype-dk.nix) { };
 
-  th-lift-instances = prev.callPackage (./pkgs/th-lift-instances.nix) { };
+  odd-jobs = self.callPackage (./pkgs/odd-jobs.nix) { };
 
-  th-orphans = prev.callPackage (./pkgs/th-orphans.nix) { };
+  old-locale = self.callPackage (./pkgs/old-locale.nix) { };
 
-  th-reify-many = prev.callPackage (./pkgs/th-reify-many.nix) { };
+  old-time = self.callPackage (./pkgs/old-time.nix) { };
 
-  these = prev.callPackage (./pkgs/these.nix) { };
+  optics = self.callPackage (./pkgs/optics.nix) { };
 
-  these-skinny = prev.callPackage (./pkgs/these-skinny.nix) { };
+  optics-core = self.callPackage (./pkgs/optics-core.nix) { };
 
-  tidal = prev.callPackage (./pkgs/tidal.nix) { };
+  optics-extra = self.callPackage (./pkgs/optics-extra.nix) { };
 
-  time-compat = prev.callPackage (./pkgs/time-compat.nix) { };
+  optics-th = self.callPackage (./pkgs/optics-th.nix) { };
 
-  time-effectful = prev.callPackage (./pkgs/time-effectful.nix) { };
+  optional-args = self.callPackage (./pkgs/optional-args.nix) { };
 
-  tls = prev.callPackage (./pkgs/tls.nix) { };
+  options = self.callPackage (./pkgs/options.nix) { };
 
-  tls-session-manager = prev.callPackage (./pkgs/tls-session-manager.nix) { };
+  optparse-applicative = self.callPackage (./pkgs/optparse-applicative.nix) { };
 
-  tree-diff = prev.callPackage (./pkgs/tree-diff.nix) { };
+  ordered-containers = self.callPackage (./pkgs/ordered-containers.nix) { };
 
-  trifecta = prev.callPackage (./pkgs/trifecta.nix) { };
+  pandoc = self.callPackage (./pkgs/pandoc.nix) { };
 
-  type-equality = prev.callPackage (./pkgs/type-equality.nix) { };
+  pandoc-lua-marshal = self.callPackage (./pkgs/pandoc-lua-marshal.nix) { };
 
-  type-errors = prev.callPackage (./pkgs/type-errors.nix) { };
+  pandoc-types = self.callPackage (./pkgs/pandoc-types.nix) { };
 
-  type-errors-pretty = prev.callPackage (./pkgs/type-errors-pretty.nix) { };
+  parallel = self.callPackage (./pkgs/parallel.nix) { };
 
-  typed-process = prev.callPackage (./pkgs/typed-process.nix) { };
+  parsec = self.callPackage (./pkgs/parsec.nix) { };
 
-  typerep-map = prev.callPackage (./pkgs/typerep-map.nix) { };
+  parsec-class = self.callPackage (./pkgs/parsec-class.nix) { };
 
-  unagi-chan = prev.callPackage (./pkgs/unagi-chan.nix) { };
+  parser-combinators = self.callPackage (./pkgs/parser-combinators.nix) { };
 
-  unicode-collation = prev.callPackage (./pkgs/unicode-collation.nix) { };
+  parsers = self.callPackage (./pkgs/parsers.nix) { };
 
-  unicode-data = prev.callPackage (./pkgs/unicode-data.nix) { };
+  parsers-megaparsec = self.callPackage (./pkgs/parsers-megaparsec.nix) { };
 
-  unicode-transforms = prev.callPackage (./pkgs/unicode-transforms.nix) { };
+  password = self.callPackage (./pkgs/password.nix) { };
 
-  uniplate = prev.callPackage (./pkgs/uniplate.nix) { };
+  password-types = self.callPackage (./pkgs/password-types.nix) { };
 
-  universe-base = prev.callPackage (./pkgs/universe-base.nix) { };
+  path = self.callPackage (./pkgs/path.nix) { };
 
-  unliftio = prev.callPackage (./pkgs/unliftio.nix) { };
+  path-dhall-instance = self.callPackage (./pkgs/path-dhall-instance.nix) { };
 
-  unliftio-core = prev.callPackage (./pkgs/unliftio-core.nix) { };
+  path-io = self.callPackage (./pkgs/path-io.nix) { };
 
-  unordered-containers = prev.callPackage (./pkgs/unordered-containers.nix) { };
+  path-pieces = self.callPackage (./pkgs/path-pieces.nix) { };
 
-  uri-encode = prev.callPackage (./pkgs/uri-encode.nix) { };
+  patience = self.callPackage (./pkgs/patience.nix) { };
 
-  uuid = prev.callPackage (./pkgs/uuid.nix) { };
+  pcg-random = self.callPackage (./pkgs/pcg-random.nix) { };
 
-  uuid-types = prev.callPackage (./pkgs/uuid-types.nix) { };
+  pcre-light = self.callPackage (./pkgs/pcre-light.nix) { };
 
-  validity = prev.callPackage (./pkgs/validity.nix) { };
+  pcre2 = self.callPackage (./pkgs/pcre2.nix) { };
 
-  validity-aeson = prev.callPackage (./pkgs/validity-aeson.nix) { };
+  pem = self.callPackage (./pkgs/pem.nix) { };
 
-  validity-bytestring = prev.callPackage (./pkgs/validity-bytestring.nix) { };
+  persistent = self.callPackage (./pkgs/persistent.nix) { };
 
-  validity-case-insensitive = prev.callPackage (./pkgs/validity-case-insensitive.nix) { };
+  persistent-template = self.callPackage (./pkgs/persistent-template.nix) { };
 
-  validity-containers = prev.callPackage (./pkgs/validity-containers.nix) { };
+  pg-entity = self.callPackage (./pkgs/pg-entity.nix) { };
 
-  validity-path = prev.callPackage (./pkgs/validity-path.nix) { };
+  pg-transact = self.callPackage (./pkgs/pg-transact.nix) { };
 
-  validity-persistent = prev.callPackage (./pkgs/validity-persistent.nix) { };
+  pg-transact-effectful = self.callPackage (./pkgs/pg-transact-effectful.nix) { };
 
-  validity-primitive = prev.callPackage (./pkgs/validity-primitive.nix) { };
+  pgp-wordlist = self.callPackage (./pkgs/pgp-wordlist.nix) { };
 
-  validity-scientific = prev.callPackage (./pkgs/validity-scientific.nix) { };
+  pipes = self.callPackage (./pkgs/pipes.nix) { };
 
-  validity-text = prev.callPackage (./pkgs/validity-text.nix) { };
+  pointed = self.callPackage (./pkgs/pointed.nix) { };
 
-  validity-time = prev.callPackage (./pkgs/validity-time.nix) { };
+  polyparse = self.callPackage (./pkgs/polyparse.nix) { };
 
-  validity-unordered-containers = prev.callPackage (./pkgs/validity-unordered-containers.nix) { };
+  polysemy = self.callPackage (./pkgs/polysemy.nix) { };
 
-  validity-uuid = prev.callPackage (./pkgs/validity-uuid.nix) { };
+  polysemy-extra = self.callPackage (./pkgs/polysemy-extra.nix) { };
 
-  validity-vector = prev.callPackage (./pkgs/validity-vector.nix) { };
+  polysemy-kvstore = self.callPackage (./pkgs/polysemy-kvstore.nix) { };
 
-  vault = prev.callPackage (./pkgs/vault.nix) { };
+  polysemy-methodology = self.callPackage (./pkgs/polysemy-methodology.nix) { };
 
-  vec = prev.callPackage (./pkgs/vec.nix) { };
+  polysemy-path = self.callPackage (./pkgs/polysemy-path.nix) { };
 
-  vector = prev.callPackage (./pkgs/vector.nix) { };
+  polysemy-plugin = self.callPackage (./pkgs/polysemy-plugin.nix) { };
 
-  vector-algorithms = prev.callPackage (./pkgs/vector-algorithms.nix) { };
+  polysemy-several = self.callPackage (./pkgs/polysemy-several.nix) { };
 
-  vector-binary-instances = prev.callPackage (./pkgs/vector-binary-instances.nix) { };
+  polysemy-test = self.callPackage (./pkgs/polysemy-test.nix) { };
 
-  vector-instances = prev.callPackage (./pkgs/vector-instances.nix) { };
+  polysemy-time = self.callPackage (./pkgs/polysemy-time.nix) { };
 
-  vector-th-unbox = prev.callPackage (./pkgs/vector-th-unbox.nix) { };
+  polysemy-vinyl = self.callPackage (./pkgs/polysemy-vinyl.nix) { };
 
-  vinyl = prev.callPackage (./pkgs/vinyl.nix) { };
+  polysemy-zoo = self.callPackage (./pkgs/polysemy-zoo.nix) { };
 
-  void = prev.callPackage (./pkgs/void.nix) { };
+  port-utils = self.callPackage (./pkgs/port-utils.nix) { };
 
-  vty = prev.callPackage (./pkgs/vty.nix) { };
+  postgres-options = self.callPackage (./pkgs/postgres-options.nix) { };
 
-  wai = prev.callPackage (./pkgs/wai.nix) { };
+  postgresql-libpq = self.callPackage (./pkgs/postgresql-libpq.nix) { };
 
-  wai-app-static = prev.callPackage (./pkgs/wai-app-static.nix) { };
+  postgresql-migration = self.callPackage (./pkgs/postgresql-migration.nix) { };
 
-  wai-extra = prev.callPackage (./pkgs/wai-extra.nix) { };
+  postgresql-simple = self.callPackage (./pkgs/postgresql-simple.nix) { };
 
-  wai-logger = prev.callPackage (./pkgs/wai-logger.nix) { };
+  postgresql-simple-migration = self.callPackage (./pkgs/postgresql-simple-migration.nix) { };
 
-  wai-middleware-heartbeat = prev.callPackage (./pkgs/wai-middleware-heartbeat.nix) { };
+  pretty-hex = self.callPackage (./pkgs/pretty-hex.nix) { };
 
-  wai-middleware-static = prev.callPackage (./pkgs/wai-middleware-static.nix) { };
+  pretty-show = self.callPackage (./pkgs/pretty-show.nix) { };
 
-  warp = prev.callPackage (./pkgs/warp.nix) { };
+  pretty-simple = self.callPackage (./pkgs/pretty-simple.nix) { };
 
-  warp-tls = prev.callPackage (./pkgs/warp-tls.nix) { };
+  prettyprinter = self.callPackage (./pkgs/prettyprinter.nix) { };
 
-  websockets = prev.callPackage (./pkgs/websockets.nix) { };
+  prettyprinter-ansi-terminal = self.callPackage (./pkgs/prettyprinter-ansi-terminal.nix) { };
 
-  with-utf8 = prev.callPackage (./pkgs/with-utf8.nix) { };
+  primes = self.callPackage (./pkgs/primes.nix) { };
 
-  witherable = prev.callPackage (./pkgs/witherable.nix) { };
+  primitive = self.callPackage (./pkgs/primitive.nix) { };
 
-  x509 = prev.callPackage (./pkgs/x509.nix) { };
+  primitive-addr = self.callPackage (./pkgs/primitive-addr.nix) { };
 
-  x509-store = prev.callPackage (./pkgs/x509-store.nix) { };
+  process-extras = self.callPackage (./pkgs/process-extras.nix) { };
 
-  x509-system = prev.callPackage (./pkgs/x509-system.nix) { };
+  profunctors = self.callPackage (./pkgs/profunctors.nix) { };
 
-  x509-validation = prev.callPackage (./pkgs/x509-validation.nix) { };
+  prometheus-client = self.callPackage (./pkgs/prometheus-client.nix) { };
 
-  xml-conduit = prev.callPackage (./pkgs/xml-conduit.nix) { };
+  prometheus-proc = self.callPackage (./pkgs/prometheus-proc.nix) { };
 
-  yaml = prev.callPackage (./pkgs/yaml.nix) { };
+  proteaaudio-sdl = self.callPackage (./pkgs/proteaaudio-sdl.nix) { };
+
+  psqueues = self.callPackage (./pkgs/psqueues.nix) { };
+
+  pureMD5 = self.callPackage (./pkgs/pureMD5.nix) { };
+
+  quickcheck-assertions = self.callPackage (./pkgs/quickcheck-assertions.nix) { };
+
+  quickcheck-classes = self.callPackage (./pkgs/quickcheck-classes.nix) { };
+
+  quickcheck-classes-base = self.callPackage (./pkgs/quickcheck-classes-base.nix) { };
+
+  quickcheck-dynamic = self.callPackage (./pkgs/quickcheck-dynamic.nix) { };
+
+  quickcheck-instances = self.callPackage (./pkgs/quickcheck-instances.nix) { };
+
+  quickcheck-io = self.callPackage (./pkgs/quickcheck-io.nix) { };
+
+  quickcheck-text = self.callPackage (./pkgs/quickcheck-text.nix) { };
+
+  quickcheck-unicode = self.callPackage (./pkgs/quickcheck-unicode.nix) { };
+
+  random = self.callPackage (./pkgs/random.nix) { };
+
+  random-bytestring = self.callPackage (./pkgs/random-bytestring.nix) { };
+
+  random-shuffle = self.callPackage (./pkgs/random-shuffle.nix) { };
+
+  raw-strings-qq = self.callPackage (./pkgs/raw-strings-qq.nix) { };
+
+  rdtsc = self.callPackage (./pkgs/rdtsc.nix) { };
+
+  rebase = self.callPackage (./pkgs/rebase.nix) { };
+
+  reducers = self.callPackage (./pkgs/reducers.nix) { };
+
+  refact = self.callPackage (./pkgs/refact.nix) { };
+
+  refined = self.callPackage (./pkgs/refined.nix) { };
+
+  reflection = self.callPackage (./pkgs/reflection.nix) { };
+
+  regex-applicative = self.callPackage (./pkgs/regex-applicative.nix) { };
+
+  regex-base = self.callPackage (./pkgs/regex-base.nix) { };
+
+  regex-compat = self.callPackage (./pkgs/regex-compat.nix) { };
+
+  regex-pcre-builtin = self.callPackage (./pkgs/regex-pcre-builtin.nix) { };
+
+  regex-posix = self.callPackage (./pkgs/regex-posix.nix) { };
+
+  regex-tdfa = self.callPackage (./pkgs/regex-tdfa.nix) { };
+
+  relude = self.callPackage (./pkgs/relude.nix) { };
+
+  repline = self.callPackage (./pkgs/repline.nix) { };
+
+  rere = self.callPackage (./pkgs/rere.nix) { };
+
+  rerebase = self.callPackage (./pkgs/rerebase.nix) { };
+
+  resolv = self.callPackage (./pkgs/resolv.nix) { };
+
+  resource-pool = self.callPackage (./pkgs/resource-pool.nix) { };
+
+  resourcet = self.callPackage (./pkgs/resourcet.nix) { };
+
+  retry = self.callPackage (./pkgs/retry.nix) { };
+
+  rope-utf16-splay = self.callPackage (./pkgs/rope-utf16-splay.nix) { };
+
+  safe = self.callPackage (./pkgs/safe.nix) { };
+
+  safe-coloured-text = self.callPackage (./pkgs/safe-coloured-text.nix) { };
+
+  safe-coloured-text-terminfo = self.callPackage (./pkgs/safe-coloured-text-terminfo.nix) { };
+
+  safe-exceptions = self.callPackage (./pkgs/safe-exceptions.nix) { };
+
+  saltine = self.callPackage (./pkgs/saltine.nix) { };
+
+  sandwich = self.callPackage (./pkgs/sandwich.nix) { };
+
+  scientific = self.callPackage (./pkgs/scientific.nix) { };
+
+  scotty = self.callPackage (./pkgs/scotty.nix) { };
+
+  sdl2 = self.callPackage (./pkgs/sdl2.nix) { };
+
+  sdl2-gfx = self.callPackage (./pkgs/sdl2-gfx.nix) { };
+
+  sdl2-image = self.callPackage (./pkgs/sdl2-image.nix) { };
+
+  sdl2-mixer = self.callPackage (./pkgs/sdl2-mixer.nix) { };
+
+  sdl2-ttf = self.callPackage (./pkgs/sdl2-ttf.nix) { };
+
+  selective = self.callPackage (./pkgs/selective.nix) { };
+
+  semialign = self.callPackage (./pkgs/semialign.nix) { };
+
+  semigroupoids = self.callPackage (./pkgs/semigroupoids.nix) { };
+
+  semigroups = self.callPackage (./pkgs/semigroups.nix) { };
+
+  semirings = self.callPackage (./pkgs/semirings.nix) { };
+
+  serialise = self.callPackage (./pkgs/serialise.nix) { };
+
+  servant = self.callPackage (./pkgs/servant.nix) { };
+
+  servant-blaze = self.callPackage (./pkgs/servant-blaze.nix) { };
+
+  servant-client = self.callPackage (./pkgs/servant-client.nix) { };
+
+  servant-client-core = self.callPackage (./pkgs/servant-client-core.nix) { };
+
+  servant-docs = self.callPackage (./pkgs/servant-docs.nix) { };
+
+  servant-effectful = self.callPackage (./pkgs/servant-effectful.nix) { };
+
+  servant-foreign = self.callPackage (./pkgs/servant-foreign.nix) { };
+
+  servant-lucid = self.callPackage (./pkgs/servant-lucid.nix) { };
+
+  servant-multipart = self.callPackage (./pkgs/servant-multipart.nix) { };
+
+  servant-multipart-api = self.callPackage (./pkgs/servant-multipart-api.nix) { };
+
+  servant-polysemy = self.callPackage (./pkgs/servant-polysemy.nix) { };
+
+  servant-server = self.callPackage (./pkgs/servant-server.nix) { };
+
+  servant-static-th = self.callPackage (./pkgs/servant-static-th.nix) { };
+
+  servant-swagger = self.callPackage (./pkgs/servant-swagger.nix) { };
+
+  servant-swagger-ui = self.callPackage (./pkgs/servant-swagger-ui.nix) { };
+
+  servant-swagger-ui-core = self.callPackage (./pkgs/servant-swagger-ui-core.nix) { };
+
+  setenv = self.callPackage (./pkgs/setenv.nix) { };
+
+  shake = self.callPackage (./pkgs/shake.nix) { };
+
+  shakespeare = self.callPackage (./pkgs/shakespeare.nix) { };
+
+  shelly = self.callPackage (./pkgs/shelly.nix) { };
+
+  should-not-typecheck = self.callPackage (./pkgs/should-not-typecheck.nix) { };
+
+  silently = self.callPackage (./pkgs/silently.nix) { };
+
+  simple-reflect = self.callPackage (./pkgs/simple-reflect.nix) { };
+
+  simple-sendfile = self.callPackage (./pkgs/simple-sendfile.nix) { };
+
+  singleton-bool = self.callPackage (./pkgs/singleton-bool.nix) { };
+
+  singletons = self.callPackage (./pkgs/singletons.nix) { };
+
+  skylighting = self.callPackage (./pkgs/skylighting.nix) { };
+
+  skylighting-core = self.callPackage (./pkgs/skylighting-core.nix) { };
+
+  skylighting-format-ansi = self.callPackage (./pkgs/skylighting-format-ansi.nix) { };
+
+  skylighting-format-blaze-html = self.callPackage (./pkgs/skylighting-format-blaze-html.nix) { };
+
+  skylighting-format-latex = self.callPackage (./pkgs/skylighting-format-latex.nix) { };
+
+  slugify = self.callPackage (./pkgs/slugify.nix) { };
+
+  smallcheck = self.callPackage (./pkgs/smallcheck.nix) { };
+
+  socks = self.callPackage (./pkgs/socks.nix) { };
+
+  some = self.callPackage (./pkgs/some.nix) { };
+
+  sop-core = self.callPackage (./pkgs/sop-core.nix) { };
+
+  sorted-list = self.callPackage (./pkgs/sorted-list.nix) { };
+
+  souffle-haskell = self.callPackage (./pkgs/souffle-haskell.nix) { };
+
+  special-values = self.callPackage (./pkgs/special-values.nix) { };
+
+  split = self.callPackage (./pkgs/split.nix) { };
+
+  splitmix = self.callPackage (./pkgs/splitmix.nix) { };
+
+  spoon = self.callPackage (./pkgs/spoon.nix) { };
+
+  sqlite-simple = self.callPackage (./pkgs/sqlite-simple.nix) { };
+
+  statistics = self.callPackage (./pkgs/statistics.nix) { };
+
+  stm-chans = self.callPackage (./pkgs/stm-chans.nix) { };
+
+  store = self.callPackage (./pkgs/store.nix) { };
+
+  store-core = self.callPackage (./pkgs/store-core.nix) { };
+
+  streaming = self.callPackage (./pkgs/streaming.nix) { };
+
+  streaming-commons = self.callPackage (./pkgs/streaming-commons.nix) { };
+
+  strict = self.callPackage (./pkgs/strict.nix) { };
+
+  string-conv = self.callPackage (./pkgs/string-conv.nix) { };
+
+  string-conversions = self.callPackage (./pkgs/string-conversions.nix) { };
+
+  string-interpolate = self.callPackage (./pkgs/string-interpolate.nix) { };
+
+  string-qq = self.callPackage (./pkgs/string-qq.nix) { };
+
+  stringbuilder = self.callPackage (./pkgs/stringbuilder.nix) { };
+
+  swagger2 = self.callPackage (./pkgs/swagger2.nix) { };
+
+  syb = self.callPackage (./pkgs/syb.nix) { };
+
+  sydtest = self.callPackage (./pkgs/sydtest.nix) { };
+
+  sydtest-discover = self.callPackage (./pkgs/sydtest-discover.nix) { };
+
+  system-filepath = self.callPackage (./pkgs/system-filepath.nix) { };
+
+  tabular = self.callPackage (./pkgs/tabular.nix) { };
+
+  tagged = self.callPackage (./pkgs/tagged.nix) { };
+
+  tagsoup = self.callPackage (./pkgs/tagsoup.nix) { };
+
+  tar = self.callPackage (./pkgs/tar.nix) { };
+
+  tasty = self.callPackage (./pkgs/tasty.nix) { };
+
+  tasty-bench = self.callPackage (./pkgs/tasty-bench.nix) { };
+
+  tasty-discover = self.callPackage (./pkgs/tasty-discover.nix) { };
+
+  tasty-expected-failure = self.callPackage (./pkgs/tasty-expected-failure.nix) { };
+
+  tasty-golden = self.callPackage (./pkgs/tasty-golden.nix) { };
+
+  tasty-hedgehog = self.callPackage (./pkgs/tasty-hedgehog.nix) { };
+
+  tasty-hslua = self.callPackage (./pkgs/tasty-hslua.nix) { };
+
+  tasty-hspec = self.callPackage (./pkgs/tasty-hspec.nix) { };
+
+  tasty-hunit = self.callPackage (./pkgs/tasty-hunit.nix) { };
+
+  tasty-inspection-testing = self.callPackage (./pkgs/tasty-inspection-testing.nix) { };
+
+  tasty-kat = self.callPackage (./pkgs/tasty-kat.nix) { };
+
+  tasty-lua = self.callPackage (./pkgs/tasty-lua.nix) { };
+
+  tasty-quickcheck = self.callPackage (./pkgs/tasty-quickcheck.nix) { };
+
+  tasty-silver = self.callPackage (./pkgs/tasty-silver.nix) { };
+
+  tasty-smallcheck = self.callPackage (./pkgs/tasty-smallcheck.nix) { };
+
+  tasty-th = self.callPackage (./pkgs/tasty-th.nix) { };
+
+  tasty-wai = self.callPackage (./pkgs/tasty-wai.nix) { };
+
+  tdigest = self.callPackage (./pkgs/tdigest.nix) { };
+
+  temporary = self.callPackage (./pkgs/temporary.nix) { };
+
+  terminal-size = self.callPackage (./pkgs/terminal-size.nix) { };
+
+  test-framework = self.callPackage (./pkgs/test-framework.nix) { };
+
+  test-framework-hunit = self.callPackage (./pkgs/test-framework-hunit.nix) { };
+
+  test-framework-quickcheck2 = self.callPackage (./pkgs/test-framework-quickcheck2.nix) { };
+
+  test-framework-smallcheck = self.callPackage (./pkgs/test-framework-smallcheck.nix) { };
+
+  test-framework-th = self.callPackage (./pkgs/test-framework-th.nix) { };
+
+  texmath = self.callPackage (./pkgs/texmath.nix) { };
+
+  text-conversions = self.callPackage (./pkgs/text-conversions.nix) { };
+
+  text-display = self.callPackage (./pkgs/text-display.nix) { };
+
+  text-icu = self.callPackage (./pkgs/text-icu.nix) { };
+
+  text-manipulate = self.callPackage (./pkgs/text-manipulate.nix) { };
+
+  text-metrics = self.callPackage (./pkgs/text-metrics.nix) { };
+
+  text-rope = self.callPackage (./pkgs/text-rope.nix) { };
+
+  text-short = self.callPackage (./pkgs/text-short.nix) { };
+
+  text-zipper = self.callPackage (./pkgs/text-zipper.nix) { };
+
+  tf-random = self.callPackage (./pkgs/tf-random.nix) { };
+
+  th-abstraction = self.callPackage (./pkgs/th-abstraction.nix) { };
+
+  th-compat = self.callPackage (./pkgs/th-compat.nix) { };
+
+  th-env = self.callPackage (./pkgs/th-env.nix) { };
+
+  th-expand-syns = self.callPackage (./pkgs/th-expand-syns.nix) { };
+
+  th-extras = self.callPackage (./pkgs/th-extras.nix) { };
+
+  th-lift = self.callPackage (./pkgs/th-lift.nix) { };
+
+  th-lift-instances = self.callPackage (./pkgs/th-lift-instances.nix) { };
+
+  th-orphans = self.callPackage (./pkgs/th-orphans.nix) { };
+
+  th-reify-many = self.callPackage (./pkgs/th-reify-many.nix) { };
+
+  th-utilities = self.callPackage (./pkgs/th-utilities.nix) { };
+
+  these = self.callPackage (./pkgs/these.nix) { };
+
+  these-skinny = self.callPackage (./pkgs/these-skinny.nix) { };
+
+  tidal = self.callPackage (./pkgs/tidal.nix) { };
+
+  time-compat = self.callPackage (./pkgs/time-compat.nix) { };
+
+  time-effectful = self.callPackage (./pkgs/time-effectful.nix) { };
+
+  time-manager = self.callPackage (./pkgs/time-manager.nix) { };
+
+  timeit = self.callPackage (./pkgs/timeit.nix) { };
+
+  timing-convenience = self.callPackage (./pkgs/timing-convenience.nix) { };
+
+  tls = self.callPackage (./pkgs/tls.nix) { };
+
+  tls-session-manager = self.callPackage (./pkgs/tls-session-manager.nix) { };
+
+  tmp-postgres = self.callPackage (./pkgs/tmp-postgres.nix) { };
+
+  torsor = self.callPackage (./pkgs/torsor.nix) { };
+
+  transformers-base = self.callPackage (./pkgs/transformers-base.nix) { };
+
+  transformers-compat = self.callPackage (./pkgs/transformers-compat.nix) { };
+
+  tree-diff = self.callPackage (./pkgs/tree-diff.nix) { };
+
+  trifecta = self.callPackage (./pkgs/trifecta.nix) { };
+
+  tuple = self.callPackage (./pkgs/tuple.nix) { };
+
+  turtle = self.callPackage (./pkgs/turtle.nix) { };
+
+  type-equality = self.callPackage (./pkgs/type-equality.nix) { };
+
+  type-errors = self.callPackage (./pkgs/type-errors.nix) { };
+
+  type-errors-pretty = self.callPackage (./pkgs/type-errors-pretty.nix) { };
+
+  typed-process = self.callPackage (./pkgs/typed-process.nix) { };
+
+  typerep-map = self.callPackage (./pkgs/typerep-map.nix) { };
+
+  uglymemo = self.callPackage (./pkgs/uglymemo.nix) { };
+
+  unagi-chan = self.callPackage (./pkgs/unagi-chan.nix) { };
+
+  unbounded-delays = self.callPackage (./pkgs/unbounded-delays.nix) { };
+
+  unicode-collation = self.callPackage (./pkgs/unicode-collation.nix) { };
+
+  unicode-data = self.callPackage (./pkgs/unicode-data.nix) { };
+
+  unicode-transforms = self.callPackage (./pkgs/unicode-transforms.nix) { };
+
+  uniplate = self.callPackage (./pkgs/uniplate.nix) { };
+
+  universe-base = self.callPackage (./pkgs/universe-base.nix) { };
+
+  unix-compat = self.callPackage (./pkgs/unix-compat.nix) { };
+
+  unix-memory = self.callPackage (./pkgs/unix-memory.nix) { };
+
+  unix-time = self.callPackage (./pkgs/unix-time.nix) { };
+
+  unliftio = self.callPackage (./pkgs/unliftio.nix) { };
+
+  unliftio-core = self.callPackage (./pkgs/unliftio-core.nix) { };
+
+  unordered-containers = self.callPackage (./pkgs/unordered-containers.nix) { };
+
+  uri-bytestring = self.callPackage (./pkgs/uri-bytestring.nix) { };
+
+  uri-encode = self.callPackage (./pkgs/uri-encode.nix) { };
+
+  utf8-string = self.callPackage (./pkgs/utf8-string.nix) { };
+
+  utility-ht = self.callPackage (./pkgs/utility-ht.nix) { };
+
+  uuid = self.callPackage (./pkgs/uuid.nix) { };
+
+  uuid-types = self.callPackage (./pkgs/uuid-types.nix) { };
+
+  validity = self.callPackage (./pkgs/validity.nix) { };
+
+  validity-aeson = self.callPackage (./pkgs/validity-aeson.nix) { };
+
+  validity-bytestring = self.callPackage (./pkgs/validity-bytestring.nix) { };
+
+  validity-case-insensitive = self.callPackage (./pkgs/validity-case-insensitive.nix) { };
+
+  validity-containers = self.callPackage (./pkgs/validity-containers.nix) { };
+
+  validity-path = self.callPackage (./pkgs/validity-path.nix) { };
+
+  validity-persistent = self.callPackage (./pkgs/validity-persistent.nix) { };
+
+  validity-primitive = self.callPackage (./pkgs/validity-primitive.nix) { };
+
+  validity-scientific = self.callPackage (./pkgs/validity-scientific.nix) { };
+
+  validity-text = self.callPackage (./pkgs/validity-text.nix) { };
+
+  validity-time = self.callPackage (./pkgs/validity-time.nix) { };
+
+  validity-unordered-containers = self.callPackage (./pkgs/validity-unordered-containers.nix) { };
+
+  validity-uuid = self.callPackage (./pkgs/validity-uuid.nix) { };
+
+  validity-vector = self.callPackage (./pkgs/validity-vector.nix) { };
+
+  vault = self.callPackage (./pkgs/vault.nix) { };
+
+  vec = self.callPackage (./pkgs/vec.nix) { };
+
+  vector = self.callPackage (./pkgs/vector.nix) { };
+
+  vector-algorithms = self.callPackage (./pkgs/vector-algorithms.nix) { };
+
+  vector-binary-instances = self.callPackage (./pkgs/vector-binary-instances.nix) { };
+
+  vector-instances = self.callPackage (./pkgs/vector-instances.nix) { };
+
+  vector-stream = self.callPackage (./pkgs/vector-stream.nix) { };
+
+  vector-th-unbox = self.callPackage (./pkgs/vector-th-unbox.nix) { };
+
+  vinyl = self.callPackage (./pkgs/vinyl.nix) { };
+
+  void = self.callPackage (./pkgs/void.nix) { };
+
+  vty = self.callPackage (./pkgs/vty.nix) { };
+
+  wai = self.callPackage (./pkgs/wai.nix) { };
+
+  wai-app-static = self.callPackage (./pkgs/wai-app-static.nix) { };
+
+  wai-extra = self.callPackage (./pkgs/wai-extra.nix) { };
+
+  wai-logger = self.callPackage (./pkgs/wai-logger.nix) { };
+
+  wai-middleware-heartbeat = self.callPackage (./pkgs/wai-middleware-heartbeat.nix) { };
+
+  wai-middleware-static = self.callPackage (./pkgs/wai-middleware-static.nix) { };
+
+  warp = self.callPackage (./pkgs/warp.nix) { };
+
+  warp-tls = self.callPackage (./pkgs/warp-tls.nix) { };
+
+  websockets = self.callPackage (./pkgs/websockets.nix) { };
+
+  weigh = self.callPackage (./pkgs/weigh.nix) { };
+
+  with-utf8 = self.callPackage (./pkgs/with-utf8.nix) { };
+
+  witherable = self.callPackage (./pkgs/witherable.nix) { };
+
+  wizards = self.callPackage (./pkgs/wizards.nix) { };
+
+  wl-pprint-annotated = self.callPackage (./pkgs/wl-pprint-annotated.nix) { };
+
+  word-wrap = self.callPackage (./pkgs/word-wrap.nix) { };
+
+  word8 = self.callPackage (./pkgs/word8.nix) { };
+
+  x509 = self.callPackage (./pkgs/x509.nix) { };
+
+  x509-store = self.callPackage (./pkgs/x509-store.nix) { };
+
+  x509-system = self.callPackage (./pkgs/x509-system.nix) { };
+
+  x509-validation = self.callPackage (./pkgs/x509-validation.nix) { };
+
+  xml = self.callPackage (./pkgs/xml.nix) { };
+
+  xml-conduit = self.callPackage (./pkgs/xml-conduit.nix) { };
+
+  xml-types = self.callPackage (./pkgs/xml-types.nix) { };
+
+  yaml = self.callPackage (./pkgs/yaml.nix) { };
+
+  zip-archive = self.callPackage (./pkgs/zip-archive.nix) { };
+
+  zlib = self.callPackage (./pkgs/zlib.nix) { };
 
 }
diff --git a/pkgs/Decimal.nix b/pkgs/Decimal.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3c898cecfce85c83fb9b53ff40fc2bb816977430
--- /dev/null
+++ b/pkgs/Decimal.nix
@@ -0,0 +1,39 @@
+{ mkDerivation
+, base
+, deepseq
+, HUnit
+, lib
+, QuickCheck
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "Decimal";
+  version = "0.5.2";
+  sha256 = "a37a0220424e4bcb8cae1d38844c7027ee314449758d0d14ff3e2e0a5c8a87a7";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ];
+  testHaskellDepends = [
+    base
+    deepseq
+    HUnit
+    QuickCheck
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/PaulJohnson/Haskell-Decimal";
+  description = "Decimal numbers with variable precision";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/Diff.nix b/pkgs/Diff.nix
new file mode 100644
index 0000000000000000000000000000000000000000..cc437a369b8eaa62ca37f6612b304693bf201999
--- /dev/null
+++ b/pkgs/Diff.nix
@@ -0,0 +1,40 @@
+{ mkDerivation
+, array
+, base
+, directory
+, lib
+, pretty
+, process
+, QuickCheck
+, test-framework
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "Diff";
+  version = "0.4.1";
+  sha256 = "fd5e4aaac7219bcbb14834fb8580ebe0aae905958d0ad74f5338ea290b372670";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ array base pretty ];
+  testHaskellDepends = [
+    array
+    base
+    directory
+    pretty
+    process
+    QuickCheck
+    test-framework
+    test-framework-quickcheck2
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "O(ND) diff algorithm in haskell";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/Glob.nix b/pkgs/Glob.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7f84e8f81e33e8268e3e90d9d37243de9fe5884d
--- /dev/null
+++ b/pkgs/Glob.nix
@@ -0,0 +1,59 @@
+{ mkDerivation
+, base
+, containers
+, directory
+, dlist
+, filepath
+, HUnit
+, lib
+, QuickCheck
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+, transformers
+, transformers-compat
+}:
+mkDerivation {
+  pname = "Glob";
+  version = "0.10.2";
+  sha256 = "6af672ac8427d35cbd42d64142dc288feab266f0be92dae3c696e8860d8173c0";
+  revision = "3";
+  editedCabalFile = "1080rd5073g87rfm5whimb72b75105lqanybrbsfi14gmvndnbfx";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    directory
+    dlist
+    filepath
+    transformers
+    transformers-compat
+  ];
+  testHaskellDepends = [
+    base
+    containers
+    directory
+    dlist
+    filepath
+    HUnit
+    QuickCheck
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+    transformers
+    transformers-compat
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://iki.fi/matti.niemenmaa/glob/";
+  description = "Globbing library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/HUnit.nix b/pkgs/HUnit.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ef94404f6adad29b6c59d0e2952547a2c026e552
--- /dev/null
+++ b/pkgs/HUnit.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, call-stack, deepseq, filepath, lib }:
+mkDerivation {
+  pname = "HUnit";
+  version = "1.6.2.0";
+  sha256 = "b0b7538871ffc058486fc00740886d2f3172f8fa6869936bfe83a5e10bd744ab";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base call-stack deepseq ];
+  testHaskellDepends = [ base call-stack deepseq filepath ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/hspec/HUnit#readme";
+  description = "A unit testing framework for Haskell";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/HsYAML.nix b/pkgs/HsYAML.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8917007a966c3e1517444758efbea16f991717b1
--- /dev/null
+++ b/pkgs/HsYAML.nix
@@ -0,0 +1,55 @@
+{ mkDerivation
+, base
+, bytestring
+, containers
+, deepseq
+, lib
+, mtl
+, parsec
+, QuickCheck
+, tasty
+, tasty-quickcheck
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "HsYAML";
+  version = "0.2.1.1";
+  sha256 = "465bb4fc90979c19bedf6db2053f9ac54537b4912d5827d7e2135d42ef5ef628";
+  revision = "1";
+  editedCabalFile = "0jmbgrjywcblrd8k6zzv2b5givdz83f479y15v5gs0r93z25xpmv";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    containers
+    deepseq
+    mtl
+    parsec
+    text
+    transformers
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    containers
+    mtl
+    QuickCheck
+    tasty
+    tasty-quickcheck
+    text
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-hvr/HsYAML";
+  description = "Pure Haskell YAML 1.2 processor";
+  license = lib.licenses.gpl2Only;
+  broken = false;
+}
diff --git a/pkgs/ListLike.nix b/pkgs/ListLike.nix
new file mode 100644
index 0000000000000000000000000000000000000000..bc31f837225f2fa7b516a4770440e7bc5bc2f057
--- /dev/null
+++ b/pkgs/ListLike.nix
@@ -0,0 +1,63 @@
+{ mkDerivation
+, array
+, base
+, bytestring
+, containers
+, deepseq
+, dlist
+, fmlist
+, HUnit
+, lib
+, QuickCheck
+, random
+, text
+, utf8-string
+, vector
+}:
+mkDerivation {
+  pname = "ListLike";
+  version = "4.7.7";
+  sha256 = "0a01cd234aa4a1e97c07ce09e24e6c95f6bb423add96d387fb5bd2e1f2779e40";
+  revision = "1";
+  editedCabalFile = "155y1r051ar9k8vhb54q5ga7a5rzlm4jx1c42pbw7cfy3c8af6hc";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    base
+    bytestring
+    containers
+    deepseq
+    dlist
+    fmlist
+    text
+    utf8-string
+    vector
+  ];
+  testHaskellDepends = [
+    array
+    base
+    bytestring
+    containers
+    dlist
+    fmlist
+    HUnit
+    QuickCheck
+    random
+    text
+    utf8-string
+    vector
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ddssff/listlike";
+  description = "Generalized support for list-like structures";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/Only.nix b/pkgs/Only.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ba06887eaa254b0cdfb016ef4e075250733e07d1
--- /dev/null
+++ b/pkgs/Only.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, deepseq, lib }:
+mkDerivation {
+  pname = "Only";
+  version = "0.1";
+  sha256 = "ab7aa193e8c257d3bda6b0b3c1cbcf74cdaa85ab08cb20c2dd62ba248c1ab265";
+  revision = "1";
+  editedCabalFile = "1ahk7p34kmh041mz7lyc10nhcxgv2i4z8nvzxvqm2x34gslmsbzr";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "The 1-tuple type or single-value \"collection\"";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/PSQueue.nix b/pkgs/PSQueue.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1db4e2a9597a7c79e20c4eaece204fed4b3735e0
--- /dev/null
+++ b/pkgs/PSQueue.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, lib, QuickCheck }:
+mkDerivation {
+  pname = "PSQueue";
+  version = "1.1.1";
+  sha256 = "7191ef25e63df3658ad3eccde7d7a7e31fa8dd43c6705714672836dbf9c7ef0a";
+  revision = "1";
+  editedCabalFile = "02a5g59sc9jh3v4pibhjpijv8lsbiydznrpqyin7qhwsyc0p813a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Priority Search Queue";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/QuickCheck.nix b/pkgs/QuickCheck.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8fed016915a6e0805f5b2c27d1b67d0133830eb6
--- /dev/null
+++ b/pkgs/QuickCheck.nix
@@ -0,0 +1,40 @@
+{ mkDerivation
+, base
+, containers
+, deepseq
+, lib
+, process
+, random
+, splitmix
+, template-haskell
+, transformers
+}:
+mkDerivation {
+  pname = "QuickCheck";
+  version = "2.14.2";
+  sha256 = "d87b6c85696b601175274361fa62217894401e401e150c3c5d4013ac53cd36f3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    deepseq
+    random
+    splitmix
+    template-haskell
+    transformers
+  ];
+  testHaskellDepends = [ base deepseq process ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/nick8325/quickcheck";
+  description = "Automatic testing of Haskell programs";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/SHA.nix b/pkgs/SHA.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3f0ce64d30d53acb35f6b041abbd04033c886286
--- /dev/null
+++ b/pkgs/SHA.nix
@@ -0,0 +1,38 @@
+{ mkDerivation
+, array
+, base
+, binary
+, bytestring
+, lib
+, QuickCheck
+, test-framework
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "SHA";
+  version = "1.6.4.4";
+  sha256 = "6bd950df6b11a3998bb1452d875d2da043ee43385459afc5f16d471d25178b44";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ array base binary bytestring ];
+  testHaskellDepends = [
+    array
+    base
+    binary
+    bytestring
+    QuickCheck
+    test-framework
+    test-framework-quickcheck2
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Implementations of the SHA suite of message digest functions";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/StateVar.nix b/pkgs/StateVar.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a5857d255190260b50a85d9bdade439fef088456
--- /dev/null
+++ b/pkgs/StateVar.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, stm, transformers }:
+mkDerivation {
+  pname = "StateVar";
+  version = "1.2.2";
+  sha256 = "5e4b39da395656a59827b0280508aafdc70335798b50e5d6fd52596026251825";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base stm transformers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-opengl/StateVar";
+  description = "State variables";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/abstract-deque.nix b/pkgs/abstract-deque.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8b021fbaf425b69ebc8ce6ff0d40c4f7befb996b
--- /dev/null
+++ b/pkgs/abstract-deque.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, array, base, containers, lib, random, time }:
+mkDerivation {
+  pname = "abstract-deque";
+  version = "0.3";
+  sha256 = "09aa10f38193a8275a7791b92a4f3a7192a304874637e2a35c897dde25d75ca2";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ array base containers random time ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/rrnewton/haskell-lockfree/wiki";
+  description = "Abstract, parameterized interface to mutable Deques";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/abstract-par.nix b/pkgs/abstract-par.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6b43c39f4d4703dfe87b76b6fa1d507eea755c1f
--- /dev/null
+++ b/pkgs/abstract-par.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, deepseq, lib }:
+mkDerivation {
+  pname = "abstract-par";
+  version = "0.3.3";
+  sha256 = "248a8739bd902462cb16755b690b55660e196e58cc7e6ef8157a72c2a3d5d860";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/simonmar/monad-par";
+  description = "Type classes generalizing the functionality of the 'monad-par' library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/alex.nix b/pkgs/alex.nix
new file mode 100644
index 0000000000000000000000000000000000000000..225ece93f78ca6962e658876dfa5f17e0aef0a5d
--- /dev/null
+++ b/pkgs/alex.nix
@@ -0,0 +1,32 @@
+{ mkDerivation
+, array
+, base
+, containers
+, directory
+, happy
+, lib
+, process
+}:
+mkDerivation {
+  pname = "alex";
+  version = "3.2.7.1";
+  sha256 = "9bd2f1a27e8f1b2ffdb5b2fbd3ed82b6f0e85191459a1b24ffcbef4e68a81bec";
+  isLibrary = false;
+  isExecutable = true;
+  enableSeparateDataOutput = true;
+  executableHaskellDepends = [ array base containers directory ];
+  executableToolDepends = [ happy ];
+  testHaskellDepends = [ base process ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://www.haskell.org/alex/";
+  description = "Alex is a tool for generating lexical analysers in Haskell";
+  license = lib.licenses.bsd3;
+  mainProgram = "alex";
+  broken = false;
+}
diff --git a/pkgs/algebraic-graphs.nix b/pkgs/algebraic-graphs.nix
new file mode 100644
index 0000000000000000000000000000000000000000..06994faafa9a5ed495a3a9c4e85541f1e37940fc
--- /dev/null
+++ b/pkgs/algebraic-graphs.nix
@@ -0,0 +1,47 @@
+{ mkDerivation
+, array
+, base
+, containers
+, deepseq
+, extra
+, inspection-testing
+, lib
+, QuickCheck
+, transformers
+}:
+mkDerivation {
+  pname = "algebraic-graphs";
+  version = "0.7";
+  sha256 = "51159a0d18690ab51e6709e3c576275402f96f57d901f87d734da6854582e568";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    base
+    containers
+    deepseq
+    transformers
+  ];
+  testHaskellDepends = [
+    array
+    base
+    containers
+    deepseq
+    extra
+    inspection-testing
+    QuickCheck
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/snowleopard/alga";
+  description = "A library for algebraic graph construction and transformation";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/appar.nix b/pkgs/appar.nix
new file mode 100644
index 0000000000000000000000000000000000000000..af6a69f3f475714fb84b56f9bfcbeb0da46aa065
--- /dev/null
+++ b/pkgs/appar.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, bytestring, lib }:
+mkDerivation {
+  pname = "appar";
+  version = "0.1.8";
+  sha256 = "c4ceeddc26525b58d82c41b6d3e32141371a200a6794aae185b6266ccc81631f";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A simple applicative parser";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/atomic-write.nix b/pkgs/atomic-write.nix
new file mode 100644
index 0000000000000000000000000000000000000000..99f202ab64f074798680d954d5df1b6e46ee0318
--- /dev/null
+++ b/pkgs/atomic-write.nix
@@ -0,0 +1,48 @@
+{ mkDerivation
+, base
+, bytestring
+, directory
+, filepath
+, hspec
+, lib
+, temporary
+, text
+, unix-compat
+}:
+mkDerivation {
+  pname = "atomic-write";
+  version = "0.2.0.7";
+  sha256 = "b5f5c77884bc0332306fab89acf1c8a8582d76eabaa303c91b1c4072621c960d";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    directory
+    filepath
+    temporary
+    text
+    unix-compat
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    filepath
+    hspec
+    temporary
+    text
+    unix-compat
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/stackbuilders/atomic-write";
+  description = "Atomically write to a file";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/auto-update.nix b/pkgs/auto-update.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5e33839c48383c024c6eae456731c4d12c274208
--- /dev/null
+++ b/pkgs/auto-update.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, exceptions, hspec, HUnit, lib, retry }:
+mkDerivation {
+  pname = "auto-update";
+  version = "0.1.6";
+  sha256 = "f4e023dc8713c387ecf20d851247597fd012cabea3872310b35e911105eb66c4";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base exceptions hspec HUnit retry ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/yesodweb/wai";
+  description = "Efficiently run periodic, on-demand actions";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/base-orphans.nix b/pkgs/base-orphans.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3e4daceb2e6d82eaccd599cf85953ea868eccd5a
--- /dev/null
+++ b/pkgs/base-orphans.nix
@@ -0,0 +1,30 @@
+{ mkDerivation
+, base
+, ghc-prim
+, hspec
+, hspec-discover
+, lib
+, QuickCheck
+}:
+mkDerivation {
+  pname = "base-orphans";
+  version = "0.8.7";
+  sha256 = "888fd67f0dbe932778f5b170922ce80d0dcab1680ee98f1d6fcc362f20d9e447";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ghc-prim ];
+  testHaskellDepends = [ base hspec QuickCheck ];
+  testToolDepends = [ hspec-discover ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-compat/base-orphans#readme";
+  description = "Backwards-compatible orphan instances for base";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/base16-bytestring.nix b/pkgs/base16-bytestring.nix
new file mode 100644
index 0000000000000000000000000000000000000000..97580774638a62ea7f70986860af67ad0d03fa28
--- /dev/null
+++ b/pkgs/base16-bytestring.nix
@@ -0,0 +1,42 @@
+{ mkDerivation
+, base
+, bytestring
+, criterion
+, deepseq
+, HUnit
+, lib
+, QuickCheck
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "base16-bytestring";
+  version = "1.0.2.0";
+  sha256 = "1d5a91143ef0e22157536093ec8e59d226a68220ec89378d5dcaeea86472c784";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  testHaskellDepends = [
+    base
+    bytestring
+    HUnit
+    QuickCheck
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+  ];
+  benchmarkHaskellDepends = [ base bytestring criterion deepseq ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/haskell/base16-bytestring";
+  description = "RFC 4648-compliant Base16 encodings for ByteStrings";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/base64-bytestring.nix b/pkgs/base64-bytestring.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3774a41db2a2e288c2d1988dcf6ce632036e61d7
--- /dev/null
+++ b/pkgs/base64-bytestring.nix
@@ -0,0 +1,42 @@
+{ mkDerivation
+, base
+, bytestring
+, criterion
+, deepseq
+, HUnit
+, lib
+, QuickCheck
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "base64-bytestring";
+  version = "1.2.1.0";
+  sha256 = "fbf8ed30edde271eb605352021431d8f1b055f95a56af31fe2eacf6bdfdc49c9";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  testHaskellDepends = [
+    base
+    bytestring
+    HUnit
+    QuickCheck
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+  ];
+  benchmarkHaskellDepends = [ base bytestring criterion deepseq ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/base64-bytestring";
+  description = "Fast base64 encoding and decoding for ByteStrings";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/blaze-builder.nix b/pkgs/blaze-builder.nix
new file mode 100644
index 0000000000000000000000000000000000000000..da2e24e526e034d5e3c6dfcffaedde50545a5910
--- /dev/null
+++ b/pkgs/blaze-builder.nix
@@ -0,0 +1,47 @@
+{ mkDerivation
+, base
+, bytestring
+, deepseq
+, ghc-prim
+, HUnit
+, lib
+, QuickCheck
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+, text
+, utf8-string
+}:
+mkDerivation {
+  pname = "blaze-builder";
+  version = "0.4.2.2";
+  sha256 = "2cdc998c021d3a5f2a66a95138b93386271c26a117e7676d78264a90e536af67";
+  revision = "1";
+  editedCabalFile = "026vxh94h2hwncy1mn51xzfpnhj8ijp5xc8fpq7dwc63fkrps0gh";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring deepseq ghc-prim text ];
+  testHaskellDepends = [
+    base
+    bytestring
+    HUnit
+    QuickCheck
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+    text
+    utf8-string
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/blaze-builder/blaze-builder";
+  description = "Efficient buffered output";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/byteable.nix b/pkgs/byteable.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6af473107171d201e438c178d65e70a8fcfc661c
--- /dev/null
+++ b/pkgs/byteable.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, bytestring, lib }:
+mkDerivation {
+  pname = "byteable";
+  version = "0.1.1";
+  sha256 = "243b34a1b5b64b39e39fe58f75c18f6cad5b668b10cabcd86816cbde27783fe2";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [ base bytestring ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/vincenthz/hs-byteable";
+  description = "Type class for sequence of bytes";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/byteorder.nix b/pkgs/byteorder.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ea246308fec76da5ec9f0efcb98717292a61d02b
--- /dev/null
+++ b/pkgs/byteorder.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "byteorder";
+  version = "1.0.4";
+  sha256 = "bd20bbb586947f99c38a4c93d9d0266f49f6fc581767b51ba568f6d5d52d2919";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://community.haskell.org/~aslatter/code/byteorder";
+  description = "Exposes the native endianness or byte ordering of the system";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/bytestring-builder.nix b/pkgs/bytestring-builder.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1d409157e3f5ff055f2a0a1832f13216b18819f5
--- /dev/null
+++ b/pkgs/bytestring-builder.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, bytestring, deepseq, lib }:
+mkDerivation {
+  pname = "bytestring-builder";
+  version = "0.10.8.2.0";
+  sha256 = "27faef6db27c5be5a3715fd68b93725853e0e668849eaf92ce7c33cef9cb2c3f";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring deepseq ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "The new bytestring builder, packaged outside of GHC";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/c2hs.nix b/pkgs/c2hs.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8884b20d05712891f86a59e9c6be0e895b067cda
--- /dev/null
+++ b/pkgs/c2hs.nix
@@ -0,0 +1,63 @@
+{ mkDerivation
+, array
+, base
+, bytestring
+, containers
+, directory
+, dlist
+, filepath
+, HUnit
+, language-c
+, lib
+, pretty
+, process
+, shelly
+, test-framework
+, test-framework-hunit
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "c2hs";
+  version = "0.28.8";
+  sha256 = "390632cffc561c32483af474aac50168a68f0fa382096552e37749923617884c";
+  revision = "1";
+  editedCabalFile = "0hbv1j9b04gm617c5xqndr4iqidabwdpcn2dcrnaacc04ylchvl2";
+  isLibrary = false;
+  isExecutable = true;
+  enableSeparateDataOutput = true;
+  executableHaskellDepends = [
+    array
+    base
+    bytestring
+    containers
+    directory
+    dlist
+    filepath
+    language-c
+    pretty
+    process
+  ];
+  testHaskellDepends = [
+    base
+    filepath
+    HUnit
+    shelly
+    test-framework
+    test-framework-hunit
+    text
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/c2hs";
+  description = "C->Haskell FFI tool that gives some cross-language type safety";
+  license = lib.licenses.gpl2Only;
+  mainProgram = "c2hs";
+  broken = false;
+}
diff --git a/pkgs/call-stack.nix b/pkgs/call-stack.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b9bf334b1bd7d963b8af80c743999a01bf84cc47
--- /dev/null
+++ b/pkgs/call-stack.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, filepath, lib, nanospec }:
+mkDerivation {
+  pname = "call-stack";
+  version = "0.4.0";
+  sha256 = "430bcf8a3404f7e55319573c0b807b1356946f0c8f289bb3d9afb279c636b87b";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base filepath nanospec ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/sol/call-stack#readme";
+  description = "Use GHC call-stacks in a backward compatible way";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/cereal-vector.nix b/pkgs/cereal-vector.nix
new file mode 100644
index 0000000000000000000000000000000000000000..629121f8b86e606760885b91ffe08c57156a9ff0
--- /dev/null
+++ b/pkgs/cereal-vector.nix
@@ -0,0 +1,29 @@
+{ mkDerivation
+, base
+, bytestring
+, cereal
+, lib
+, QuickCheck
+, vector
+}:
+mkDerivation {
+  pname = "cereal-vector";
+  version = "0.2.0.1";
+  sha256 = "ff0685a6c39e7aae32f8b4165e2ae06f284c867298ad4f7b776c1c1b2859f933";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring cereal vector ];
+  testHaskellDepends = [ base cereal QuickCheck vector ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/acfoltzer/cereal-vector";
+  description = "Serialize instances for Data.Vector types.";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/checkers.nix b/pkgs/checkers.nix
new file mode 100644
index 0000000000000000000000000000000000000000..02a59b77d7b51d03c396cc7a681d7e5e48d0a48b
--- /dev/null
+++ b/pkgs/checkers.nix
@@ -0,0 +1,34 @@
+{ mkDerivation
+, array
+, base
+, lib
+, QuickCheck
+, random
+, semigroupoids
+}:
+mkDerivation {
+  pname = "checkers";
+  version = "0.6.0";
+  sha256 = "c07cd3563ea251000f7ce41db2d38e3bf94c9dcf60943a5eecc83b3089d299e4";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    base
+    QuickCheck
+    random
+    semigroupoids
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-checkers/checkers";
+  description = "Check properties on standard classes and data structures";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/chell-quickcheck.nix b/pkgs/chell-quickcheck.nix
new file mode 100644
index 0000000000000000000000000000000000000000..15c53b8884d07e4b529aa134ac9cedc354e85bc1
--- /dev/null
+++ b/pkgs/chell-quickcheck.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, chell, lib, QuickCheck, random }:
+mkDerivation {
+  pname = "chell-quickcheck";
+  version = "0.2.5.3";
+  sha256 = "1db092893f392665dcdb8c422cad8e8b6e7a6d6c84da35c50fc7a757d47ea2ae";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base chell QuickCheck random ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/typeclasses/chell";
+  description = "QuickCheck support for the Chell testing library";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/chell.nix b/pkgs/chell.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a027d9dd4825ea9133bb1823e098a51dee18a46c
--- /dev/null
+++ b/pkgs/chell.nix
@@ -0,0 +1,42 @@
+{ mkDerivation
+, ansi-terminal
+, base
+, bytestring
+, lib
+, options
+, patience
+, random
+, template-haskell
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "chell";
+  version = "0.5.0.1";
+  sha256 = "fa8d843d284a3ba77585e43160731d7d8845686d9a2f3117f631939fa9b2f783";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    ansi-terminal
+    base
+    bytestring
+    options
+    patience
+    random
+    template-haskell
+    text
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/typeclasses/chell";
+  description = "A simple and intuitive library for automated testing";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/clock.nix b/pkgs/clock.nix
new file mode 100644
index 0000000000000000000000000000000000000000..4f3d81a80e18aad669746a0593525805a461ada1
--- /dev/null
+++ b/pkgs/clock.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, criterion, lib, tasty, tasty-quickcheck }:
+mkDerivation {
+  pname = "clock";
+  version = "0.8.3";
+  sha256 = "845ce5db4c98cefd517323e005f87effceff886987305e421c4ef616dc0505d1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base tasty tasty-quickcheck ];
+  benchmarkHaskellDepends = [ base criterion ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/corsis/clock";
+  description = "High-resolution clock functions: monotonic, realtime, cputime";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/cmdargs.nix b/pkgs/cmdargs.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b83bd2187c191bf1b871e02bf08c9f9d9abfc6d8
--- /dev/null
+++ b/pkgs/cmdargs.nix
@@ -0,0 +1,34 @@
+{ mkDerivation
+, base
+, filepath
+, lib
+, process
+, template-haskell
+, transformers
+}:
+mkDerivation {
+  pname = "cmdargs";
+  version = "0.10.21";
+  sha256 = "f7d8ea5c4e6af368d9b5d2eb994fc29235406fbe91916a6dc63bd883025eca75";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    filepath
+    process
+    template-haskell
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ndmitchell/cmdargs#readme";
+  description = "Command line argument processing";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/code-page.nix b/pkgs/code-page.nix
new file mode 100644
index 0000000000000000000000000000000000000000..9b39a9c9a24f8b10471aa7afb490da52634c65e5
--- /dev/null
+++ b/pkgs/code-page.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "code-page";
+  version = "0.2.1";
+  sha256 = "b2f90e19c61ed8a6ff7295f7f123d4a9913c790d4cf2c6029bc299293fdb2aaa";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/RyanGlScott/code-page";
+  description = "Windows code page library for Haskell";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/colour.nix b/pkgs/colour.nix
new file mode 100644
index 0000000000000000000000000000000000000000..49945fb5f3141a6605f58736d2bddecb20322a65
--- /dev/null
+++ b/pkgs/colour.nix
@@ -0,0 +1,35 @@
+{ mkDerivation
+, base
+, lib
+, QuickCheck
+, random
+, test-framework
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "colour";
+  version = "2.3.6";
+  sha256 = "2cd35dcd6944a5abc9f108a5eb5ee564b6b1fa98a9ec79cefcc20b588991f871";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [
+    base
+    QuickCheck
+    random
+    test-framework
+    test-framework-quickcheck2
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://www.haskell.org/haskellwiki/Colour";
+  description = "A model for human colour/color perception";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/constraints-extras.nix b/pkgs/constraints-extras.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6774f2636b0a2b0621d17fd62da7222f2eeff3c2
--- /dev/null
+++ b/pkgs/constraints-extras.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, aeson, base, constraints, lib, template-haskell }:
+mkDerivation {
+  pname = "constraints-extras";
+  version = "0.3.2.1";
+  sha256 = "d7f571c6634105e8fbb5ad6685775c7d06e84cd4ece51dfd4276e2fe34e65c70";
+  revision = "1";
+  editedCabalFile = "1smha6ljia9bfgdy1h0lkgi9464rwa9lnw7rqfi1c23pzyiw13lh";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base constraints template-haskell ];
+  executableHaskellDepends = [ aeson base constraints ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/obsidiansystems/constraints-extras";
+  description = "Utility package for constraints";
+  license = lib.licenses.bsd3;
+  mainProgram = "readme";
+  broken = false;
+}
diff --git a/pkgs/contravariant.nix b/pkgs/contravariant.nix
new file mode 100644
index 0000000000000000000000000000000000000000..42c5dca42919a378988126f4913de2b94f4322f5
--- /dev/null
+++ b/pkgs/contravariant.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, StateVar, transformers }:
+mkDerivation {
+  pname = "contravariant";
+  version = "1.5.5";
+  sha256 = "062fd66580d7aad0b5ba93e644ffa7feee69276ef50f20d4ed9f1deb7642dffa";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base StateVar transformers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/contravariant/";
+  description = "Contravariant functors";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/control-monad-free.nix b/pkgs/control-monad-free.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1c2660654efe623a8f2a65b263a487d42040e409
--- /dev/null
+++ b/pkgs/control-monad-free.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, transformers }:
+mkDerivation {
+  pname = "control-monad-free";
+  version = "0.6.2";
+  sha256 = "63c830bd2af23e372ebfee628d9f538a32d8368cf74f897370d839bf8e7b4bc1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base transformers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/pepeiborra/control-monad-free";
+  description = "Free monads and monad transformers";
+  license = lib.licenses.publicDomain;
+  broken = false;
+}
diff --git a/pkgs/cookie.nix b/pkgs/cookie.nix
new file mode 100644
index 0000000000000000000000000000000000000000..fe14dba828c2ae88c6fa959c0b9bfc1e0b0c4cd2
--- /dev/null
+++ b/pkgs/cookie.nix
@@ -0,0 +1,52 @@
+{ mkDerivation
+, base
+, bytestring
+, data-default-class
+, deepseq
+, HUnit
+, lib
+, QuickCheck
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, text
+, time
+}:
+mkDerivation {
+  pname = "cookie";
+  version = "0.4.5";
+  sha256 = "707f94d1b31018b91d6a1e9e19ef5413e20d02cab00ad93a5fd7d7b3b46a3583";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    data-default-class
+    deepseq
+    text
+    time
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    HUnit
+    QuickCheck
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    text
+    time
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/snoyberg/cookie";
+  description = "HTTP cookie parsing and rendering";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/cpphs.nix b/pkgs/cpphs.nix
new file mode 100644
index 0000000000000000000000000000000000000000..841c5c34e5ae899d9d324e1eb6bffdc2bf658684
--- /dev/null
+++ b/pkgs/cpphs.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, base, directory, lib, polyparse, time }:
+mkDerivation {
+  pname = "cpphs";
+  version = "1.20.9.1";
+  sha256 = "7f59b10bc3374004cee3c04fa4ee4a1b90d0dca84a3d0e436d5861a1aa3b919f";
+  revision = "1";
+  editedCabalFile = "1f8jzs8zdh4wwbcq8fy6qqxkv75ypnvsm4yzw49wpr3b9vpnzlha";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base directory polyparse time ];
+  executableHaskellDepends = [ base directory polyparse time ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://projects.haskell.org/cpphs/";
+  description = "A liberalised re-implementation of cpp, the C pre-processor";
+  license = "LGPL";
+  mainProgram = "cpphs";
+  broken = false;
+}
diff --git a/pkgs/crypto-api-tests.nix b/pkgs/crypto-api-tests.nix
new file mode 100644
index 0000000000000000000000000000000000000000..77df528a7d77d9752b44e1aecd8843f9a688f6eb
--- /dev/null
+++ b/pkgs/crypto-api-tests.nix
@@ -0,0 +1,46 @@
+{ mkDerivation
+, base
+, bytestring
+, cereal
+, crypto-api
+, directory
+, filepath
+, HUnit
+, lib
+, QuickCheck
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "crypto-api-tests";
+  version = "0.3";
+  sha256 = "f44aecdd4ceb9da9f38330e84d9c17745a82b0611085ebb34442d2dce4207270";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    cereal
+    crypto-api
+    directory
+    filepath
+    HUnit
+    QuickCheck
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://trac.haskell.org/crypto-api/wiki";
+  description = "A test framework and KATs for cryptographic operations";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/crypto-api.nix b/pkgs/crypto-api.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ac59e60d43e69295169256f57ae5ffe06ef9164e
--- /dev/null
+++ b/pkgs/crypto-api.nix
@@ -0,0 +1,38 @@
+{ mkDerivation
+, base
+, bytestring
+, cereal
+, entropy
+, lib
+, tagged
+, transformers
+}:
+mkDerivation {
+  pname = "crypto-api";
+  version = "0.13.3";
+  sha256 = "298a9ea7ce97c8ccf4bfe46d4864092c3a007a56bede73560070db3bf1ac7aa5";
+  revision = "1";
+  editedCabalFile = "1z6n1sa5pn3iqvqjrd8hv4bc2pxzsrhm5sh0l8z7g9lbqp6w0wp5";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    cereal
+    entropy
+    tagged
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/TomMD/crypto-api";
+  description = "A generic interface for cryptographic operations";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/cryptohash-md5.nix b/pkgs/cryptohash-md5.nix
new file mode 100644
index 0000000000000000000000000000000000000000..9bb41341b7f0b11038edcfc242858148b0c7bdff
--- /dev/null
+++ b/pkgs/cryptohash-md5.nix
@@ -0,0 +1,43 @@
+{ mkDerivation
+, base
+, base16-bytestring
+, bytestring
+, criterion
+, lib
+, pureMD5
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "cryptohash-md5";
+  version = "0.11.101.0";
+  sha256 = "3b08db0ae39df2b44e83053ad30d7546a4c6200a852c22a240a7e03ae1080f05";
+  revision = "1";
+  editedCabalFile = "0s2f5cd46lqymmbpcnzlxsim5qk8yrr52j5mmi31zrhd24b3bqln";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  testHaskellDepends = [
+    base
+    base16-bytestring
+    bytestring
+    pureMD5
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  benchmarkHaskellDepends = [ base bytestring criterion ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/hvr/cryptohash-md5";
+  description = "Fast, pure and practical MD5 implementation";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/cryptohash-sha256.nix b/pkgs/cryptohash-sha256.nix
new file mode 100644
index 0000000000000000000000000000000000000000..aa88648b98982398395b44fccf971e16aadf4cbc
--- /dev/null
+++ b/pkgs/cryptohash-sha256.nix
@@ -0,0 +1,44 @@
+{ mkDerivation
+, base
+, base16-bytestring
+, bytestring
+, criterion
+, lib
+, SHA
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "cryptohash-sha256";
+  version = "0.11.102.1";
+  sha256 = "73a7dc7163871a80837495039a099967b11f5c4fe70a118277842f7a713c6bf6";
+  revision = "1";
+  editedCabalFile = "1hyzqv30rpj920ddnr0zypyjjlh52vyp2d140pn2byayj820rkgs";
+  configureFlags = [ "-fuse-cbits" ];
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  testHaskellDepends = [
+    base
+    base16-bytestring
+    bytestring
+    SHA
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  benchmarkHaskellDepends = [ base bytestring criterion SHA ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/hvr/cryptohash-sha256";
+  description = "Fast, pure and practical SHA-256 implementation";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/csv.nix b/pkgs/csv.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c4277ee03ee7ffa37107d50f6f7acd31d0d2ea95
--- /dev/null
+++ b/pkgs/csv.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, base, fetchgit, filepath, lib, parsec }:
+mkDerivation {
+  pname = "csv";
+  version = "0.1.2";
+  src = fetchgit {
+    url = "https://gitlab.homotopic.tech/horizon/adopted/csv";
+    sha256 = "1idv0500imfvi6wzz3g7v89irz9g20plsphp51aa0xksz7ifj34b";
+    rev = "d02b89bbad79136b52fd1197f087466cf51573dd";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base filepath parsec ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "CSV loader and dumper";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/data-binary-ieee754.nix b/pkgs/data-binary-ieee754.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f1f5a6272d9a7c38a487b8b2937e3efbe87b1308
--- /dev/null
+++ b/pkgs/data-binary-ieee754.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, binary, lib }:
+mkDerivation {
+  pname = "data-binary-ieee754";
+  version = "0.4.4";
+  sha256 = "59975abed8f4caa602f0780c10a9b2493479e6feb71ad189bb10c3ac5678df0a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base binary ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://john-millikin.com/software/data-binary-ieee754/";
+  description = "Parser/Serialiser for IEEE-754 floating-point values";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/data-clist.nix b/pkgs/data-clist.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f71b7dfb6aabae372d149b9758d0cbd6d583474a
--- /dev/null
+++ b/pkgs/data-clist.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, deepseq, lib, QuickCheck }:
+mkDerivation {
+  pname = "data-clist";
+  version = "0.2";
+  sha256 = "1c3a1ebd71e8f6fe30afdb3797c4852db7fb0b4e3c145fc53e8282eb4303b212";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ];
+  testHaskellDepends = [ base QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/sw17ch/data-clist";
+  description = "Simple functional ring type";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/data-default-class.nix b/pkgs/data-default-class.nix
new file mode 100644
index 0000000000000000000000000000000000000000..656ba51917643799b5634cb00bc85a598df0681e
--- /dev/null
+++ b/pkgs/data-default-class.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "data-default-class";
+  version = "0.1.2.0";
+  sha256 = "4f01b423f000c3e069aaf52a348564a6536797f31498bb85c3db4bd2d0973e56";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A class for types with a default value";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/data-default-instances-containers.nix b/pkgs/data-default-instances-containers.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ca21d4cb45dd7d592d74560bb7ce0fcd91fd9f16
--- /dev/null
+++ b/pkgs/data-default-instances-containers.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, containers, data-default-class, lib }:
+mkDerivation {
+  pname = "data-default-instances-containers";
+  version = "0.0.1";
+  sha256 = "a55e07af005c9815d82f3fc95e125db82994377c9f4a769428878701d4ec081a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers data-default-class ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Default instances for types in containers";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/data-default-instances-dlist.nix b/pkgs/data-default-instances-dlist.nix
new file mode 100644
index 0000000000000000000000000000000000000000..34e7ba70bb00f33856d6f74deb4daf96f2708d5f
--- /dev/null
+++ b/pkgs/data-default-instances-dlist.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, data-default-class, dlist, lib }:
+mkDerivation {
+  pname = "data-default-instances-dlist";
+  version = "0.0.1";
+  sha256 = "7d683711cbf08abd7adcd5ac2be825381308d220397315a5570fe61b719b5959";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base data-default-class dlist ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Default instances for types in dlist";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/data-default-instances-old-locale.nix b/pkgs/data-default-instances-old-locale.nix
new file mode 100644
index 0000000000000000000000000000000000000000..254236df4e4513b2332bd6fbd84161818572fc0d
--- /dev/null
+++ b/pkgs/data-default-instances-old-locale.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, data-default-class, lib, old-locale }:
+mkDerivation {
+  pname = "data-default-instances-old-locale";
+  version = "0.0.1";
+  sha256 = "60d3b02922958c4908d7bf2b24ddf61511665745f784227d206745784b0c0802";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base data-default-class old-locale ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Default instances for types in old-locale";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/data-default.nix b/pkgs/data-default.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d1ab22f4c3e19c1ddd08a88f148c8899a7e2ba84
--- /dev/null
+++ b/pkgs/data-default.nix
@@ -0,0 +1,33 @@
+{ mkDerivation
+, base
+, data-default-class
+, data-default-instances-containers
+, data-default-instances-dlist
+, data-default-instances-old-locale
+, lib
+}:
+mkDerivation {
+  pname = "data-default";
+  version = "0.7.1.1";
+  sha256 = "b0f95d279cd75cacaa8152a01590dc3460f7134f6840b37052abb3ba3cb2a511";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    data-default-class
+    data-default-instances-containers
+    data-default-instances-dlist
+    data-default-instances-old-locale
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A class for types with a default value";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/deepseq-generics.nix b/pkgs/deepseq-generics.nix
new file mode 100644
index 0000000000000000000000000000000000000000..60c6d711be4efa150687f4ec223734dc074b04c8
--- /dev/null
+++ b/pkgs/deepseq-generics.nix
@@ -0,0 +1,39 @@
+{ mkDerivation
+, base
+, deepseq
+, ghc-prim
+, HUnit
+, lib
+, test-framework
+, test-framework-hunit
+}:
+mkDerivation {
+  pname = "deepseq-generics";
+  version = "0.2.0.0";
+  sha256 = "b0b3ef5546c0768ef9194519a90c629f8f2ba0348487e620bb89d512187c7c9d";
+  revision = "8";
+  editedCabalFile = "0dcv4kf2g4xyacjpci9kql1gm706lkzhcyz9ks9jkbdvyvs8lf90";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ghc-prim ];
+  testHaskellDepends = [
+    base
+    deepseq
+    ghc-prim
+    HUnit
+    test-framework
+    test-framework-hunit
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-hvr/deepseq-generics";
+  description = "GHC.Generics-based Control.DeepSeq.rnf implementation";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/dependent-map.nix b/pkgs/dependent-map.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e56d5c0f7a35036f6a612280b3b57c02e64e40c3
--- /dev/null
+++ b/pkgs/dependent-map.nix
@@ -0,0 +1,32 @@
+{ mkDerivation
+, base
+, constraints-extras
+, containers
+, dependent-sum
+, lib
+}:
+mkDerivation {
+  pname = "dependent-map";
+  version = "0.4.0.0";
+  sha256 = "53ce0b52d8be1b85fc6489fb27656f16d837bee4fbe0ddf39c844e3ea8871f2c";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    constraints-extras
+    containers
+    dependent-sum
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/obsidiansystems/dependent-map";
+  description = "Dependent finite maps (partial dependent products)";
+  license = "unknown";
+  broken = false;
+}
diff --git a/pkgs/dependent-sum.nix b/pkgs/dependent-sum.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f693252f264f6ec5ea5bdf4eae94abb1972e62dd
--- /dev/null
+++ b/pkgs/dependent-sum.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, constraints-extras, lib, some }:
+mkDerivation {
+  pname = "dependent-sum";
+  version = "0.7.1.0";
+  sha256 = "81cb55907f321f62bea095ae72e9711095c4cb7378fa66fbabc483a9f61b462a";
+  revision = "2";
+  editedCabalFile = "0d7wb1ag60mcm56axcrx9pd6hgrsxmqynyplbcfl01ms2i60fhr9";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base constraints-extras some ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/obsidiansystems/dependent-sum";
+  description = "Dependent sum type";
+  license = lib.licenses.publicDomain;
+  broken = false;
+}
diff --git a/pkgs/derp.nix b/pkgs/derp.nix
new file mode 100644
index 0000000000000000000000000000000000000000..dc466f9f924fe12d1f28029e059554ae2b573ec8
--- /dev/null
+++ b/pkgs/derp.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, containers, lib }:
+mkDerivation {
+  pname = "derp";
+  version = "0.1.6";
+  sha256 = "136a001ad5afc5db65495832a539ab027e2685ce5f6ed82d5fb72a29314a1e3d";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Derivative Parsing";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/digest.nix b/pkgs/digest.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5796f98cb5c0f1cb68a9a952f3770c1c90309dee
--- /dev/null
+++ b/pkgs/digest.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, bytestring, lib, zlib }:
+mkDerivation {
+  pname = "digest";
+  version = "0.0.1.3";
+  sha256 = "5596a53e17c036b9b2aefbed069ec819b36fefcd4bed21330ae0ee5be840a3d0";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  librarySystemDepends = [ zlib ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Various cryptographic hashes for bytestrings; CRC32 and Adler32 for now";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/direct-sqlite.nix b/pkgs/direct-sqlite.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ed8afdf142faed132a5b8c0aac1cfd7a29d5e306
--- /dev/null
+++ b/pkgs/direct-sqlite.nix
@@ -0,0 +1,39 @@
+{ mkDerivation
+, base
+, base16-bytestring
+, bytestring
+, directory
+, HUnit
+, lib
+, temporary
+, text
+}:
+mkDerivation {
+  pname = "direct-sqlite";
+  version = "2.3.27";
+  sha256 = "0319dd780712859fcacf0b8f1401088f76af3b651c7ec366e0231c15e73bd82e";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring text ];
+  testHaskellDepends = [
+    base
+    base16-bytestring
+    bytestring
+    directory
+    HUnit
+    temporary
+    text
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/IreneKnapp/direct-sqlite";
+  description = "Low-level binding to SQLite3. Includes UTF8 and BLOB support.";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/dlist.nix b/pkgs/dlist.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2a9bf06708ccd7c202ca6d8565bca2e23c1ddbab
--- /dev/null
+++ b/pkgs/dlist.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, deepseq, lib, QuickCheck }:
+mkDerivation {
+  pname = "dlist";
+  version = "1.0";
+  sha256 = "173d637328bb173fcc365f30d29ff4a94292a1e0e5558aeb3dfc11de81510115";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ];
+  testHaskellDepends = [ base QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/spl/dlist";
+  description = "Difference lists";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/doclayout.nix b/pkgs/doclayout.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ca4f43141b62062f095066ea00854a5d184d6ea9
--- /dev/null
+++ b/pkgs/doclayout.nix
@@ -0,0 +1,55 @@
+{ mkDerivation
+, base
+, containers
+, criterion
+, deepseq
+, emojis
+, lib
+, mtl
+, safe
+, tasty
+, tasty-golden
+, tasty-hunit
+, tasty-quickcheck
+, text
+}:
+mkDerivation {
+  pname = "doclayout";
+  version = "0.4";
+  sha256 = "7d2ede4024d1f5e5d918fd799f7e046b03023434e327bc1e1c1402eeb8ffb3a3";
+  revision = "1";
+  editedCabalFile = "0djwb7nrdablc0iy1qakrxpd4m7nn0w94vhb78il3jhjbj2ji179";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [ base containers emojis mtl safe text ];
+  testHaskellDepends = [
+    base
+    emojis
+    mtl
+    tasty
+    tasty-golden
+    tasty-hunit
+    tasty-quickcheck
+    text
+  ];
+  benchmarkHaskellDepends = [
+    base
+    criterion
+    deepseq
+    emojis
+    mtl
+    text
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jgm/doclayout";
+  description = "A prettyprinting library for laying out text documents";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/doctest-exitcode-stdio.nix b/pkgs/doctest-exitcode-stdio.nix
new file mode 100644
index 0000000000000000000000000000000000000000..70837b202622f0f7df21b66b4b0ce175656e96e1
--- /dev/null
+++ b/pkgs/doctest-exitcode-stdio.nix
@@ -0,0 +1,36 @@
+{ mkDerivation
+, base
+, doctest-lib
+, lib
+, QuickCheck
+, semigroups
+, transformers
+}:
+mkDerivation {
+  pname = "doctest-exitcode-stdio";
+  version = "0.0";
+  sha256 = "1dec779d5e67ea46c8b0d69d454e0717383654e87323bdebc2bc0a8cb33f6cbc";
+  revision = "1";
+  editedCabalFile = "1065s8bch6zhl6mc8nhvfpwd1irmjd04z7xgycbpihc14x4ijim3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    doctest-lib
+    QuickCheck
+    semigroups
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://hub.darcs.net/thielema/doctest-exitcode-stdio/";
+  description = "Run doctest's in a Cabal.Test.exitcode-stdio environment";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/doctest-lib.nix b/pkgs/doctest-lib.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e5c532e29770eff48556bd21e57d509873bd1c4a
--- /dev/null
+++ b/pkgs/doctest-lib.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "doctest-lib";
+  version = "0.1";
+  sha256 = "02c6fa934b4ebc1abca1f7346920921969fc5080397efb606ca270d840555cef";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://hub.darcs.net/thielema/doctest-lib/";
+  description = "Parts of doctest exposed as library";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/dotgen.nix b/pkgs/dotgen.nix
new file mode 100644
index 0000000000000000000000000000000000000000..24f66b3847e526f9c584abd2dbd392e395a95e9e
--- /dev/null
+++ b/pkgs/dotgen.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, containers, lib }:
+mkDerivation {
+  pname = "dotgen";
+  version = "0.4.3";
+  sha256 = "da1c78f7daf0470465ce095fd0f3b3e8a4e4744d5b582a0f6e590a32522d96c9";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ku-fpg/dotgen";
+  description = "A simple interface for building .dot graph files.";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/easy-file.nix b/pkgs/easy-file.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b87f6344671dc0058a5b341c4b6ebbee2258c6e8
--- /dev/null
+++ b/pkgs/easy-file.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, directory, filepath, lib, time, unix }:
+mkDerivation {
+  pname = "easy-file";
+  version = "0.2.2";
+  sha256 = "52f52e72ba48d60935932401c233a72bf45c582871238aecc5a18021ce67b47e";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base directory filepath time unix ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/kazu-yamamoto/easy-file";
+  description = "Cross-platform File handling";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/echo.nix b/pkgs/echo.nix
new file mode 100644
index 0000000000000000000000000000000000000000..db8e9e9e84481acbb7f9b7003e05d57c5252bfa0
--- /dev/null
+++ b/pkgs/echo.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, process }:
+mkDerivation {
+  pname = "echo";
+  version = "0.1.4";
+  sha256 = "c9fe1bf2904825a65b667251ec644f197b71dc5c209d2d254be5de3d496b0e43";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base process ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/RyanGlScott/echo";
+  description = "A cross-platform, cross-console way to handle echoing terminal input";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/edit-distance.nix b/pkgs/edit-distance.nix
new file mode 100644
index 0000000000000000000000000000000000000000..bb7a44b79fa633a40ed3b541c1f59dd53f31d8dc
--- /dev/null
+++ b/pkgs/edit-distance.nix
@@ -0,0 +1,57 @@
+{ mkDerivation
+, array
+, base
+, containers
+, criterion
+, deepseq
+, lib
+, process
+, QuickCheck
+, random
+, test-framework
+, test-framework-quickcheck2
+, time
+, unix
+}:
+mkDerivation {
+  pname = "edit-distance";
+  version = "0.2.2.1";
+  sha256 = "3e8885ee2f56ad4da940f043ae8f981ee2fe336b5e8e4ba3f7436cff4f526c4a";
+  revision = "1";
+  editedCabalFile = "1vjn4ryzdilz7l1ad7czh11nw48h5mj8if7ij3q0mmc3sffa8csd";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ array base containers random ];
+  testHaskellDepends = [
+    array
+    base
+    containers
+    QuickCheck
+    random
+    test-framework
+    test-framework-quickcheck2
+  ];
+  benchmarkHaskellDepends = [
+    array
+    base
+    containers
+    criterion
+    deepseq
+    process
+    random
+    time
+    unix
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/phadej/edit-distance";
+  description = "Levenshtein and restricted Damerau-Levenshtein edit distances";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/emojis.nix b/pkgs/emojis.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ee364a2f92aa25ef17b6e85f837cc8e48e429438
--- /dev/null
+++ b/pkgs/emojis.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, containers, HUnit, lib, text }:
+mkDerivation {
+  pname = "emojis";
+  version = "0.1.2";
+  sha256 = "3cfe9c2ea3efbbdb9b7fc24ee6707a839d272c1deee7e39319f17a7e6feea227";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers text ];
+  testHaskellDepends = [ base HUnit text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jgm/emojis#readme";
+  description = "Conversion between emoji characters and their names";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/entropy.nix b/pkgs/entropy.nix
new file mode 100644
index 0000000000000000000000000000000000000000..80c436913376fef8323fc14c5e95d55e1026e8c0
--- /dev/null
+++ b/pkgs/entropy.nix
@@ -0,0 +1,31 @@
+{ mkDerivation
+, base
+, bytestring
+, Cabal
+, directory
+, filepath
+, lib
+, process
+, unix
+}:
+mkDerivation {
+  pname = "entropy";
+  version = "0.4.1.10";
+  sha256 = "85ac1d53f1d1c095aedd23fdb20c8e3ada04a7fd8aa6d7e6445ae6a59a277de5";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  setupHaskellDepends = [ base Cabal directory filepath process ];
+  libraryHaskellDepends = [ base bytestring unix ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/TomMD/entropy";
+  description = "A platform independent entropy source";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/envparse.nix b/pkgs/envparse.nix
new file mode 100644
index 0000000000000000000000000000000000000000..84b919c9a0547e3d31c74d057f801da4550d42e9
--- /dev/null
+++ b/pkgs/envparse.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, containers, hspec, lib, text }:
+mkDerivation {
+  pname = "envparse";
+  version = "0.5.0";
+  sha256 = "adb54ae4ef48c8cd124e770bbf774632ff9382dc208eed33e3da44d20fc0db1d";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers ];
+  testHaskellDepends = [ base containers hspec text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://supki.github.io/envparse";
+  description = "Parse environment variables";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/erf.nix b/pkgs/erf.nix
new file mode 100644
index 0000000000000000000000000000000000000000..37823d66e149acc964d11e20951790dddf472a8a
--- /dev/null
+++ b/pkgs/erf.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "erf";
+  version = "2.0.0.0";
+  sha256 = "24f0b79c7e1d25cb2cd44c2258d7a464bf6db8079775b50b60b54a254616b337";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "The error function, erf, and related functions";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/exact-pi.nix b/pkgs/exact-pi.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5645589939a6a01348fc8dee5030bb778e85d807
--- /dev/null
+++ b/pkgs/exact-pi.nix
@@ -0,0 +1,37 @@
+{ mkDerivation
+, base
+, lib
+, numtype-dk
+, QuickCheck
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "exact-pi";
+  version = "0.5.0.2";
+  sha256 = "441dd2516902f13801c41310fa98ea82f7a946e8ddd2f775b19931f7e91eacf6";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base numtype-dk ];
+  testHaskellDepends = [
+    base
+    numtype-dk
+    QuickCheck
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/dmcclean/exact-pi/";
+  description = "Exact rational multiples of pi (and integer powers of pi)";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/extensible-effects.nix b/pkgs/extensible-effects.nix
new file mode 100644
index 0000000000000000000000000000000000000000..deeec7cd66241b79c16c8e825f789ee603bb103f
--- /dev/null
+++ b/pkgs/extensible-effects.nix
@@ -0,0 +1,61 @@
+{ mkDerivation
+, base
+, criterion
+, doctest
+, HUnit
+, lib
+, monad-control
+, mtl
+, QuickCheck
+, silently
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+, test-framework-th
+, transformers-base
+}:
+mkDerivation {
+  pname = "extensible-effects";
+  version = "5.0.0.1";
+  sha256 = "c3b3165893d3738c5ec7ffd0d8c46a7af855b7d3087e159d6da516e78880c039";
+  revision = "1";
+  editedCabalFile = "1ihcxj58a3ca80zfyxgbzjzgps9izy96vnj7h4sk9wwb9khbxl1f";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base monad-control transformers-base ];
+  testHaskellDepends = [
+    base
+    doctest
+    HUnit
+    monad-control
+    mtl
+    QuickCheck
+    silently
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+    test-framework-th
+  ];
+  benchmarkHaskellDepends = [
+    base
+    criterion
+    HUnit
+    mtl
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+    test-framework-th
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/suhailshergill/extensible-effects";
+  description = "An Alternative to Monad Transformers";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/extensible-exceptions.nix b/pkgs/extensible-exceptions.nix
new file mode 100644
index 0000000000000000000000000000000000000000..fb313db38856c808350c03071e216c22b8dec38d
--- /dev/null
+++ b/pkgs/extensible-exceptions.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "extensible-exceptions";
+  version = "0.1.1.4";
+  sha256 = "6ce5e8801760385a408dab71b53550f87629e661b260bdc2cd41c6a439b6e388";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Extensible exceptions";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/fail.nix b/pkgs/fail.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b8fa45510c0124c8e1fd6d657e74dfee4d95129d
--- /dev/null
+++ b/pkgs/fail.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, lib }:
+mkDerivation {
+  pname = "fail";
+  version = "4.9.0.0";
+  sha256 = "6d5cdb1a5c539425a9665f740e364722e1d9d6ae37fbc55f30fe3dbbbb91d4a2";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://prime.haskell.org/wiki/Libraries/Proposals/MonadFail";
+  description = "Forward-compatible MonadFail class";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/fast-logger.nix b/pkgs/fast-logger.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0de55418a992757eba937d7e06dc777573d90b6d
--- /dev/null
+++ b/pkgs/fast-logger.nix
@@ -0,0 +1,48 @@
+{ mkDerivation
+, array
+, auto-update
+, base
+, bytestring
+, directory
+, easy-file
+, filepath
+, hspec
+, hspec-discover
+, lib
+, text
+, unix-compat
+, unix-time
+}:
+mkDerivation {
+  pname = "fast-logger";
+  version = "3.1.1";
+  sha256 = "435f6e7e0771b9b525550c292a941ab5726b233e7d91fdeca707e3cdb531a8e7";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    auto-update
+    base
+    bytestring
+    directory
+    easy-file
+    filepath
+    text
+    unix-compat
+    unix-time
+  ];
+  testHaskellDepends = [ base bytestring directory hspec ];
+  testToolDepends = [ hspec-discover ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/kazu-yamamoto/logger";
+  description = "A fast logging system";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/file-embed-lzma.nix b/pkgs/file-embed-lzma.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c628fa4ee7d6644b1509902f94a071ababe87540
--- /dev/null
+++ b/pkgs/file-embed-lzma.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, base
+, bytestring
+, directory
+, filepath
+, lib
+, lzma
+, template-haskell
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "file-embed-lzma";
+  version = "0.0.1";
+  sha256 = "2922f1119566f7212a2bc2cbc143cf9c296073515aae5f4d829f580d657b81a6";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    directory
+    filepath
+    lzma
+    template-haskell
+    text
+    transformers
+  ];
+  testHaskellDepends = [ base bytestring ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/phadej/file-embed-lzma";
+  description = "Use Template Haskell to embed (LZMA compressed) data";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/file-embed.nix b/pkgs/file-embed.nix
new file mode 100644
index 0000000000000000000000000000000000000000..935e5172c29f773e05370f164327687050912af9
--- /dev/null
+++ b/pkgs/file-embed.nix
@@ -0,0 +1,35 @@
+{ mkDerivation
+, base
+, bytestring
+, directory
+, filepath
+, lib
+, template-haskell
+}:
+mkDerivation {
+  pname = "file-embed";
+  version = "0.0.15.0";
+  sha256 = "f066b85d537a20252faa59489f6a854e4e8f39080f08730c9e195e418cec5bdd";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    directory
+    filepath
+    template-haskell
+  ];
+  testHaskellDepends = [ base bytestring filepath ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/snoyberg/file-embed";
+  description = "Use Template Haskell to embed file contents directly";
+  license = lib.licenses.bsd2;
+  broken = false;
+}
diff --git a/pkgs/filemanip.nix b/pkgs/filemanip.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7221c9a64ffab296fbdb880e750cbd82ab3131a2
--- /dev/null
+++ b/pkgs/filemanip.nix
@@ -0,0 +1,36 @@
+{ mkDerivation
+, base
+, bytestring
+, directory
+, filepath
+, lib
+, mtl
+, unix-compat
+}:
+mkDerivation {
+  pname = "filemanip";
+  version = "0.3.6.3";
+  sha256 = "8836da17baaaf02ca080c9990ece4e0b0c8d6a128f458f8b64fd07b225ca9846";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    directory
+    filepath
+    mtl
+    unix-compat
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/bos/filemanip";
+  description = "Expressive file and directory manipulation for Haskell";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/filtrable.nix b/pkgs/filtrable.nix
new file mode 100644
index 0000000000000000000000000000000000000000..957f526cc9a0381f0aa67fe3ec87f78a96e559d6
--- /dev/null
+++ b/pkgs/filtrable.nix
@@ -0,0 +1,30 @@
+{ mkDerivation
+, base
+, containers
+, lib
+, smallcheck
+, tasty
+, tasty-smallcheck
+, transformers
+}:
+mkDerivation {
+  pname = "filtrable";
+  version = "0.1.6.0";
+  sha256 = "be40b79abd9b6563a0146069b22313a4a7b8fb8cf7e3c4bc62fb7725f9a11215";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers transformers ];
+  testHaskellDepends = [ base smallcheck tasty tasty-smallcheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/strake/filtrable.hs";
+  description = "Class of filtrable containers";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/fingertree-psqueue.nix b/pkgs/fingertree-psqueue.nix
new file mode 100644
index 0000000000000000000000000000000000000000..cb4ec2d04d95c4a0c85e7c36066df641c6b7780e
--- /dev/null
+++ b/pkgs/fingertree-psqueue.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, base, fetchgit, fingertree, lib }:
+mkDerivation {
+  pname = "fingertree-psqueue";
+  version = "0.3";
+  src = fetchgit {
+    url = "https://gitlab.homotopic.tech/horizon/adopted/fingertree-psqueue";
+    sha256 = "1h13yz23i3flx4mg8czk4k5ypx78q2lwfmmaljm54z3an1p4lv60";
+    rev = "d466b18e18d706dc1373ed2894c1e20ea2826329";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base fingertree ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Implementation of priority search queues as finger trees";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/fingertree.nix b/pkgs/fingertree.nix
new file mode 100644
index 0000000000000000000000000000000000000000..60e604e1f4c8ba3b476fc3a57e1c111647ffa84b
--- /dev/null
+++ b/pkgs/fingertree.nix
@@ -0,0 +1,36 @@
+{ mkDerivation
+, base
+, HUnit
+, lib
+, QuickCheck
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "fingertree";
+  version = "0.1.5.0";
+  sha256 = "f3263c92fa8b18f1e1a64cd12480c8c1bee2c1fa0584ab3345f3dd8522bdbf71";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [
+    base
+    HUnit
+    QuickCheck
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Generic finger-tree structure, with example instances";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/fixed.nix b/pkgs/fixed.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3cc0a32b125830d245cc597d9ffd1369b3a487b5
--- /dev/null
+++ b/pkgs/fixed.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "fixed";
+  version = "0.3";
+  sha256 = "9218ebd3af3f07335db8dcd148b3ce40acf984734c244cce5959f57402d48282";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/fixed";
+  description = "Signed 15.16 precision fixed point arithmetic";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/fmlist.nix b/pkgs/fmlist.nix
new file mode 100644
index 0000000000000000000000000000000000000000..941b082f78b2bea8c7f5549e3b789b76e52984c8
--- /dev/null
+++ b/pkgs/fmlist.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "fmlist";
+  version = "0.9.4";
+  sha256 = "2dbdc1850e6768fd5f4e4c45d011ef6796d8b2d639ec200da7f4407ae02d09a6";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/sjoerdvisscher/fmlist";
+  description = "FoldMap lists";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/foreign-store.nix b/pkgs/foreign-store.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2a5e108a616e504e101442f845256a1e3ecc41dd
--- /dev/null
+++ b/pkgs/foreign-store.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "foreign-store";
+  version = "0.2";
+  sha256 = "06718a214d068eaa494cc82376f23b2059a141b01048cd7efcf2176a6c3383dc";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/chrisdone/foreign-store";
+  description = "Store a stable pointer in a foreign context to be retrieved later";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/formatting.nix b/pkgs/formatting.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f3c18de40a2c68d741039f94404a9a746b0ee2a9
--- /dev/null
+++ b/pkgs/formatting.nix
@@ -0,0 +1,55 @@
+{ mkDerivation
+, base
+, clock
+, criterion
+, double-conversion
+, ghc-prim
+, hspec
+, lib
+, old-locale
+, QuickCheck
+, scientific
+, text
+, time
+, transformers
+}:
+mkDerivation {
+  pname = "formatting";
+  version = "7.1.3";
+  sha256 = "8061bbe29278e6b7bb2268b00e1717385643dfa04e7b58b012bd53b342142cef";
+  revision = "2";
+  editedCabalFile = "1i3qkhxqhvqd7mqfdc1mbizw1fin7vp4dwzayc2y0sqcbg7kkns7";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    clock
+    double-conversion
+    ghc-prim
+    old-locale
+    scientific
+    text
+    time
+    transformers
+  ];
+  testHaskellDepends = [ base ghc-prim hspec scientific text ];
+  benchmarkHaskellDepends = [
+    base
+    criterion
+    ghc-prim
+    QuickCheck
+    text
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/AJChapman/formatting#readme";
+  description = "Combinator-based type-safe formatting (like printf() or FORMAT)";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/freer-simple.nix b/pkgs/freer-simple.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5279d99a8b3797e6661f557a9d6c02bc1a0ebe03
--- /dev/null
+++ b/pkgs/freer-simple.nix
@@ -0,0 +1,56 @@
+{ mkDerivation
+, base
+, criterion
+, extensible-effects
+, free
+, lib
+, mtl
+, natural-transformation
+, QuickCheck
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, template-haskell
+, transformers-base
+}:
+mkDerivation {
+  pname = "freer-simple";
+  version = "1.2.1.2";
+  sha256 = "9c02bb4930ef245525e6ff8b548f77814c0b69acdecc48e100acab3b9b73d787";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    natural-transformation
+    template-haskell
+    transformers-base
+  ];
+  executableHaskellDepends = [ base ];
+  testHaskellDepends = [
+    base
+    QuickCheck
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  benchmarkHaskellDepends = [
+    base
+    criterion
+    extensible-effects
+    free
+    mtl
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/lexi-lambda/freer-simple";
+  description = "A friendly effect system for Haskell";
+  license = lib.licenses.bsd3;
+  mainProgram = "freer-simple-examples";
+  broken = false;
+}
diff --git a/pkgs/friendly-time.nix b/pkgs/friendly-time.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e38e3441fbe98901332d3c4522c90ab310ddfe17
--- /dev/null
+++ b/pkgs/friendly-time.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, hspec, lib, old-locale, time }:
+mkDerivation {
+  pname = "friendly-time";
+  version = "0.4.1";
+  sha256 = "9af3443227c3f271f5d11ed8c3c15c77a59de3ab82d87d93ac1f8455a54393c8";
+  revision = "1";
+  editedCabalFile = "096nfaqxavi6xblqh4q5dxks824liz75b4rm2la2hlkkn5mhqdgs";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base old-locale time ];
+  testHaskellDepends = [ base hspec old-locale time ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Print time information in friendly ways";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/generic-deriving.nix b/pkgs/generic-deriving.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b58ec9e66d9250b9e975767f8604aeb6bdecf65c
--- /dev/null
+++ b/pkgs/generic-deriving.nix
@@ -0,0 +1,38 @@
+{ mkDerivation
+, base
+, containers
+, ghc-prim
+, hspec
+, hspec-discover
+, lib
+, template-haskell
+, th-abstraction
+}:
+mkDerivation {
+  pname = "generic-deriving";
+  version = "1.14.2";
+  sha256 = "265e351117d451afaa37821ce91b44a02611cc94c7ed917a19e1efb0cc63aa2f";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    ghc-prim
+    template-haskell
+    th-abstraction
+  ];
+  testHaskellDepends = [ base hspec template-haskell ];
+  testToolDepends = [ hspec-discover ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/dreixel/generic-deriving";
+  description = "Generic programming library for generalised deriving";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/generic-random.nix b/pkgs/generic-random.nix
new file mode 100644
index 0000000000000000000000000000000000000000..08761099e3e204bd29747a50050e610ed75337cb
--- /dev/null
+++ b/pkgs/generic-random.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, deepseq, lib, QuickCheck }:
+mkDerivation {
+  pname = "generic-random";
+  version = "1.5.0.1";
+  sha256 = "dd3451808788d99211edeac27287db5417e97234ce9221a2eb9ab02e9cfc2c0a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base QuickCheck ];
+  testHaskellDepends = [ base deepseq QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/lysxia/generic-random";
+  description = "Generic random generators for QuickCheck";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/generically.nix b/pkgs/generically.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0bf859307aa8d85dd80a992c8d50a36b1d6ceaa9
--- /dev/null
+++ b/pkgs/generically.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "generically";
+  version = "0.1";
+  sha256 = "d5b72880e1d00b24b6c221978d060bea620acc412cdcb62521f3016cbd3f2b71";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Generically newtype to use with DerivingVia";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/genvalidity-hspec-aeson.nix b/pkgs/genvalidity-hspec-aeson.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7abc8bb53e634a64d79289176440f56cc5f1b366
--- /dev/null
+++ b/pkgs/genvalidity-hspec-aeson.nix
@@ -0,0 +1,58 @@
+{ mkDerivation
+, aeson
+, base
+, bytestring
+, deepseq
+, genvalidity
+, genvalidity-aeson
+, genvalidity-hspec
+, genvalidity-property
+, genvalidity-text
+, hspec
+, lib
+, QuickCheck
+, text
+, validity
+}:
+mkDerivation {
+  pname = "genvalidity-hspec-aeson";
+  version = "1.0.0.0";
+  sha256 = "06ca1d32196c5bb837c06f88f4df67fff60beb6a200d91579fdc812fcc23eaa1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    bytestring
+    deepseq
+    genvalidity
+    genvalidity-hspec
+    hspec
+    QuickCheck
+  ];
+  testHaskellDepends = [
+    aeson
+    base
+    genvalidity
+    genvalidity-aeson
+    genvalidity-hspec
+    genvalidity-property
+    genvalidity-text
+    hspec
+    QuickCheck
+    text
+    validity
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://cs-syd.eu";
+  description = "Standard spec's for aeson-related instances";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/githash.nix b/pkgs/githash.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0f90f62dee25bdb203a0db5b02b707ef01b00824
--- /dev/null
+++ b/pkgs/githash.nix
@@ -0,0 +1,53 @@
+{ mkDerivation
+, base
+, bytestring
+, directory
+, filepath
+, hspec
+, lib
+, process
+, template-haskell
+, temporary
+, th-compat
+, unliftio
+}:
+mkDerivation {
+  pname = "githash";
+  version = "0.1.6.3";
+  sha256 = "fcba79b60ef87bdd4976332e998589a62e1be012b932b543b49de5e0620eef1b";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    directory
+    filepath
+    process
+    template-haskell
+    th-compat
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    directory
+    filepath
+    hspec
+    process
+    template-haskell
+    temporary
+    th-compat
+    unliftio
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/snoyberg/githash#readme";
+  description = "Compile git revision info into Haskell projects";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/gridtables.nix b/pkgs/gridtables.nix
new file mode 100644
index 0000000000000000000000000000000000000000..25f73ebf2cb5fe2316c090bc79de613b212543a1
--- /dev/null
+++ b/pkgs/gridtables.nix
@@ -0,0 +1,39 @@
+{ mkDerivation
+, array
+, base
+, containers
+, doclayout
+, lib
+, parsec
+, tasty
+, tasty-hunit
+, text
+}:
+mkDerivation {
+  pname = "gridtables";
+  version = "0.1.0.0";
+  sha256 = "d6ac341bc7997d39a3b1f6cd811f70ab69689d9c3117ce3bc44bfb2ec55ab0ea";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    base
+    containers
+    doclayout
+    parsec
+    text
+  ];
+  testHaskellDepends = [ array base parsec tasty tasty-hunit text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/tarleb/gridtables";
+  description = "Parser for reStructuredText-style grid tables";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/groups.nix b/pkgs/groups.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8c6f9472e893b03f5a9db51c51251abfc0ce36bd
--- /dev/null
+++ b/pkgs/groups.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "groups";
+  version = "0.5.3";
+  sha256 = "ce1e52a8be7effbd1f995eadf0ed34fa45c412656d372db8a38f9c955e43ac38";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Groups";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/half.nix b/pkgs/half.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0fb876999bdcad4d1bc266575aff515c5c68173d
--- /dev/null
+++ b/pkgs/half.nix
@@ -0,0 +1,39 @@
+{ mkDerivation
+, base
+, binary
+, bytestring
+, deepseq
+, lib
+, QuickCheck
+, template-haskell
+, test-framework
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "half";
+  version = "0.3.1";
+  sha256 = "e2afc32724e11bf5c695d797b9169d9d9b2dc62a530aed31284c8187af1615d1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base binary deepseq template-haskell ];
+  testHaskellDepends = [
+    base
+    binary
+    bytestring
+    QuickCheck
+    test-framework
+    test-framework-quickcheck2
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/half";
+  description = "Half-precision floating-point";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/happy.nix b/pkgs/happy.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5896ef4c45d8b73f75e3a7ffe92fafd19e0fa757
--- /dev/null
+++ b/pkgs/happy.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, array, base, containers, lib, mtl, process }:
+mkDerivation {
+  pname = "happy";
+  version = "1.20.0";
+  sha256 = "3b1d3a8f93a2723b554d9f07b2cd136be1a7b2fcab1855b12b7aab5cbac8868c";
+  revision = "1";
+  editedCabalFile = "16dy1cv942rizxp8slnnbwi5l24ggsmy38madbin9scz38idqisx";
+  isLibrary = false;
+  isExecutable = true;
+  enableSeparateDataOutput = true;
+  executableHaskellDepends = [ array base containers mtl ];
+  testHaskellDepends = [ base process ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://www.haskell.org/happy/";
+  description = "Happy is a parser generator for Haskell";
+  license = lib.licenses.bsd2;
+  mainProgram = "happy";
+  broken = false;
+}
diff --git a/pkgs/hashmap.nix b/pkgs/hashmap.nix
new file mode 100644
index 0000000000000000000000000000000000000000..085caea4bfefed164ccdc8f307e40038942e45a8
--- /dev/null
+++ b/pkgs/hashmap.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, containers, deepseq, hashable, lib }:
+mkDerivation {
+  pname = "hashmap";
+  version = "1.3.3";
+  sha256 = "dc06b57cd1bcd656d4602df7705a3f11a54ae65f664e9be472d42a9bdcd64755";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers deepseq hashable ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/foxik/hashmap";
+  description = "Persistent containers Map and Set based on hashing";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/haskell-lexer.nix b/pkgs/haskell-lexer.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d9c2dac5746498c7a45ab9b2dc3c426e2c2ae977
--- /dev/null
+++ b/pkgs/haskell-lexer.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "haskell-lexer";
+  version = "1.1";
+  sha256 = "313a15cc643322c8badd148867ce25ca1ffc191df9e7eeec5b10bc08c4b563d5";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/yav/haskell-lexer";
+  description = "A fully compliant Haskell 98 lexer";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/haskell-src-exts.nix b/pkgs/haskell-src-exts.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1ebb1d5d9281cf6e55c94fa4a3798f70aff5f60e
--- /dev/null
+++ b/pkgs/haskell-src-exts.nix
@@ -0,0 +1,50 @@
+{ mkDerivation
+, array
+, base
+, containers
+, directory
+, filepath
+, ghc-prim
+, happy
+, lib
+, mtl
+, pretty
+, pretty-show
+, smallcheck
+, tasty
+, tasty-golden
+, tasty-smallcheck
+}:
+mkDerivation {
+  pname = "haskell-src-exts";
+  version = "1.23.1";
+  sha256 = "67853047169fff7d3e5d87acef214ee185a6ab8c6a104ed9c59e389574cf6c05";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ array base ghc-prim pretty ];
+  libraryToolDepends = [ happy ];
+  testHaskellDepends = [
+    base
+    containers
+    directory
+    filepath
+    mtl
+    pretty-show
+    smallcheck
+    tasty
+    tasty-golden
+    tasty-smallcheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-suite/haskell-src-exts";
+  description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/heaps.nix b/pkgs/heaps.nix
new file mode 100644
index 0000000000000000000000000000000000000000..487d554b372eb863bbf6b447af7a38de0f1053f6
--- /dev/null
+++ b/pkgs/heaps.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "heaps";
+  version = "0.4";
+  sha256 = "89329df8b95ae99ef272e41e7a2d0fe2f1bb7eacfcc34bc01664414b33067cfd";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/heaps/";
+  description = "Asymptotically optimal Brodal/Okasaki heaps";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hnix.nix b/pkgs/hnix.nix
deleted file mode 100644
index 45ccb4d485346f20e71229bbaef92073e28884e4..0000000000000000000000000000000000000000
--- a/pkgs/hnix.nix
+++ /dev/null
@@ -1,219 +0,0 @@
-{ mkDerivation
-, aeson
-, array
-, base
-, base16-bytestring
-, binary
-, bytestring
-, comonad
-, containers
-, criterion
-, cryptonite
-, data-fix
-, deepseq
-, deriving-compat
-, Diff
-, directory
-, exceptions
-, extra
-, fetchgit
-, filepath
-, free
-, gitrev
-, Glob
-, hashable
-, hashing
-, haskeline
-, hedgehog
-, hnix-store-core
-, hnix-store-remote
-, http-client
-, http-client-tls
-, http-types
-, lens-family
-, lens-family-core
-, lens-family-th
-, lib
-, logict
-, megaparsec
-, monad-control
-, monadlist
-, mtl
-, neat-interpolation
-, optparse-applicative
-, parser-combinators
-, pretty-show
-, prettyprinter
-, process
-, ref-tf
-, regex-tdfa
-, relude
-, repline
-, scientific
-, semialign
-, serialise
-, some
-, split
-, syb
-, tasty
-, tasty-hedgehog
-, tasty-hunit
-, tasty-th
-, template-haskell
-, text
-, th-lift-instances
-, these
-, time
-, transformers
-, transformers-base
-, unix-compat
-, unordered-containers
-, vector
-, xml
-}:
-mkDerivation {
-  pname = "hnix";
-  version = "0.16.0";
-  src = fetchgit {
-    url = "https://github.com/milloni/hnix";
-    sha256 = "0k6dwf7aaigracwnjlvlbjcl4gb9xv3wqzzy293z2wpm3wsr02m3";
-    rev = "005568ee024eabee129d9cf4ca331c6da260610b";
-    fetchSubmodules = true;
-  };
-  isLibrary = true;
-  isExecutable = true;
-  enableSeparateDataOutput = false;
-  libraryHaskellDepends = [
-    aeson
-    array
-    base
-    base16-bytestring
-    binary
-    bytestring
-    comonad
-    containers
-    cryptonite
-    data-fix
-    deepseq
-    deriving-compat
-    directory
-    exceptions
-    extra
-    filepath
-    free
-    gitrev
-    hashable
-    hashing
-    hnix-store-core
-    hnix-store-remote
-    http-client
-    http-client-tls
-    http-types
-    lens-family
-    lens-family-core
-    lens-family-th
-    logict
-    megaparsec
-    monad-control
-    monadlist
-    mtl
-    neat-interpolation
-    optparse-applicative
-    parser-combinators
-    pretty-show
-    prettyprinter
-    process
-    ref-tf
-    regex-tdfa
-    relude
-    scientific
-    semialign
-    serialise
-    some
-    split
-    syb
-    template-haskell
-    text
-    th-lift-instances
-    these
-    time
-    transformers
-    transformers-base
-    unix-compat
-    unordered-containers
-    vector
-    xml
-  ];
-  executableHaskellDepends = [
-    aeson
-    base
-    comonad
-    containers
-    data-fix
-    deepseq
-    exceptions
-    filepath
-    free
-    haskeline
-    optparse-applicative
-    pretty-show
-    prettyprinter
-    ref-tf
-    relude
-    repline
-    serialise
-    template-haskell
-    time
-  ];
-  testHaskellDepends = [
-    base
-    containers
-    data-fix
-    Diff
-    directory
-    exceptions
-    filepath
-    Glob
-    hedgehog
-    megaparsec
-    neat-interpolation
-    optparse-applicative
-    pretty-show
-    prettyprinter
-    process
-    relude
-    serialise
-    split
-    tasty
-    tasty-hedgehog
-    tasty-hunit
-    tasty-th
-    template-haskell
-    time
-    unix-compat
-  ];
-  benchmarkHaskellDepends = [
-    base
-    criterion
-    data-fix
-    exceptions
-    filepath
-    optparse-applicative
-    relude
-    serialise
-    template-haskell
-    time
-  ];
-  enableLibraryProfiling = false;
-  enableExecutableProfiling = false;
-  doHaddock = false;
-  jailbreak = true;
-  doCheck = false;
-  doBenchmark = false;
-  hyperlinkSource = false;
-  homepage = "https://github.com/haskell-nix/hnix#readme";
-  description = "Haskell implementation of the Nix language";
-  license = lib.licenses.bsd3;
-  mainProgram = "hnix";
-  broken = false;
-}
diff --git a/pkgs/hopenssl.nix b/pkgs/hopenssl.nix
new file mode 100644
index 0000000000000000000000000000000000000000..16d0743d810a926892b66577c388775df452ad8b
--- /dev/null
+++ b/pkgs/hopenssl.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, base, bytestring, HUnit, lib, openssl }:
+mkDerivation {
+  pname = "hopenssl";
+  version = "2.2.4";
+  sha256 = "9df46c328fc4c1d1566e2d1539770c9fe9d0422e09ee254721b35ee7d48a7671";
+  revision = "1";
+  editedCabalFile = "14bs0wjrqnnn1v8c4yznfzggvmgypm2lssgl0cr498kmp54if0lf";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  librarySystemDepends = [ openssl ];
+  testHaskellDepends = [ base bytestring HUnit ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/peti/hopenssl";
+  description = "FFI Bindings to OpenSSL's EVP Digest Interface";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hostname.nix b/pkgs/hostname.nix
new file mode 100644
index 0000000000000000000000000000000000000000..412a2f5b16910c6f6d7b479da9629a5504829626
--- /dev/null
+++ b/pkgs/hostname.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "hostname";
+  version = "1.0";
+  sha256 = "9b43dab1b6da521f35685b20555da00738c8e136eb972458c786242406a9cf5c";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A very simple package providing a cross-platform means of determining the hostname";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hscolour.nix b/pkgs/hscolour.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c4105aac550809dd7450f423fbba9020768570ab
--- /dev/null
+++ b/pkgs/hscolour.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, containers, lib }:
+mkDerivation {
+  pname = "hscolour";
+  version = "1.24.4";
+  sha256 = "243332b082294117f37b2c2c68079fa61af68b36223b3fc07594f245e0e5321d";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [ base containers ];
+  executableHaskellDepends = [ base containers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://code.haskell.org/~malcolm/hscolour/";
+  description = "Colourise Haskell code";
+  license = "LGPL";
+  mainProgram = "HsColour";
+  broken = false;
+}
diff --git a/pkgs/hspec-expectations-lifted.nix b/pkgs/hspec-expectations-lifted.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2bda499b0e881b558dc67467d7d63788ca20a845
--- /dev/null
+++ b/pkgs/hspec-expectations-lifted.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, hspec-expectations, lib, transformers }:
+mkDerivation {
+  pname = "hspec-expectations-lifted";
+  version = "0.10.0";
+  sha256 = "22cdf1509b396fea2f53a0bb88dec3552f540d58cc60962a82970264c1e73828";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base hspec-expectations transformers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A version of hspec-expectations generalized to MonadIO";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/hspec-expectations.nix b/pkgs/hspec-expectations.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1e54eb6b3777c1328c81457ca73d3b9d3aa5e792
--- /dev/null
+++ b/pkgs/hspec-expectations.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, call-stack, HUnit, lib, nanospec }:
+mkDerivation {
+  pname = "hspec-expectations";
+  version = "0.8.2";
+  sha256 = "819607ea1faf35ce5be34be61c6f50f3389ea43892d56fb28c57a9f5d54fb4ef";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base call-stack HUnit ];
+  testHaskellDepends = [ base call-stack HUnit nanospec ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/hspec/hspec-expectations#readme";
+  description = "Catchy combinators for HUnit";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/hspec-hedgehog.nix b/pkgs/hspec-hedgehog.nix
new file mode 100644
index 0000000000000000000000000000000000000000..cc55414f01de16c9ad91b9fb2b859cd93948abee
--- /dev/null
+++ b/pkgs/hspec-hedgehog.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, base
+, hedgehog
+, hspec
+, hspec-core
+, HUnit
+, lib
+, QuickCheck
+, splitmix
+}:
+mkDerivation {
+  pname = "hspec-hedgehog";
+  version = "0.0.1.2";
+  sha256 = "23582ee0f9807b2e49de5da4ae8ef83cb56db63a045a7db73d537eab35c9eb9d";
+  revision = "1";
+  editedCabalFile = "1qv2gap0775d2zg8wbd3kq4ypziz05qlz5jfisvl3jfd6jzcf2ad";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    hedgehog
+    hspec
+    hspec-core
+    HUnit
+    QuickCheck
+    splitmix
+  ];
+  testHaskellDepends = [ base hedgehog hspec ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/parsonsmatt/hspec-hedgehog#readme";
+  description = "Integrate Hedgehog and Hspec!";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hspec-megaparsec.nix b/pkgs/hspec-megaparsec.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7d66ed507d8fda8877f08c92385a3257c6769b33
--- /dev/null
+++ b/pkgs/hspec-megaparsec.nix
@@ -0,0 +1,34 @@
+{ mkDerivation
+, base
+, containers
+, hspec
+, hspec-expectations
+, lib
+, megaparsec
+}:
+mkDerivation {
+  pname = "hspec-megaparsec";
+  version = "2.2.0";
+  sha256 = "f609b4bb7e38ecba0503f1fc349a2600f5c799ef3c33731ad6a6e1ff9f01ce43";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    hspec-expectations
+    megaparsec
+  ];
+  testHaskellDepends = [ base hspec hspec-expectations megaparsec ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/mrkkrp/hspec-megaparsec";
+  description = "Utility functions for testing Megaparsec parsers with Hspec";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hspec-smallcheck.nix b/pkgs/hspec-smallcheck.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1f4703798c789276747ec457e98b86fba6b7c8ca
--- /dev/null
+++ b/pkgs/hspec-smallcheck.nix
@@ -0,0 +1,49 @@
+{ mkDerivation
+, base
+, base-orphans
+, call-stack
+, hspec
+, hspec-core
+, hspec-discover
+, HUnit
+, lib
+, QuickCheck
+, smallcheck
+}:
+mkDerivation {
+  pname = "hspec-smallcheck";
+  version = "0.5.3";
+  sha256 = "f5810a4be4878fd3e02efc9895a2534f5783387c98aae0d9787f50da2eac5032";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    call-stack
+    hspec-core
+    HUnit
+    smallcheck
+  ];
+  testHaskellDepends = [
+    base
+    base-orphans
+    call-stack
+    hspec
+    hspec-core
+    HUnit
+    QuickCheck
+    smallcheck
+  ];
+  testToolDepends = [ hspec-discover ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://hspec.github.io/";
+  description = "SmallCheck support for the Hspec testing framework";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/hspec-wai.nix b/pkgs/hspec-wai.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f349fcdacaee2918ce221ca66af4c59449eff827
--- /dev/null
+++ b/pkgs/hspec-wai.nix
@@ -0,0 +1,64 @@
+{ mkDerivation
+, base
+, base-compat
+, bytestring
+, case-insensitive
+, hspec
+, hspec-core
+, hspec-expectations
+, http-types
+, lib
+, QuickCheck
+, text
+, transformers
+, wai
+, wai-extra
+}:
+mkDerivation {
+  pname = "hspec-wai";
+  version = "0.11.1";
+  sha256 = "32a86bf44ff70345718102f013f6dded35a96ceeda1aa4cc132af9c2a29e910f";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    base-compat
+    bytestring
+    case-insensitive
+    hspec-core
+    hspec-expectations
+    http-types
+    QuickCheck
+    text
+    transformers
+    wai
+    wai-extra
+  ];
+  testHaskellDepends = [
+    base
+    base-compat
+    bytestring
+    case-insensitive
+    hspec
+    hspec-core
+    hspec-expectations
+    http-types
+    QuickCheck
+    text
+    transformers
+    wai
+    wai-extra
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/hspec/hspec-wai#readme";
+  description = "Experimental Hspec support for testing WAI applications";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/html.nix b/pkgs/html.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ab21b3f6f34aac76a13787c2a2f42c26d8a6a627
--- /dev/null
+++ b/pkgs/html.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "html";
+  version = "1.0.1.2";
+  sha256 = "0c35495ea33d65e69c69bc7441ec8e1af69fbb43433c2aa3406c0a13a3ab3061";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "HTML combinator library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/httpd-shed.nix b/pkgs/httpd-shed.nix
new file mode 100644
index 0000000000000000000000000000000000000000..dc8860627f8c47ef120bd8ff6aa8c4446b791870
--- /dev/null
+++ b/pkgs/httpd-shed.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib, network, network-bsd, network-uri }:
+mkDerivation {
+  pname = "httpd-shed";
+  version = "0.4.1.1";
+  sha256 = "590fcfcb401923652bfcaf8c9a81b3bbbe83a4b1d16f7ccfecf7e47f6b6cafa5";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base network network-bsd network-uri ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A simple web-server with an interact style API";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/ieee754.nix b/pkgs/ieee754.nix
new file mode 100644
index 0000000000000000000000000000000000000000..9ad3e497856ca91925638892b335e59b1e52ee8a
--- /dev/null
+++ b/pkgs/ieee754.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "ieee754";
+  version = "0.8.0";
+  sha256 = "0e2dff9c37f59acf5c64f978ec320005e9830f276f9f314e4bfed3f482289ad1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/patperry/hs-ieee754";
+  description = "Utilities for dealing with IEEE floating point numbers";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/indexed-profunctors.nix b/pkgs/indexed-profunctors.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2c6d66df05fc1ffe8f13484905b89986e99997fd
--- /dev/null
+++ b/pkgs/indexed-profunctors.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "indexed-profunctors";
+  version = "0.1.1";
+  sha256 = "5aba418a92a4f75efc626de7c0e4d88ed57033e0de0f2743ce6d9c9ef7626cb1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Utilities for indexed profunctors";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/ini.nix b/pkgs/ini.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d9016f6856542ec64c6e1fb36da519864328deef
--- /dev/null
+++ b/pkgs/ini.nix
@@ -0,0 +1,34 @@
+{ mkDerivation
+, attoparsec
+, base
+, hspec
+, lib
+, text
+, unordered-containers
+}:
+mkDerivation {
+  pname = "ini";
+  version = "0.4.2";
+  sha256 = "f79d8ceca14a0d4039e3443d34e9e33a390fd3c3562a8f0a301f45ba1161e936";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    attoparsec
+    base
+    text
+    unordered-containers
+  ];
+  testHaskellDepends = [ base hspec unordered-containers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/andreasabel/ini";
+  description = "Configuration files in the INI format";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/interpolate.nix b/pkgs/interpolate.nix
new file mode 100644
index 0000000000000000000000000000000000000000..87985ef1e1fb66ae4b1a7d2f6b64262a05b6d090
--- /dev/null
+++ b/pkgs/interpolate.nix
@@ -0,0 +1,43 @@
+{ mkDerivation
+, base
+, base-compat
+, bytestring
+, haskell-src-meta
+, hspec
+, lib
+, QuickCheck
+, quickcheck-instances
+, template-haskell
+, text
+}:
+mkDerivation {
+  pname = "interpolate";
+  version = "0.2.1";
+  sha256 = "2776dd5083aead756a761c3350a87312b4fbf4851555cf9560800bc3929c590e";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base haskell-src-meta template-haskell ];
+  testHaskellDepends = [
+    base
+    base-compat
+    bytestring
+    haskell-src-meta
+    hspec
+    QuickCheck
+    quickcheck-instances
+    template-haskell
+    text
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/sol/interpolate#readme";
+  description = "String interpolation done right";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/jira-wiki-markup.nix b/pkgs/jira-wiki-markup.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ab24837dcaf4071d122b6bb6b0927a9062ab1905
--- /dev/null
+++ b/pkgs/jira-wiki-markup.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, base, lib, mtl, parsec, tasty, tasty-hunit, text }:
+mkDerivation {
+  pname = "jira-wiki-markup";
+  version = "1.4.0";
+  sha256 = "1c210d3c575779a7b5b974e6873b265117944746862b5bb40684903a8decca5c";
+  revision = "1";
+  editedCabalFile = "043x87s8lyg0ck2krwdn1ncr0sxc7p03jmgykwyvg8c7i56n3m7n";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base mtl parsec text ];
+  executableHaskellDepends = [ base text ];
+  testHaskellDepends = [ base parsec tasty tasty-hunit text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/tarleb/jira-wiki-markup";
+  description = "Handle Jira wiki markup";
+  license = lib.licenses.mit;
+  mainProgram = "jira-wiki-markup";
+  broken = false;
+}
diff --git a/pkgs/js-chart.nix b/pkgs/js-chart.nix
new file mode 100644
index 0000000000000000000000000000000000000000..23ebecf972015e03af4e0a7af561fdb96857e692
--- /dev/null
+++ b/pkgs/js-chart.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "js-chart";
+  version = "2.9.4.1";
+  sha256 = "0a08efdd35bd1b8f293f9163f59305f31835304b74c3e3a1a840fc94bbc9bd0e";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jonascarpay/js-chart#readme";
+  description = "Obtain minified chart.js code";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/js-dgtable.nix b/pkgs/js-dgtable.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e7735e5f64a9c92cf834712641aa42cedc203e5b
--- /dev/null
+++ b/pkgs/js-dgtable.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "js-dgtable";
+  version = "0.5.2";
+  sha256 = "e28dd65bee8083b17210134e22e01c6349dc33c3b7bd17705973cd014e9f20ac";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ndmitchell/js-dgtable#readme";
+  description = "Obtain minified jquery.dgtable code";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/js-flot.nix b/pkgs/js-flot.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6f150018781cfb4c0cb3e0ca01a1681f0b4b2e40
--- /dev/null
+++ b/pkgs/js-flot.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, HTTP, lib }:
+mkDerivation {
+  pname = "js-flot";
+  version = "0.8.3";
+  sha256 = "1ba2f2a6b8d85da76c41f526c98903cbb107f8642e506c072c1e7e3c20fe5e7a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base HTTP ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ndmitchell/js-flot#readme";
+  description = "Obtain minified flot code";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/js-jquery.nix b/pkgs/js-jquery.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ab1d8628e19cc8d3187cbfddba35ad00319df8f3
--- /dev/null
+++ b/pkgs/js-jquery.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, HTTP, lib }:
+mkDerivation {
+  pname = "js-jquery";
+  version = "3.3.1";
+  sha256 = "e0e0681f0da1130ede4e03a051630ea439c458cb97216cdb01771ebdbe44069b";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base HTTP ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ndmitchell/js-jquery#readme";
+  description = "Obtain minified jQuery code";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/language-c.nix b/pkgs/language-c.nix
new file mode 100644
index 0000000000000000000000000000000000000000..9b50d34b24ca8e5263c78d9917ee8baddcb9ef21
--- /dev/null
+++ b/pkgs/language-c.nix
@@ -0,0 +1,48 @@
+{ mkDerivation
+, alex
+, array
+, base
+, bytestring
+, containers
+, deepseq
+, directory
+, filepath
+, happy
+, lib
+, mtl
+, pretty
+, process
+}:
+mkDerivation {
+  pname = "language-c";
+  version = "0.9.1";
+  sha256 = "94359566eb5da62f539fa62500f8a861db4e3eafb956d66c6821d6ffad96ad3c";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    base
+    bytestring
+    containers
+    deepseq
+    directory
+    filepath
+    mtl
+    pretty
+    process
+  ];
+  libraryToolDepends = [ alex happy ];
+  testHaskellDepends = [ base directory filepath process ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://visq.github.io/language-c/";
+  description = "Analysis and generation of C code";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/language-haskell-extract.nix b/pkgs/language-haskell-extract.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3e11a3930de901c798e8279fe9bba06316ced361
--- /dev/null
+++ b/pkgs/language-haskell-extract.nix
@@ -0,0 +1,32 @@
+{ mkDerivation
+, base
+, fetchgit
+, lib
+, regex-posix
+, template-haskell
+}:
+mkDerivation {
+  pname = "language-haskell-extract";
+  version = "0.2.3";
+  src = fetchgit {
+    url = "https://github.com/chessai/template-helper";
+    sha256 = "17n6k5myycklbc2grhz654idwmmzjcw217gy2w1h9jlaqv6c52q7";
+    rev = "f654f1e7ef47c591bb5ea23f1234289f99d09d05";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base regex-posix template-haskell ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/finnsson/template-helper";
+  description = "Module to automatically extract functions from the local code";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/lens-family-core.nix b/pkgs/lens-family-core.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6a9f216f856e59ec493898b3d77869819cd75a57
--- /dev/null
+++ b/pkgs/lens-family-core.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, containers, lib, transformers }:
+mkDerivation {
+  pname = "lens-family-core";
+  version = "2.1.2";
+  sha256 = "1b5a997276c8b77a96f99f48b95b204d34f3bb84fa3691747cd30bc8c76873b6";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers transformers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Haskell 2022 Lens Families";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/libxml.nix b/pkgs/libxml.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b8b860dca1fb8acd7bfbb73918754940ae7e90ec
--- /dev/null
+++ b/pkgs/libxml.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, bytestring, lib, libxml2, mtl }:
+mkDerivation {
+  pname = "libxml";
+  version = "0.1.1";
+  sha256 = "d1e92affb41e7abe1c7b692aa24ae47dbcf3636f2753bb85a3469c370d9afb07";
+  configureFlags = [
+    "--extra-include-dir=${libxml2.dev}/include/libxml2"
+  ];
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring mtl ];
+  librarySystemDepends = [ libxml2 ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Binding to libxml2";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/lift-type.nix b/pkgs/lift-type.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6456d0ec6a90015637b6ea257598fc2cf62a7e96
--- /dev/null
+++ b/pkgs/lift-type.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib, template-haskell }:
+mkDerivation {
+  pname = "lift-type";
+  version = "0.1.0.1";
+  sha256 = "aeb79e3090a38130fdb1da374e9e50e132e6bf5e20b45de58af5230d9c8f2585";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base template-haskell ];
+  testHaskellDepends = [ base template-haskell ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/parsonsmatt/lift-type#readme";
+  description = "Lift a type from a Typeable constraint to a Template Haskell type";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/logging-facade.nix b/pkgs/logging-facade.nix
new file mode 100644
index 0000000000000000000000000000000000000000..799563a0b8ade9f28b5b69d06400b305e3a7aecf
--- /dev/null
+++ b/pkgs/logging-facade.nix
@@ -0,0 +1,30 @@
+{ mkDerivation
+, base
+, call-stack
+, hspec
+, hspec-discover
+, lib
+, transformers
+}:
+mkDerivation {
+  pname = "logging-facade";
+  version = "0.3.1";
+  sha256 = "2b16b3353b77c6ab92a82dc3f04724447a67f02c76d50c274177d8778e14c166";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base call-stack transformers ];
+  testHaskellDepends = [ base hspec ];
+  testToolDepends = [ hspec-discover ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/sol/logging-facade#readme";
+  description = "Simple logging abstraction that allows multiple back-ends";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/logict.nix b/pkgs/logict.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8b903e8b3a0a4f0bf067b42e217f506c9f87433f
--- /dev/null
+++ b/pkgs/logict.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, async, base, lib, mtl, tasty, tasty-hunit }:
+mkDerivation {
+  pname = "logict";
+  version = "0.8.0.0";
+  sha256 = "fe926df295bc43df794247360e7a0a0dfdc778bce986f8aadba98fe52228fb56";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base mtl ];
+  testHaskellDepends = [ async base mtl tasty tasty-hunit ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Bodigrim/logict#readme";
+  description = "A backtracking logic-programming monad";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/lzma.nix b/pkgs/lzma.nix
new file mode 100644
index 0000000000000000000000000000000000000000..626755b0e467d3b0622cdb0e1cc883425970a6e9
--- /dev/null
+++ b/pkgs/lzma.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, base
+, bytestring
+, HUnit
+, lib
+, QuickCheck
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, xz
+}:
+mkDerivation {
+  pname = "lzma";
+  version = "0.0.0.4";
+  sha256 = "020d78ace1588910046c68d06d5c2b56331341e794b1c3115c3a5be54e0cc13b";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  librarySystemDepends = [ xz ];
+  testHaskellDepends = [
+    base
+    bytestring
+    HUnit
+    QuickCheck
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/hvr/lzma";
+  description = "LZMA/XZ compression and decompression";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/managed.nix b/pkgs/managed.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f6103e6d216b799b6541c159f7cec8ac1e206cac
--- /dev/null
+++ b/pkgs/managed.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib, transformers }:
+mkDerivation {
+  pname = "managed";
+  version = "1.0.9";
+  sha256 = "4d476da3b6e7a14220f2e3a764e5d43bf339e89a3dc46a7bdfdeb3856a54a86f";
+  revision = "2";
+  editedCabalFile = "1hnhi2d5s06bhp2klf9xw9yipymisfyfvb83b6rqfiy549z6ij27";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base transformers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A monad for managed values";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/mersenne-random.nix b/pkgs/mersenne-random.nix
new file mode 100644
index 0000000000000000000000000000000000000000..07b9cbe5de5fac4e6deb357470f1cbe66544d568
--- /dev/null
+++ b/pkgs/mersenne-random.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, old-time }:
+mkDerivation {
+  pname = "mersenne-random";
+  version = "1.0.0.1";
+  sha256 = "bcee8af246b6967b0c4326f3eec57611818dacc729b7c6bd42e1d363f9f878a4";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base old-time ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://code.haskell.org/~dons/code/mersenne-random";
+  description = "Generate high quality pseudorandom numbers using a SIMD Fast Mersenne Twister";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/microlens-ghc.nix b/pkgs/microlens-ghc.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7dcefe1b282117e20bbd1dfb3c79b758b919edd5
--- /dev/null
+++ b/pkgs/microlens-ghc.nix
@@ -0,0 +1,36 @@
+{ mkDerivation
+, array
+, base
+, bytestring
+, containers
+, lib
+, microlens
+, transformers
+}:
+mkDerivation {
+  pname = "microlens-ghc";
+  version = "0.4.14.0";
+  sha256 = "618fc86da128ac23e27d384e8d889486c13b9922884a6633a03199369f1592c7";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    base
+    bytestring
+    containers
+    microlens
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/monadfix/microlens";
+  description = "microlens + array, bytestring, containers, transformers";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/microlens-mtl.nix b/pkgs/microlens-mtl.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2fc39bcfa1aedd30b46dd00e4c595a5ffc31f5d7
--- /dev/null
+++ b/pkgs/microlens-mtl.nix
@@ -0,0 +1,34 @@
+{ mkDerivation
+, base
+, lib
+, microlens
+, mtl
+, transformers
+, transformers-compat
+}:
+mkDerivation {
+  pname = "microlens-mtl";
+  version = "0.2.0.2";
+  sha256 = "66971668f376717fdbe75e3b8ac99d2efd89c746b41355f6d388a63352a43278";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    microlens
+    mtl
+    transformers
+    transformers-compat
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/monadfix/microlens";
+  description = "microlens support for Reader/Writer/State from mtl";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/microlens-platform.nix b/pkgs/microlens-platform.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0fab1c8054a1e472ccdd7e97d2b4247d75acd709
--- /dev/null
+++ b/pkgs/microlens-platform.nix
@@ -0,0 +1,42 @@
+{ mkDerivation
+, base
+, hashable
+, lib
+, microlens
+, microlens-ghc
+, microlens-mtl
+, microlens-th
+, text
+, unordered-containers
+, vector
+}:
+mkDerivation {
+  pname = "microlens-platform";
+  version = "0.4.3.2";
+  sha256 = "52075123128d894ab43e89aef94d079c2465c07035e40738052553202fe5d38a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    hashable
+    microlens
+    microlens-ghc
+    microlens-mtl
+    microlens-th
+    text
+    unordered-containers
+    vector
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/monadfix/microlens";
+  description = "microlens + all batteries included (best for apps)";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/microlens-th.nix b/pkgs/microlens-th.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a07a54cf4766be3db7a455c4363fcae979b417ce
--- /dev/null
+++ b/pkgs/microlens-th.nix
@@ -0,0 +1,40 @@
+{ mkDerivation
+, base
+, containers
+, lib
+, microlens
+, tagged
+, template-haskell
+, th-abstraction
+, transformers
+}:
+mkDerivation {
+  pname = "microlens-th";
+  version = "0.4.3.10";
+  sha256 = "2c50100235949c00defcdb8c01d8eb5e2e45e524a9b552d3c0c8bb8224ece2b5";
+  revision = "1";
+  editedCabalFile = "142wksvc854qmd665qd6mwzik8g02yzfpjk1fpxw4mlcns06y4m2";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    microlens
+    template-haskell
+    th-abstraction
+    transformers
+  ];
+  testHaskellDepends = [ base microlens tagged ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/monadfix/microlens";
+  description = "Automatic generation of record lenses for microlens";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/microlens.nix b/pkgs/microlens.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2a58444f0489beb2d968af324c213653e0303069
--- /dev/null
+++ b/pkgs/microlens.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "microlens";
+  version = "0.4.13.0";
+  sha256 = "fc21d0f0ea30a3c73c681c2a2f5093dbebea8f3075243dcf2b8d234aacb210a3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/monadfix/microlens";
+  description = "A tiny lens library with no dependencies";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/microspec.nix b/pkgs/microspec.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d5d930ee1f8a5bc532b76f79780df4d0bdffa18f
--- /dev/null
+++ b/pkgs/microspec.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib, QuickCheck, time }:
+mkDerivation {
+  pname = "microspec";
+  version = "0.2.1.3";
+  sha256 = "8bf530a4bce642431014d5395e4c8ab412bed44fe6caa6c2e1239ea9577b2518";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base QuickCheck time ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Tiny QuickCheck test library with minimal dependencies";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/mime-types.nix b/pkgs/mime-types.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0e08872f5cff1af69c19b578fbf862ef3d4a2721
--- /dev/null
+++ b/pkgs/mime-types.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, bytestring, containers, lib, text }:
+mkDerivation {
+  pname = "mime-types";
+  version = "0.1.1.0";
+  sha256 = "ebd01ed4e37142cb3233d4ffe55fe879b64d4a0b5802c8bc6afa1c7670f9e11b";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring containers text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/yesodweb/wai";
+  description = "Basic mime-type handling types and functions";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/mmorph.nix b/pkgs/mmorph.nix
new file mode 100644
index 0000000000000000000000000000000000000000..fb9aa7a03e6eb060846d319cb2a3a06af1be5be0
--- /dev/null
+++ b/pkgs/mmorph.nix
@@ -0,0 +1,33 @@
+{ mkDerivation
+, base
+, lib
+, mtl
+, transformers
+, transformers-compat
+}:
+mkDerivation {
+  pname = "mmorph";
+  version = "1.2.0";
+  sha256 = "61338058eb676b466a462ca45d59f436a77a3bd6b816e4268c6d88522b6a4280";
+  revision = "3";
+  editedCabalFile = "1582vcpjiyimb1vwnhgq8gp805iziwa8sivv2frir0cgq4z236yz";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    mtl
+    transformers
+    transformers-compat
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Monad morphisms";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/monad-loops.nix b/pkgs/monad-loops.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d78e5f85f3af7d07e998edc9c01039f72a0e8deb
--- /dev/null
+++ b/pkgs/monad-loops.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib, tasty, tasty-hunit }:
+mkDerivation {
+  pname = "monad-loops";
+  version = "0.4.3";
+  sha256 = "7eaaaf6bc43661e9e86e310ff8c56fbea16eb6bf13c31a2e28103138ac164c18";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base tasty tasty-hunit ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/mokus0/monad-loops";
+  description = "Monadic loops";
+  license = lib.licenses.publicDomain;
+  broken = false;
+}
diff --git a/pkgs/monad-parallel.nix b/pkgs/monad-parallel.nix
new file mode 100644
index 0000000000000000000000000000000000000000..97d8b6a0bb5964482c82ef7c28327b73fe8ba555
--- /dev/null
+++ b/pkgs/monad-parallel.nix
@@ -0,0 +1,32 @@
+{ mkDerivation
+, base
+, lib
+, parallel
+, transformers
+, transformers-compat
+}:
+mkDerivation {
+  pname = "monad-parallel";
+  version = "0.8";
+  sha256 = "44658c1d4036a390a6c6597866e212f73c058ac3b369b8763e0f10c2382b20c9";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    parallel
+    transformers
+    transformers-compat
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://hub.darcs.net/blamario/SCC.wiki/";
+  description = "Parallel execution of monadic computations";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/monad-peel.nix b/pkgs/monad-peel.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f114f33ba5f0936b48736785e96c54e03eaea332
--- /dev/null
+++ b/pkgs/monad-peel.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, base
+, extensible-exceptions
+, HUnit
+, lib
+, test-framework
+, test-framework-hunit
+, transformers
+}:
+mkDerivation {
+  pname = "monad-peel";
+  version = "0.2.1.2";
+  sha256 = "2dd5e9090f3951dbc298e35c3cea7099818aba0485a55059475c4f346fc933f4";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    extensible-exceptions
+    transformers
+  ];
+  testHaskellDepends = [
+    base
+    extensible-exceptions
+    HUnit
+    test-framework
+    test-framework-hunit
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://andersk.mit.edu/haskell/monad-peel/";
+  description = "Lift control operations like exception catching through monad transformers";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/monads-tf.nix b/pkgs/monads-tf.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e4dbb5acda146ff7180ef790c15630751a48b2c3
--- /dev/null
+++ b/pkgs/monads-tf.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib, transformers }:
+mkDerivation {
+  pname = "monads-tf";
+  version = "0.1.0.3";
+  sha256 = "249dd2aa55c4dd6530f1e49f6b052ec91bc590ecfef2bd24c58837a3f8d4b0f1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base transformers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Monad classes, using type families";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/mtl-compat.nix b/pkgs/mtl-compat.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ab21668f343f4e3692fca46145f2697b15f4942f
--- /dev/null
+++ b/pkgs/mtl-compat.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, mtl }:
+mkDerivation {
+  pname = "mtl-compat";
+  version = "0.2.2";
+  sha256 = "1955398fe2115674f47f553b2caaf928c6aa3424271a5cd13bc191e54bfe3a9e";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base mtl ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-compat/mtl-compat";
+  description = "Backported Control.Monad.Except module from mtl";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/nanospec.nix b/pkgs/nanospec.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1b8bfc058b3ed5e63945e5911351322fd039ac0a
--- /dev/null
+++ b/pkgs/nanospec.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, hspec, lib, silently }:
+mkDerivation {
+  pname = "nanospec";
+  version = "0.2.2";
+  sha256 = "cf14ccc2b296c910000cdc3eb51b37389b3eb94139384b9555db79b8128595e5";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base hspec silently ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/hspec/nanospec#readme";
+  description = "A lightweight implementation of a subset of Hspec's API";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/nats.nix b/pkgs/nats.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d690d4dc80fdcdbd068d80381adc69f514fa8319
--- /dev/null
+++ b/pkgs/nats.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib }:
+mkDerivation {
+  pname = "nats";
+  version = "1.1.2";
+  sha256 = "b9d2d85d8612f9b06f8c9bfd1acecd848e03ab82cfb53afe1d93f5086b6e80ec";
+  revision = "4";
+  editedCabalFile = "0qccypqkfs7hi0v2bsjfqfhpi2jgsnpfwi9vmcqh7jxk5g08njk0";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/nats/";
+  description = "Natural numbers";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/natural-transformation.nix b/pkgs/natural-transformation.nix
new file mode 100644
index 0000000000000000000000000000000000000000..50369a079c548e282b11477cc1179bb625dd208c
--- /dev/null
+++ b/pkgs/natural-transformation.nix
@@ -0,0 +1,37 @@
+{ mkDerivation
+, base
+, containers
+, lib
+, quickcheck-instances
+, tasty
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "natural-transformation";
+  version = "0.4";
+  sha256 = "aac28e2c1147ed77c1ec0f0eb607a577fa26d0fd67474293ba860ec124efc8af";
+  revision = "10";
+  editedCabalFile = "18d14fasp1l5xdfgp8swgcyyjd3irqj19cn298ksx9wiw43j818p";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [
+    base
+    containers
+    quickcheck-instances
+    tasty
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ku-fpg/natural-transformation";
+  description = "A natural transformation package";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/neat-interpolation.nix b/pkgs/neat-interpolation.nix
new file mode 100644
index 0000000000000000000000000000000000000000..be5e3ce2b081515688ef4312fd1be3f15d4f99f8
--- /dev/null
+++ b/pkgs/neat-interpolation.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, base
+, lib
+, megaparsec
+, QuickCheck
+, quickcheck-instances
+, rerebase
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, template-haskell
+, text
+}:
+mkDerivation {
+  pname = "neat-interpolation";
+  version = "0.5.1.3";
+  sha256 = "1fab6182a280d48ffffccb7fbe09c4f5bf67f4b29df5d6651d813f1336636507";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base megaparsec template-haskell text ];
+  testHaskellDepends = [
+    QuickCheck
+    quickcheck-instances
+    rerebase
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/nikita-volkov/neat-interpolation";
+  description = "A quasiquoter for neat and simple multiline text interpolation";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/network-bsd.nix b/pkgs/network-bsd.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2fe0a74849fc0aae50d78e8698956cfe531c132e
--- /dev/null
+++ b/pkgs/network-bsd.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, deepseq, lib, network }:
+mkDerivation {
+  pname = "network-bsd";
+  version = "2.8.1.0";
+  sha256 = "d94961ca15c42c798d19cde540ec12b25cc43435fb95e682399d6c1a02022d4e";
+  revision = "4";
+  editedCabalFile = "1gd9a8j7fwg0jz0s6il5fk9sl0hm19ja1w56ix51wa0qi2h5x56d";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq network ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/network-bsd";
+  description = "POSIX network database (<netdb.h>) API";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/network-info.nix b/pkgs/network-info.nix
new file mode 100644
index 0000000000000000000000000000000000000000..afd3096aae61461510c8506ecf16128db474e9c3
--- /dev/null
+++ b/pkgs/network-info.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "network-info";
+  version = "0.2.1";
+  sha256 = "9b2d88312fc8280351d5003200cc07decbb865f85d3aa7b1094b238bd6a8b404";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/jacobstanley/network-info";
+  description = "Access the local computer's basic network configuration";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/network-run.nix b/pkgs/network-run.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b4ceea7d38202ca02ca4f7f045afd8bc858490e5
--- /dev/null
+++ b/pkgs/network-run.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, bytestring, lib, network }:
+mkDerivation {
+  pname = "network-run";
+  version = "0.2.4";
+  sha256 = "f415c619eeb34a18493dfcd634049c7a1da1b02615e1387b0096c80126af6d70";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring network ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Simple network runner library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/numtype-dk.nix b/pkgs/numtype-dk.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2e530d6ae4284e481d1890b5b2ebcf3158c19e5f
--- /dev/null
+++ b/pkgs/numtype-dk.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "numtype-dk";
+  version = "0.5.0.3";
+  sha256 = "f49351544dfc7920df46d24f3734f116f32ded5add7bb950b0e00e2a10c7bd9e";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/bjornbm/numtype-dk";
+  description = "Type-level integers, using TypeNats, Data Kinds, and Closed Type Families";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/old-locale.nix b/pkgs/old-locale.nix
new file mode 100644
index 0000000000000000000000000000000000000000..496352cfc5e5f12e4e9e7a8bda21530dfe9af421
--- /dev/null
+++ b/pkgs/old-locale.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "old-locale";
+  version = "1.0.0.7";
+  sha256 = "dbaf8bf6b888fb98845705079296a23c3f40ee2f449df7312f7f7f1de18d7b50";
+  revision = "2";
+  editedCabalFile = "04b9vn007hlvsrx4ksd3r8r3kbyaj2kvwxchdrmd4370qzi8p6gs";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "locale library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/old-time.nix b/pkgs/old-time.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ad781becc603b09d948478c150bd918edb3bb991
--- /dev/null
+++ b/pkgs/old-time.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib, old-locale }:
+mkDerivation {
+  pname = "old-time";
+  version = "1.1.0.3";
+  sha256 = "1ccb158b0f7851715d36b757c523b026ca1541e2030d02239802ba39b4112bc1";
+  revision = "2";
+  editedCabalFile = "1j6ln1dkvhdvnwl33bp0xf9lhc4sybqk0aw42p8cq81xwwzbn7y9";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base old-locale ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Time library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/optional-args.nix b/pkgs/optional-args.nix
new file mode 100644
index 0000000000000000000000000000000000000000..25b1e5436d3f0bec2a7ceb3b89abadb90feb8de1
--- /dev/null
+++ b/pkgs/optional-args.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "optional-args";
+  version = "1.0.2";
+  sha256 = "2e3454ad77cba80b15c02dbe1915889fafa81a22deb7fe5e7e01b0dd8d85b0e4";
+  revision = "2";
+  editedCabalFile = "1f3j092lk2qa6hi2p4iciyyxg27mzm37dlcw5hg3ch2wh6jw0a37";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Optional function arguments";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/options.nix b/pkgs/options.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7048aa4eb51a953e689364cb9860412e8998d3fb
--- /dev/null
+++ b/pkgs/options.nix
@@ -0,0 +1,37 @@
+{ mkDerivation
+, base
+, chell
+, chell-quickcheck
+, containers
+, lib
+, monads-tf
+, transformers
+}:
+mkDerivation {
+  pname = "options";
+  version = "1.2.1.1";
+  sha256 = "283eea9ae2c539830c6c65f5c03fb00626cfd1274da0526c285c146fc3065a62";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers monads-tf transformers ];
+  testHaskellDepends = [
+    base
+    chell
+    chell-quickcheck
+    containers
+    monads-tf
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://john-millikin.com/software/haskell-options/";
+  description = "A powerful and easy-to-use command-line option parser";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/ordered-containers.nix b/pkgs/ordered-containers.nix
new file mode 100644
index 0000000000000000000000000000000000000000..89a1831779488e332f462765a91fd137cbfbb464
--- /dev/null
+++ b/pkgs/ordered-containers.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, containers, lib }:
+mkDerivation {
+  pname = "ordered-containers";
+  version = "0.2.3";
+  sha256 = "36849705752f3bc367fa1d172e1ec57375418341e9d74de572ae1b6fb56a81a3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Set- and Map-like types that remember the order elements were inserted";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/parsec-class.nix b/pkgs/parsec-class.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5994f8d7a2fd964ddd2ba2f19518492e31802496
--- /dev/null
+++ b/pkgs/parsec-class.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, parsec }:
+mkDerivation {
+  pname = "parsec-class";
+  version = "1.0.0.0";
+  sha256 = "029c4ec5e6b0efd0505f1051c29c02060ddab3018b9aef4c4ae96a99f58e1773";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base parsec ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/peti/parsec-class";
+  description = "Class of types that can be constructed from their text representation";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/parsec.nix b/pkgs/parsec.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1612a7fc11549f581832eee0e47234bfb70d8dec
--- /dev/null
+++ b/pkgs/parsec.nix
@@ -0,0 +1,30 @@
+{ mkDerivation
+, base
+, bytestring
+, lib
+, mtl
+, tasty
+, tasty-hunit
+, text
+}:
+mkDerivation {
+  pname = "parsec";
+  version = "3.1.15.1";
+  sha256 = "abe4901531185505d4360e633e8d79ccc90325a0bac7f666eecad30f7f7f98dd";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring mtl text ];
+  testHaskellDepends = [ base mtl tasty tasty-hunit ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/parsec";
+  description = "Monadic parser combinators";
+  license = lib.licenses.bsd2;
+  broken = false;
+}
diff --git a/pkgs/parser-combinators.nix b/pkgs/parser-combinators.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d2b2f2db9160e28af297b434bd86e7e8622de493
--- /dev/null
+++ b/pkgs/parser-combinators.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "parser-combinators";
+  version = "1.3.0";
+  sha256 = "9310ef0d49f8a8922acda10b1cded9854cbee04dea717effc6ee5983072e4447";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/mrkkrp/parser-combinators";
+  description = "Lightweight package providing commonly useful parser combinators";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/parsers-megaparsec.nix b/pkgs/parsers-megaparsec.nix
new file mode 100644
index 0000000000000000000000000000000000000000..fee09639a5c0f8946897238906f9e71ccf4a4b95
--- /dev/null
+++ b/pkgs/parsers-megaparsec.nix
@@ -0,0 +1,42 @@
+{ mkDerivation
+, base
+, fail
+, lib
+, megaparsec
+, mtl
+, parsers
+, semigroups
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "parsers-megaparsec";
+  version = "0.1.0.1";
+  sha256 = "a8e774d4d3ea2f79f1d22665c46e98f5f463832b433940de3feeea5876b7fdb9";
+  revision = "1";
+  editedCabalFile = "16a7h16lq27930l0hpa8z97b4p6cwrz3wdxs67mfxvz2ndngm87d";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    fail
+    megaparsec
+    mtl
+    parsers
+    semigroups
+    text
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/qfpl/parsers-megaparsec";
+  description = "`parsers` instances for Megaparsec";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/path-pieces.nix b/pkgs/path-pieces.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ae5cc95a1ffb54cdb67a2824b8452105f3ef3c64
--- /dev/null
+++ b/pkgs/path-pieces.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, hspec, HUnit, lib, QuickCheck, text, time }:
+mkDerivation {
+  pname = "path-pieces";
+  version = "0.2.1";
+  sha256 = "080bd49f53e20597ca3e5962e0c279a3422345f5b088840a30a751cd76d4a36f";
+  revision = "1";
+  editedCabalFile = "0p7wsphh513s8l5d62lzgbhk2l1h6kj5y7bc27qqjsry9g8ah4y7";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base text time ];
+  testHaskellDepends = [ base hspec HUnit QuickCheck text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Components of paths";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/patience.nix b/pkgs/patience.nix
new file mode 100644
index 0000000000000000000000000000000000000000..db7e06b67eadf1353af60e96af397a479a4f6f82
--- /dev/null
+++ b/pkgs/patience.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, containers, lib }:
+mkDerivation {
+  pname = "patience";
+  version = "0.3";
+  sha256 = "715cd08c99c0417462cee383c437c2b4384b6abbc87999fd092c8cf8e8192bc4";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/chessai/patience";
+  description = "Patience diff and longest increasing subsequence";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/pcre-light.nix b/pkgs/pcre-light.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b6feed21748c6f0f7b1e6b54dfe4fb8fbb3bc87a
--- /dev/null
+++ b/pkgs/pcre-light.nix
@@ -0,0 +1,31 @@
+{ mkDerivation
+, base
+, bytestring
+, containers
+, HUnit
+, lib
+, mtl
+, pcre
+}:
+mkDerivation {
+  pname = "pcre-light";
+  version = "0.4.1.0";
+  sha256 = "16f6bfaa320bba91cd0c1a502d871c1c7a3a2de2d58dfaa2d90dba6558d51b53";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  librarySystemDepends = [ pcre ];
+  testHaskellDepends = [ base bytestring containers HUnit mtl ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Daniel-Diaz/pcre-light";
+  description = "Portable regex library for Perl 5 compatible regular expressions";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/persistent-template.nix b/pkgs/persistent-template.nix
new file mode 100644
index 0000000000000000000000000000000000000000..733b1648e92c7117c38650ad8fdbe61b2e459a29
--- /dev/null
+++ b/pkgs/persistent-template.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "persistent-template";
+  version = "2.12.0.0";
+  sha256 = "dc488b567d373ebfbf5f3df8bba240e6203d1b13556872648d5f0d228fd02c31";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://www.yesodweb.com/book/persistent";
+  description = "Type-safe, non-relational, multi-backend persistence";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/pgp-wordlist.nix b/pkgs/pgp-wordlist.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1ae1fc8b6384cd6e1a8b85749f71087322239eb9
--- /dev/null
+++ b/pkgs/pgp-wordlist.nix
@@ -0,0 +1,45 @@
+{ mkDerivation
+, base
+, bytestring
+, containers
+, deepseq
+, doctest
+, HUnit
+, lib
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, text
+, vector
+}:
+mkDerivation {
+  pname = "pgp-wordlist";
+  version = "0.1.0.3";
+  sha256 = "ef3b560276981def53abc01cbe3cb4d0bece8eaa8a210ee890729ee500c4e695";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring containers text vector ];
+  testHaskellDepends = [
+    base
+    bytestring
+    deepseq
+    doctest
+    HUnit
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    text
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/quchen/pgp-wordlist";
+  description = "Translate between binary data and a human-readable collection of words";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/pipes.nix b/pkgs/pipes.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a16ff52df1cf95e4d48b7620fcbfa67ea31aa973
--- /dev/null
+++ b/pkgs/pipes.nix
@@ -0,0 +1,57 @@
+{ mkDerivation
+, base
+, criterion
+, exceptions
+, lib
+, mmorph
+, mtl
+, optparse-applicative
+, QuickCheck
+, test-framework
+, test-framework-quickcheck2
+, transformers
+, void
+}:
+mkDerivation {
+  pname = "pipes";
+  version = "4.3.16";
+  sha256 = "f4e16ecf010fd681a56e6216ab1bd429f3c9bc962ec032e32cfd23e374e97498";
+  revision = "6";
+  editedCabalFile = "16s8a1ijakhsk73ny2vrw6a8r2dszgncd0wk735ii6csg3l2c9pm";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    exceptions
+    mmorph
+    mtl
+    transformers
+    void
+  ];
+  testHaskellDepends = [
+    base
+    mtl
+    QuickCheck
+    test-framework
+    test-framework-quickcheck2
+    transformers
+  ];
+  benchmarkHaskellDepends = [
+    base
+    criterion
+    mtl
+    optparse-applicative
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Compositional pipelines";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/polyparse.nix b/pkgs/polyparse.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f5b65f293c40d3262a081792a1f7a4e995587ee5
--- /dev/null
+++ b/pkgs/polyparse.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, bytestring, lib, text }:
+mkDerivation {
+  pname = "polyparse";
+  version = "1.13";
+  sha256 = "1c4c72980e1e5a4f07fea65ca08b2399581d2a6aa21eb1078f7ad286c279707b";
+  revision = "5";
+  editedCabalFile = "05qrn5pfdy45x1nkx7dvhnxs9j6d6cssws4kwn2sl3n9qmagr8mc";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://code.haskell.org/~malcolm/polyparse/";
+  description = "A variety of alternative parser combinator libraries";
+  license = "LGPL";
+  broken = false;
+}
diff --git a/pkgs/polysemy-test.nix b/pkgs/polysemy-test.nix
new file mode 100644
index 0000000000000000000000000000000000000000..94edbc234a04bbf8b56860e5ec0f1e9eacd2b186
--- /dev/null
+++ b/pkgs/polysemy-test.nix
@@ -0,0 +1,50 @@
+{ mkDerivation
+, base
+, hedgehog
+, incipit-core
+, lib
+, path
+, path-io
+, polysemy
+, tasty
+, tasty-hedgehog
+, transformers
+}:
+mkDerivation {
+  pname = "polysemy-test";
+  version = "0.6.0.0";
+  sha256 = "f0f6a7c812875c9a2263c7a1a093fdc8cb653f4c5384843231cbdd4e25797d24";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    base
+    hedgehog
+    incipit-core
+    path
+    path-io
+    polysemy
+    tasty
+    tasty-hedgehog
+    transformers
+  ];
+  testHaskellDepends = [
+    base
+    hedgehog
+    incipit-core
+    path
+    polysemy
+    tasty
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/tek/polysemy-test#readme";
+  description = "Polysemy Effects for Testing";
+  license = "BSD-2-Clause-Patent";
+  broken = false;
+}
diff --git a/pkgs/port-utils.nix b/pkgs/port-utils.nix
new file mode 100644
index 0000000000000000000000000000000000000000..28531ecf459ff24ca166583a9053843c2de413e3
--- /dev/null
+++ b/pkgs/port-utils.nix
@@ -0,0 +1,30 @@
+{ mkDerivation
+, async
+, base
+, hspec
+, lib
+, network
+, stm
+, transformers
+}:
+mkDerivation {
+  pname = "port-utils";
+  version = "0.2.1.0";
+  sha256 = "b6f830946a9daa829bb14dc7f105f28ae2cfa2ee8540af8550e3c975ac7117de";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base network ];
+  testHaskellDepends = [ async base hspec network stm transformers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jfischoff/port-utils#readme";
+  description = "Utilities for creating and waiting on ports";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/postgres-options.nix b/pkgs/postgres-options.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c7188a3dd7c1eb01e2b4cb9a79234197a58df19e
--- /dev/null
+++ b/pkgs/postgres-options.nix
@@ -0,0 +1,36 @@
+{ mkDerivation
+, base
+, bytestring
+, generic-monoid
+, hspec
+, lib
+, split
+, uri-bytestring
+}:
+mkDerivation {
+  pname = "postgres-options";
+  version = "0.2.0.0";
+  sha256 = "c45f459abcc797d0707c1931301434037acdfada33e47c843f219cf35609d9b5";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    generic-monoid
+    split
+    uri-bytestring
+  ];
+  testHaskellDepends = [ base hspec ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jfischoff/postgres-options#readme";
+  description = "An Options type representing options for postgres connections";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/pretty-hex.nix b/pkgs/pretty-hex.nix
new file mode 100644
index 0000000000000000000000000000000000000000..4f7de0d3c108cd250a6aa4d40f647232521e2681
--- /dev/null
+++ b/pkgs/pretty-hex.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, bytestring, lib }:
+mkDerivation {
+  pname = "pretty-hex";
+  version = "1.1";
+  sha256 = "27c78f299151a9a844f4a2c0f629fb99160901e78f78a688cb088bd532501731";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A library for hex dumps of ByteStrings";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/prettyprinter.nix b/pkgs/prettyprinter.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c5f7cbceee45991faa23f11b1707b8ceacbb54a4
--- /dev/null
+++ b/pkgs/prettyprinter.nix
@@ -0,0 +1,66 @@
+{ mkDerivation
+, ansi-wl-pprint
+, base
+, base-compat
+, bytestring
+, containers
+, deepseq
+, doctest
+, gauge
+, lib
+, mtl
+, pgp-wordlist
+, QuickCheck
+, quickcheck-instances
+, random
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "prettyprinter";
+  version = "1.7.1";
+  sha256 = "5e6ea6903114fa118fcc359633dfb7ecddecb92c06c853d02a77b72b251f0b45";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base text ];
+  testHaskellDepends = [
+    base
+    bytestring
+    doctest
+    pgp-wordlist
+    QuickCheck
+    quickcheck-instances
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    text
+  ];
+  benchmarkHaskellDepends = [
+    ansi-wl-pprint
+    base
+    base-compat
+    containers
+    deepseq
+    gauge
+    mtl
+    QuickCheck
+    random
+    text
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/quchen/prettyprinter";
+  description = "A modern, easy to use, well-documented, extensible pretty-printer";
+  license = lib.licenses.bsd2;
+  broken = false;
+}
diff --git a/pkgs/primes.nix b/pkgs/primes.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b27178e5e79819db9f97f61dc1252e9c5e34c230
--- /dev/null
+++ b/pkgs/primes.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "primes";
+  version = "0.2.1.0";
+  sha256 = "74d66558fb638ea4d31eae2fe1a294cb5a9d64491314305d74a11d93f277c65b";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/sebfisch/primes";
+  description = "Efficient, purely functional generation of prime numbers";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/process-extras.nix b/pkgs/process-extras.nix
new file mode 100644
index 0000000000000000000000000000000000000000..be6a1dbf7a4cd99b12af9572947c2ffbd7a85197
--- /dev/null
+++ b/pkgs/process-extras.nix
@@ -0,0 +1,44 @@
+{ mkDerivation
+, base
+, bytestring
+, data-default
+, deepseq
+, generic-deriving
+, HUnit
+, lib
+, ListLike
+, mtl
+, process
+, text
+}:
+mkDerivation {
+  pname = "process-extras";
+  version = "0.7.4";
+  sha256 = "293e75f849254ce0ce0d7fa659681917e07a557c602505a2f9e20777467e984e";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    data-default
+    deepseq
+    generic-deriving
+    ListLike
+    mtl
+    process
+    text
+  ];
+  testHaskellDepends = [ base HUnit ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/seereason/process-extras";
+  description = "Process extras";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/pureMD5.nix b/pkgs/pureMD5.nix
new file mode 100644
index 0000000000000000000000000000000000000000..10b506304f28e35cbf7a801b130ab289b14a6f7b
--- /dev/null
+++ b/pkgs/pureMD5.nix
@@ -0,0 +1,51 @@
+{ mkDerivation
+, base
+, binary
+, bytestring
+, cereal
+, crypto-api
+, crypto-api-tests
+, lib
+, pretty-hex
+, QuickCheck
+, tagged
+, test-framework
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "pureMD5";
+  version = "2.1.4";
+  sha256 = "782beec0a020e30eae65b7ce735c0cbb3e8bd886e2e564ac9d06f21479df9363";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    binary
+    bytestring
+    cereal
+    crypto-api
+    tagged
+  ];
+  testHaskellDepends = [
+    base
+    binary
+    bytestring
+    cereal
+    crypto-api-tests
+    pretty-hex
+    QuickCheck
+    test-framework
+    test-framework-quickcheck2
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A Haskell-only implementation of the MD5 digest (hash) algorithm";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/quickcheck-assertions.nix b/pkgs/quickcheck-assertions.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2378df34b49f155215ad86b3bb0178c7b7b21fce
--- /dev/null
+++ b/pkgs/quickcheck-assertions.nix
@@ -0,0 +1,29 @@
+{ mkDerivation
+, base
+, hspec
+, ieee754
+, lib
+, pretty-show
+, QuickCheck
+}:
+mkDerivation {
+  pname = "quickcheck-assertions";
+  version = "0.3.0";
+  sha256 = "9b0328a788dcac0824a7d7496ab403eef04170551255c9e58fb6e2e319a9cacf";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ieee754 pretty-show QuickCheck ];
+  testHaskellDepends = [ base hspec ieee754 QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/s9gf4ult/quickcheck-assertions";
+  description = "HUnit like assertions for QuickCheck";
+  license = lib.licenses.lgpl3Only;
+  broken = false;
+}
diff --git a/pkgs/quickcheck-classes-base.nix b/pkgs/quickcheck-classes-base.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e0e059655bd187a064bc5fe5e84e9d2bd3b61a07
--- /dev/null
+++ b/pkgs/quickcheck-classes-base.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, base, containers, lib, QuickCheck, transformers }:
+mkDerivation {
+  pname = "quickcheck-classes-base";
+  version = "0.6.2.0";
+  sha256 = "901945e1c442c558d739bc28088a5564f25c4f3615ce7f03b67c5ecc087e8699";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    QuickCheck
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/andrewthad/quickcheck-classes#readme";
+  description = "QuickCheck common typeclasses from `base`";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/quickcheck-io.nix b/pkgs/quickcheck-io.nix
new file mode 100644
index 0000000000000000000000000000000000000000..37c6dae56d1a3d5af8521aa9740137a11587555f
--- /dev/null
+++ b/pkgs/quickcheck-io.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, HUnit, lib, QuickCheck }:
+mkDerivation {
+  pname = "quickcheck-io";
+  version = "0.2.0";
+  sha256 = "fb779119d79fe08ff4d502fb6869a70c9a8d5fd8ae0959f605c3c937efd96422";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base HUnit QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/hspec/quickcheck-io#readme";
+  description = "Use HUnit assertions as QuickCheck properties";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/quickcheck-text.nix b/pkgs/quickcheck-text.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0c439d47c24c23c1f224a4cb35c8e53e925c43b0
--- /dev/null
+++ b/pkgs/quickcheck-text.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, binary, bytestring, lib, QuickCheck, text }:
+mkDerivation {
+  pname = "quickcheck-text";
+  version = "0.1.2.1";
+  sha256 = "4442fdb8ae6cd469c04957d34fee46039c9dc0ddce23ce6050babe6826d0ab09";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base binary bytestring QuickCheck text ];
+  testHaskellDepends = [ base bytestring QuickCheck text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/olorin/quickcheck-text";
+  description = "Alternative arbitrary instance for Text";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/quickcheck-unicode.nix b/pkgs/quickcheck-unicode.nix
new file mode 100644
index 0000000000000000000000000000000000000000..44c86cfcebd9d036babc7adfb6b695eda1d34b1c
--- /dev/null
+++ b/pkgs/quickcheck-unicode.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, QuickCheck }:
+mkDerivation {
+  pname = "quickcheck-unicode";
+  version = "1.0.1.0";
+  sha256 = "132005ea7edff35e95139c36232a70698cd0f4f4d79dfaa4e66fbcf557d08368";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/bos/quickcheck-unicode";
+  description = "Generator and shrink functions for testing Unicode-related software";
+  license = lib.licenses.bsd2;
+  broken = false;
+}
diff --git a/pkgs/random-bytestring.nix b/pkgs/random-bytestring.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a9f872a041d77961db1a0013688ca2f7d9145537
--- /dev/null
+++ b/pkgs/random-bytestring.nix
@@ -0,0 +1,47 @@
+{ mkDerivation
+, async
+, base
+, bytestring
+, criterion
+, cryptonite
+, entropy
+, ghc-prim
+, lib
+, mwc-random
+, pcg-random
+, primitive
+, random
+}:
+mkDerivation {
+  pname = "random-bytestring";
+  version = "0.1.4";
+  sha256 = "920c6feea2e360a96275993191cc89e72784a3787bf4ad7d53eff58e5f209638";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring mwc-random pcg-random ];
+  benchmarkHaskellDepends = [
+    async
+    base
+    bytestring
+    criterion
+    cryptonite
+    entropy
+    ghc-prim
+    mwc-random
+    pcg-random
+    primitive
+    random
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://www.github.com/larskuhtz/random-bytestring";
+  description = "Efficient generation of random bytestrings";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/random.nix b/pkgs/random.nix
new file mode 100644
index 0000000000000000000000000000000000000000..88b6aad6cdf00b2ac7a11c0d2eb5a43412e25814
--- /dev/null
+++ b/pkgs/random.nix
@@ -0,0 +1,64 @@
+{ mkDerivation
+, base
+, bytestring
+, containers
+, deepseq
+, doctest
+, lib
+, mtl
+, primitive
+, rdtsc
+, smallcheck
+, split
+, splitmix
+, stm
+, tasty
+, tasty-bench
+, tasty-hunit
+, tasty-inspection-testing
+, tasty-smallcheck
+, time
+, transformers
+}:
+mkDerivation {
+  pname = "random";
+  version = "1.2.1.1";
+  sha256 = "3e1272f7ed6a4d7bd1712b90143ec326fee9b225789222379fea20a9c90c9b76";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring deepseq mtl splitmix ];
+  testHaskellDepends = [
+    base
+    bytestring
+    containers
+    doctest
+    smallcheck
+    stm
+    tasty
+    tasty-hunit
+    tasty-inspection-testing
+    tasty-smallcheck
+    transformers
+  ];
+  benchmarkHaskellDepends = [
+    base
+    mtl
+    primitive
+    rdtsc
+    split
+    splitmix
+    tasty-bench
+    time
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Pseudo-random number generation";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/raw-strings-qq.nix b/pkgs/raw-strings-qq.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d441914c7daad1b222f246334bab4eafc4de44eb
--- /dev/null
+++ b/pkgs/raw-strings-qq.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, HUnit, lib, template-haskell }:
+mkDerivation {
+  pname = "raw-strings-qq";
+  version = "1.1";
+  sha256 = "2e011ec26aeaa53ab43c30b7d9b5b0f661f24b4ebef8884c12c571353c0fbed3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base template-haskell ];
+  testHaskellDepends = [ base HUnit ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/23Skidoo/raw-strings-qq";
+  description = "Raw string literals for Haskell";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/rdtsc.nix b/pkgs/rdtsc.nix
new file mode 100644
index 0000000000000000000000000000000000000000..dc5b66f0e4b5692d0bb2ed79788c9b4558089880
--- /dev/null
+++ b/pkgs/rdtsc.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "rdtsc";
+  version = "1.3.0.1";
+  sha256 = "54c9a925f68d6c60b405e92f9d3bd9ebfc25cce0c72d2313a6c7e1b7cc2ed950";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/mgrabmueller/rdtsc";
+  description = "Binding for the rdtsc machine instruction";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/refact.nix b/pkgs/refact.nix
new file mode 100644
index 0000000000000000000000000000000000000000..15b91ece26edd40d666945141ac1f347776b71a5
--- /dev/null
+++ b/pkgs/refact.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "refact";
+  version = "0.3.0.2";
+  sha256 = "0ad029727797c8ca5d179c7abf1bfc135d86a7d72cf93785ee12ad243aeb1f6c";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Specify refactorings to perform with apply-refact";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/regex-base.nix b/pkgs/regex-base.nix
new file mode 100644
index 0000000000000000000000000000000000000000..38cc3c96dfd1d4a48c757ca8951a322e42d62075
--- /dev/null
+++ b/pkgs/regex-base.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, array, base, bytestring, containers, lib, text }:
+mkDerivation {
+  pname = "regex-base";
+  version = "0.94.0.2";
+  sha256 = "7b99408f580f5bb67a1c413e0bc735886608251331ad36322020f2169aea2ef1";
+  revision = "1";
+  editedCabalFile = "1k2gzjm7xz69f7zr08wh2wzb5dhb659cvimsvx0g9p8cf5f45x2g";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ array base bytestring containers text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://wiki.haskell.org/Regular_expressions";
+  description = "Common \"Text.Regex.*\" API for Regex matching";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/regex-compat.nix b/pkgs/regex-compat.nix
new file mode 100644
index 0000000000000000000000000000000000000000..bea5efae234af4046ceac147a54db170ce56c5e9
--- /dev/null
+++ b/pkgs/regex-compat.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, array, base, lib, regex-base, regex-posix }:
+mkDerivation {
+  pname = "regex-compat";
+  version = "0.95.2.1";
+  sha256 = "8f7b386c72fd605a292edfb809b8620245b4a3ab7af192ad79e36778596e7947";
+  revision = "2";
+  editedCabalFile = "0ldqpdxikm17ydrkfmichflkdqdrkspv4r0qy3zbdgqf5033pj4n";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ array base regex-base regex-posix ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://wiki.haskell.org/Regular_expressions";
+  description = "Replaces/enhances \"Text.Regex\"";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/regex-pcre-builtin.nix b/pkgs/regex-pcre-builtin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b44f19c5b9eb89eb054e872941b36f128d9da9d0
--- /dev/null
+++ b/pkgs/regex-pcre-builtin.nix
@@ -0,0 +1,37 @@
+{ mkDerivation
+, array
+, base
+, bytestring
+, containers
+, lib
+, regex-base
+, text
+}:
+mkDerivation {
+  pname = "regex-pcre-builtin";
+  version = "0.95.2.3.8.44";
+  sha256 = "cacea6a45faf93df8afbf50ecb09f87acabfed0477cba4746205649eb52ec55e";
+  revision = "2";
+  editedCabalFile = "19ryjv8va9bjwhfk4v81lsvi91aj7aw1cflggywjpmw001qr419d";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    base
+    bytestring
+    containers
+    regex-base
+    text
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "PCRE Backend for \"Text.Regex\" (regex-base)";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/regex-posix.nix b/pkgs/regex-posix.nix
new file mode 100644
index 0000000000000000000000000000000000000000..4cccd4aa5b76d7182e9ec7991ff2a6cf235efdd7
--- /dev/null
+++ b/pkgs/regex-posix.nix
@@ -0,0 +1,35 @@
+{ mkDerivation
+, array
+, base
+, bytestring
+, containers
+, lib
+, regex-base
+}:
+mkDerivation {
+  pname = "regex-posix";
+  version = "0.96.0.1";
+  sha256 = "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c";
+  revision = "1";
+  editedCabalFile = "1x5xkfddn3llxk4fngqbd8njssrwb7jlp0a0jxfrgdivbava9fwx";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    base
+    bytestring
+    containers
+    regex-base
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "POSIX Backend for \"Text.Regex\" (regex-base)";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/repline.nix b/pkgs/repline.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6c40338d101df68cf9d23aedde1e348c92edf937
--- /dev/null
+++ b/pkgs/repline.nix
@@ -0,0 +1,37 @@
+{ mkDerivation
+, base
+, containers
+, exceptions
+, haskeline
+, lib
+, mtl
+, process
+}:
+mkDerivation {
+  pname = "repline";
+  version = "0.4.2.0";
+  sha256 = "6181b3f106b4059eb1c86c4a442083c29335a1d9a3e7cfffecb962ec05b08d5a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    exceptions
+    haskeline
+    mtl
+    process
+  ];
+  testHaskellDepends = [ base containers mtl process ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/sdiehl/repline";
+  description = "Haskeline wrapper for GHCi-like REPL interfaces";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/resolv.nix b/pkgs/resolv.nix
new file mode 100644
index 0000000000000000000000000000000000000000..80f5eacaf749b6a92f1954598fc2e68ae7e5354d
--- /dev/null
+++ b/pkgs/resolv.nix
@@ -0,0 +1,47 @@
+{ mkDerivation
+, base
+, base16-bytestring
+, binary
+, bytestring
+, containers
+, directory
+, filepath
+, lib
+, tasty
+, tasty-hunit
+}:
+mkDerivation {
+  pname = "resolv";
+  version = "0.1.2.0";
+  sha256 = "81a2bafad484db123cf8d17a02d98bb388a127fd0f822fa022589468a0e64671";
+  revision = "5";
+  editedCabalFile = "0df5y8bj9bxjmqnkvpwxvb17k70g1i174xs6vfrv9f1lys7xkqk1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    base16-bytestring
+    binary
+    bytestring
+    containers
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    directory
+    filepath
+    tasty
+    tasty-hunit
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Domain Name Service (DNS) lookup via the libresolv standard library routines";
+  license = lib.licenses.gpl2Plus;
+  broken = false;
+}
diff --git a/pkgs/safe.nix b/pkgs/safe.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5d73feb9a596b3a083e73a369783e758ecf8627d
--- /dev/null
+++ b/pkgs/safe.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, deepseq, lib, QuickCheck }:
+mkDerivation {
+  pname = "safe";
+  version = "0.3.19";
+  sha256 = "25043442c8f8aa95955bb17467d023630632b961aaa61e807e325d9b2c33f7a2";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base deepseq QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ndmitchell/safe#readme";
+  description = "Library of safe (exception free) functions";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/saltine.nix b/pkgs/saltine.nix
index f66679bb5d619e939522ecd1e21a5c4b6a887d8e..76fe94a083fb92e271583538e01aaa5c7acfc270 100644
--- a/pkgs/saltine.nix
+++ b/pkgs/saltine.nix
@@ -1,6 +1,17 @@
-{ mkDerivation, base, bytestring, criterion, deepseq, hashable, lib
-, libsodium, profunctors, QuickCheck, semigroups, test-framework
-, test-framework-quickcheck2, text
+{ mkDerivation
+, base
+, bytestring
+, criterion
+, deepseq
+, hashable
+, lib
+, libsodium
+, profunctors
+, QuickCheck
+, semigroups
+, test-framework
+, test-framework-quickcheck2
+, text
 }:
 mkDerivation {
   pname = "saltine";
@@ -10,15 +21,29 @@ mkDerivation {
   isExecutable = false;
   enableSeparateDataOutput = false;
   libraryHaskellDepends = [
-    base bytestring deepseq hashable profunctors text
+    base
+    bytestring
+    deepseq
+    hashable
+    profunctors
+    text
   ];
   libraryPkgconfigDepends = [ libsodium ];
   testHaskellDepends = [
-    base bytestring QuickCheck semigroups test-framework
-    test-framework-quickcheck2 text
+    base
+    bytestring
+    QuickCheck
+    semigroups
+    test-framework
+    test-framework-quickcheck2
+    text
   ];
   benchmarkHaskellDepends = [
-    base bytestring criterion deepseq text
+    base
+    bytestring
+    criterion
+    deepseq
+    text
   ];
   benchmarkSystemDepends = [ libsodium ];
   enableLibraryProfiling = false;
@@ -31,4 +56,4 @@ mkDerivation {
   description = "Cryptography that's easy to digest (NaCl/libsodium bindings)";
   license = lib.licenses.mit;
   broken = false;
-}
\ No newline at end of file
+}
diff --git a/pkgs/sandwich.nix b/pkgs/sandwich.nix
new file mode 100644
index 0000000000000000000000000000000000000000..02628cf2eea200bf5c6d1b033bd1d7d7523bf2cc
--- /dev/null
+++ b/pkgs/sandwich.nix
@@ -0,0 +1,168 @@
+{ mkDerivation
+, aeson
+, ansi-terminal
+, async
+, base
+, brick
+, bytestring
+, colour
+, containers
+, directory
+, exceptions
+, filepath
+, free
+, haskell-src-exts
+, lib
+, lifted-async
+, microlens
+, microlens-th
+, monad-control
+, monad-logger
+, mtl
+, optparse-applicative
+, pretty-show
+, process
+, safe
+, safe-exceptions
+, stm
+, string-interpolate
+, template-haskell
+, text
+, time
+, transformers
+, transformers-base
+, unix
+, unliftio-core
+, vector
+, vty
+}:
+mkDerivation {
+  pname = "sandwich";
+  version = "0.1.1.2";
+  sha256 = "b8b1dd82e8cc776ce35bba22d4285fe2ad50fb512f7555703f00f7b782608aba";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    ansi-terminal
+    async
+    base
+    brick
+    bytestring
+    colour
+    containers
+    directory
+    exceptions
+    filepath
+    free
+    haskell-src-exts
+    lifted-async
+    microlens
+    microlens-th
+    monad-control
+    monad-logger
+    mtl
+    optparse-applicative
+    pretty-show
+    process
+    safe
+    safe-exceptions
+    stm
+    string-interpolate
+    template-haskell
+    text
+    time
+    transformers
+    transformers-base
+    unix
+    unliftio-core
+    vector
+    vty
+  ];
+  executableHaskellDepends = [
+    aeson
+    ansi-terminal
+    async
+    base
+    brick
+    bytestring
+    colour
+    containers
+    directory
+    exceptions
+    filepath
+    free
+    haskell-src-exts
+    lifted-async
+    microlens
+    microlens-th
+    monad-control
+    monad-logger
+    mtl
+    optparse-applicative
+    pretty-show
+    process
+    safe
+    safe-exceptions
+    stm
+    string-interpolate
+    template-haskell
+    text
+    time
+    transformers
+    transformers-base
+    unix
+    unliftio-core
+    vector
+    vty
+  ];
+  testHaskellDepends = [
+    aeson
+    ansi-terminal
+    async
+    base
+    brick
+    bytestring
+    colour
+    containers
+    directory
+    exceptions
+    filepath
+    free
+    haskell-src-exts
+    lifted-async
+    microlens
+    microlens-th
+    monad-control
+    monad-logger
+    mtl
+    optparse-applicative
+    pretty-show
+    process
+    safe
+    safe-exceptions
+    stm
+    string-interpolate
+    template-haskell
+    text
+    time
+    transformers
+    transformers-base
+    unix
+    unliftio-core
+    vector
+    vty
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://codedownio.github.io/sandwich";
+  description = "Yet another test framework for Haskell";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/selective.nix b/pkgs/selective.nix
new file mode 100644
index 0000000000000000000000000000000000000000..81fd8da2ee0e320463cdfa7c689ab868980d2e6d
--- /dev/null
+++ b/pkgs/selective.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, containers, lib, QuickCheck, transformers }:
+mkDerivation {
+  pname = "selective";
+  version = "0.5";
+  sha256 = "b0fda80309a83d8f9eed9b8798b3c8c6626600154948323a8d80ab8e2c2f8da3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers transformers ];
+  testHaskellDepends = [ base containers QuickCheck transformers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/snowleopard/selective";
+  description = "Selective applicative functors";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/setenv.nix b/pkgs/setenv.nix
new file mode 100644
index 0000000000000000000000000000000000000000..00e9536a1f222a37b3e0acbf9ed8c0dd37085b0b
--- /dev/null
+++ b/pkgs/setenv.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib, unix }:
+mkDerivation {
+  pname = "setenv";
+  version = "0.1.1.3";
+  sha256 = "e358df39afc03d5a39e2ec650652d845c85c80cc98fe331654deafb4767ecb32";
+  revision = "1";
+  editedCabalFile = "0ny4g3kjys0hqg41mnwrsymy1bwhl8l169kis4y4fa58sb06m4f5";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base unix ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A cross-platform library for setting environment variables";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/should-not-typecheck.nix b/pkgs/should-not-typecheck.nix
new file mode 100644
index 0000000000000000000000000000000000000000..4abcfdec61430f819317364bbe14b5da050d1232
--- /dev/null
+++ b/pkgs/should-not-typecheck.nix
@@ -0,0 +1,35 @@
+{ mkDerivation
+, base
+, deepseq
+, hspec
+, hspec-expectations
+, HUnit
+, lib
+}:
+mkDerivation {
+  pname = "should-not-typecheck";
+  version = "2.1.0";
+  sha256 = "f538ac70ce07679bc2e6c1651db82a86866664ab995665fdc78e6cb12bd8d591";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq HUnit ];
+  testHaskellDepends = [
+    base
+    deepseq
+    hspec
+    hspec-expectations
+    HUnit
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/CRogers/should-not-typecheck";
+  description = "A HUnit/hspec assertion library to verify that an expression does not typecheck";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/silently.nix b/pkgs/silently.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0f06e6a0949a984a4a32f290de713ed1a43d65a3
--- /dev/null
+++ b/pkgs/silently.nix
@@ -0,0 +1,29 @@
+{ mkDerivation
+, base
+, deepseq
+, directory
+, lib
+, nanospec
+, temporary
+}:
+mkDerivation {
+  pname = "silently";
+  version = "1.2.5.3";
+  sha256 = "ba9dafafd29438a830afd158c3b83ce157d50e984352ff3ddf60a74c22f36372";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq directory ];
+  testHaskellDepends = [ base deepseq directory nanospec temporary ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/hspec/silently";
+  description = "Prevent or capture writing to stdout and other handles";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/simple-reflect.nix b/pkgs/simple-reflect.nix
new file mode 100644
index 0000000000000000000000000000000000000000..39f7f8a77ffd04f2e9608f7204423904230027cf
--- /dev/null
+++ b/pkgs/simple-reflect.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "simple-reflect";
+  version = "0.3.3";
+  sha256 = "07825ea04c135298008cf080133e3bfc8e04cbacd24719c46ac6a2ca4acfdb2b";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://twanvl.nl/blog/haskell/simple-reflection-of-expressions";
+  description = "Simple reflection of expressions containing variables";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/smallcheck.nix b/pkgs/smallcheck.nix
new file mode 100644
index 0000000000000000000000000000000000000000..73f4274339f27030cd69d06546641c0c8ee610f8
--- /dev/null
+++ b/pkgs/smallcheck.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, lib, logict, mtl, pretty }:
+mkDerivation {
+  pname = "smallcheck";
+  version = "1.2.1";
+  sha256 = "e41f9d11b50e0526dd28c9bc6cf6dddf98cebd782911a00c3e5cbe4ce53fc869";
+  revision = "1";
+  editedCabalFile = "141lvb58hy94gywchaaf2dbh1dncnj951q5l6xkg1drvm94dvj1b";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base logict mtl pretty ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Bodigrim/smallcheck";
+  description = "A property-based testing library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/sorted-list.nix b/pkgs/sorted-list.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5108fe306c7ae4fbbd394912f2c27186aa87174f
--- /dev/null
+++ b/pkgs/sorted-list.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, criterion, deepseq, lib }:
+mkDerivation {
+  pname = "sorted-list";
+  version = "0.2.1.0";
+  sha256 = "b4e476157cf0df745eb3c39921357ffb2bf411cd169e755e99536031e07c5ef4";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ];
+  benchmarkHaskellDepends = [ base criterion ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Daniel-Diaz/sorted-list/blob/master/README.md";
+  description = "Type-enforced sorted lists and related functions";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/special-values.nix b/pkgs/special-values.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2b8354878e4808e3f8c668ad0c3380b244ecab11
--- /dev/null
+++ b/pkgs/special-values.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, base, bytestring, ieee754, lib, scientific, text }:
+mkDerivation {
+  pname = "special-values";
+  version = "0.1.0.0";
+  sha256 = "3c14dd1304dacc8e54c2dcf95ebb3bb74b172b5409b9b45352108a4698e06dce";
+  revision = "2";
+  editedCabalFile = "1vv5gydjd65jniifl3mnch8bzvpvdahi913gsa3kv5zijwhad699";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    ieee754
+    scientific
+    text
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/minad/special-values#readme";
+  description = "Typeclass providing special values";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/splitmix.nix b/pkgs/splitmix.nix
new file mode 100644
index 0000000000000000000000000000000000000000..efaa9bcd90c0f1cb96a6c20973edd548aa09df78
--- /dev/null
+++ b/pkgs/splitmix.nix
@@ -0,0 +1,68 @@
+{ mkDerivation
+, async
+, base
+, base-compat
+, base-compat-batteries
+, bytestring
+, clock
+, containers
+, criterion
+, deepseq
+, HUnit
+, lib
+, math-functions
+, process
+, random
+, test-framework
+, test-framework-hunit
+, testu01
+, tf-random
+, vector
+}:
+mkDerivation {
+  pname = "splitmix";
+  version = "0.1.0.4";
+  sha256 = "6d065402394e7a9117093dbb4530a21342c9b1e2ec509516c8a8d0ffed98ecaa";
+  revision = "1";
+  editedCabalFile = "1iqlg2d4mybqwzwp67c5a1yxzd47cbp4f7mrpa6d0ckypis2akl0";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ];
+  testHaskellDepends = [
+    async
+    base
+    base-compat
+    base-compat-batteries
+    bytestring
+    containers
+    deepseq
+    HUnit
+    math-functions
+    process
+    random
+    test-framework
+    test-framework-hunit
+    tf-random
+    vector
+  ];
+  testSystemDepends = [ testu01 ];
+  benchmarkHaskellDepends = [
+    base
+    clock
+    containers
+    criterion
+    random
+    tf-random
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Fast Splittable PRNG";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/spoon.nix b/pkgs/spoon.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ea34925661d75ff6737f5d782963d6b3bd857aa9
--- /dev/null
+++ b/pkgs/spoon.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, deepseq, lib }:
+mkDerivation {
+  pname = "spoon";
+  version = "0.3.1";
+  sha256 = "b9b350b6730e34c246bbf7e228a86b3d4925b52c95542f7676d719ef2a9881d4";
+  revision = "1";
+  editedCabalFile = "09s5jjcsg4g4qxchq9g2l4i9d5zh3rixpkbiysqcgl69kj8mwv74";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Catch errors thrown from pure computations";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/stm-chans.nix b/pkgs/stm-chans.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5502af0421651953b267641ab8cebb1a48553b71
--- /dev/null
+++ b/pkgs/stm-chans.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, stm }:
+mkDerivation {
+  pname = "stm-chans";
+  version = "3.0.0.6";
+  sha256 = "ea6e3e83b67380ada44a566014e2611ef9f98142a8bbb91583fb598425760a12";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base stm ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://wrengr.org/software/hackage.html";
+  description = "Additional types of channels for STM";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/store-core.nix b/pkgs/store-core.nix
new file mode 100644
index 0000000000000000000000000000000000000000..011c925c5700c7842ac28a2d847be963427508b4
--- /dev/null
+++ b/pkgs/store-core.nix
@@ -0,0 +1,36 @@
+{ mkDerivation
+, base
+, bytestring
+, ghc-prim
+, lib
+, primitive
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "store-core";
+  version = "0.4.4.4";
+  sha256 = "1e204ffb4c494808ac64bec2381f2a2c4d18fac70ad325559a7cc11bcae54140";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    ghc-prim
+    primitive
+    text
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/fpco/store#readme";
+  description = "Fast and lightweight binary serialization";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/store.nix b/pkgs/store.nix
new file mode 100644
index 0000000000000000000000000000000000000000..acdef6442fec51b5c69ac1b73b7241f6e5cbb7ad
--- /dev/null
+++ b/pkgs/store.nix
@@ -0,0 +1,210 @@
+{ mkDerivation
+, array
+, async
+, base
+, base-orphans
+, base64-bytestring
+, bifunctors
+, bytestring
+, cereal
+, cereal-vector
+, clock
+, containers
+, contravariant
+, criterion
+, cryptohash
+, deepseq
+, directory
+, filepath
+, free
+, ghc-prim
+, hashable
+, hspec
+, hspec-discover
+, hspec-smallcheck
+, integer-gmp
+, lib
+, lifted-base
+, monad-control
+, mono-traversable
+, nats
+, network
+, primitive
+, resourcet
+, safe
+, smallcheck
+, store-core
+, syb
+, template-haskell
+, text
+, th-lift
+, th-lift-instances
+, th-orphans
+, th-reify-many
+, th-utilities
+, time
+, transformers
+, unordered-containers
+, vector
+, vector-binary-instances
+, void
+, weigh
+}:
+mkDerivation {
+  pname = "store";
+  version = "0.7.16";
+  sha256 = "4f7fc5853e17f0703165d0c3dc28b24fd7e09b7720123faf3fd33389994cb688";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    async
+    base
+    base-orphans
+    base64-bytestring
+    bifunctors
+    bytestring
+    containers
+    contravariant
+    cryptohash
+    deepseq
+    directory
+    filepath
+    free
+    ghc-prim
+    hashable
+    hspec
+    hspec-smallcheck
+    integer-gmp
+    lifted-base
+    monad-control
+    mono-traversable
+    nats
+    network
+    primitive
+    resourcet
+    safe
+    smallcheck
+    store-core
+    syb
+    template-haskell
+    text
+    th-lift
+    th-lift-instances
+    th-orphans
+    th-reify-many
+    th-utilities
+    time
+    transformers
+    unordered-containers
+    vector
+    void
+  ];
+  testHaskellDepends = [
+    array
+    async
+    base
+    base-orphans
+    base64-bytestring
+    bifunctors
+    bytestring
+    clock
+    containers
+    contravariant
+    cryptohash
+    deepseq
+    directory
+    filepath
+    free
+    ghc-prim
+    hashable
+    hspec
+    hspec-smallcheck
+    integer-gmp
+    lifted-base
+    monad-control
+    mono-traversable
+    nats
+    network
+    primitive
+    resourcet
+    safe
+    smallcheck
+    store-core
+    syb
+    template-haskell
+    text
+    th-lift
+    th-lift-instances
+    th-orphans
+    th-reify-many
+    th-utilities
+    time
+    transformers
+    unordered-containers
+    vector
+    void
+  ];
+  testToolDepends = [ hspec-discover ];
+  benchmarkHaskellDepends = [
+    array
+    async
+    base
+    base-orphans
+    base64-bytestring
+    bifunctors
+    bytestring
+    cereal
+    cereal-vector
+    containers
+    contravariant
+    criterion
+    cryptohash
+    deepseq
+    directory
+    filepath
+    free
+    ghc-prim
+    hashable
+    hspec
+    hspec-smallcheck
+    integer-gmp
+    lifted-base
+    monad-control
+    mono-traversable
+    nats
+    network
+    primitive
+    resourcet
+    safe
+    smallcheck
+    store-core
+    syb
+    template-haskell
+    text
+    th-lift
+    th-lift-instances
+    th-orphans
+    th-reify-many
+    th-utilities
+    time
+    transformers
+    unordered-containers
+    vector
+    vector-binary-instances
+    void
+    weigh
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/mgsloan/store#readme";
+  description = "Fast binary serialization";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/streaming.nix b/pkgs/streaming.nix
new file mode 100644
index 0000000000000000000000000000000000000000..abbb8287c40709b0c76af109f78834bde82419de
--- /dev/null
+++ b/pkgs/streaming.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, base
+, containers
+, ghc-prim
+, hspec
+, lib
+, mmorph
+, mtl
+, QuickCheck
+, transformers
+, transformers-base
+}:
+mkDerivation {
+  pname = "streaming";
+  version = "0.2.3.1";
+  sha256 = "fc5efae393750b9729ce5c5e979edcd3b9a5bf41ab927636174b01f999ffea88";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    ghc-prim
+    mmorph
+    mtl
+    transformers
+    transformers-base
+  ];
+  testHaskellDepends = [ base hspec QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-streaming/streaming";
+  description = "an elementary streaming prelude and general stream type";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/string-conv.nix b/pkgs/string-conv.nix
new file mode 100644
index 0000000000000000000000000000000000000000..76680e57a4631a272bc7e0323667cef76cf93ca1
--- /dev/null
+++ b/pkgs/string-conv.nix
@@ -0,0 +1,37 @@
+{ mkDerivation
+, base
+, bytestring
+, lib
+, quickcheck-instances
+, tasty
+, tasty-quickcheck
+, text
+}:
+mkDerivation {
+  pname = "string-conv";
+  version = "0.2.0";
+  sha256 = "39cea3010eb1c52b6dd21c4108e23b89926f0f21b872ad1f5f644328c73a9096";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring text ];
+  testHaskellDepends = [
+    base
+    bytestring
+    quickcheck-instances
+    tasty
+    tasty-quickcheck
+    text
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Soostone/string-conv";
+  description = "Standardized conversion between string types";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/string-conversions.nix b/pkgs/string-conversions.nix
new file mode 100644
index 0000000000000000000000000000000000000000..cfa4a9006d6ed40e64c10b64dd7db9425ba79f84
--- /dev/null
+++ b/pkgs/string-conversions.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, base
+, bytestring
+, deepseq
+, hspec
+, lib
+, QuickCheck
+, quickcheck-instances
+, text
+, utf8-string
+}:
+mkDerivation {
+  pname = "string-conversions";
+  version = "0.4.0.1";
+  sha256 = "46bcce6d9ce62c558b7658a75d9c6a62f7259d6b0473d011d8078234ad6a1994";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring text utf8-string ];
+  testHaskellDepends = [
+    base
+    bytestring
+    deepseq
+    hspec
+    QuickCheck
+    quickcheck-instances
+    text
+    utf8-string
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/soenkehahn/string-conversions#readme";
+  description = "Simplifies dealing with different types for strings";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/stringbuilder.nix b/pkgs/stringbuilder.nix
new file mode 100644
index 0000000000000000000000000000000000000000..632c51dbfe0d8fa2a4b262a32c8c8b9082600d9e
--- /dev/null
+++ b/pkgs/stringbuilder.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, hspec, lib, QuickCheck }:
+mkDerivation {
+  pname = "stringbuilder";
+  version = "0.5.1";
+  sha256 = "d878bdc4da806dbce5ab684ef13d2634c17c15b991d0ed3bb25a331eba6603ba";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base hspec QuickCheck ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A writer monad for multi-line string literals";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/system-filepath.nix b/pkgs/system-filepath.nix
new file mode 100644
index 0000000000000000000000000000000000000000..332d8a4aab56c5b229d577fbb369adc29afee6bb
--- /dev/null
+++ b/pkgs/system-filepath.nix
@@ -0,0 +1,42 @@
+{ mkDerivation
+, base
+, bytestring
+, Cabal
+, chell
+, chell-quickcheck
+, deepseq
+, lib
+, QuickCheck
+, text
+}:
+mkDerivation {
+  pname = "system-filepath";
+  version = "0.4.14";
+  sha256 = "1656ce3c0d585650784ceb3f794748286e19fb635f557e7b29b0897f8956d993";
+  revision = "1";
+  editedCabalFile = "18llfvisghrn9w9yfgacqn51gs50a0lngah3bmg852h0swj7vkp8";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  setupHaskellDepends = [ base Cabal ];
+  libraryHaskellDepends = [ base bytestring deepseq text ];
+  testHaskellDepends = [
+    base
+    bytestring
+    chell
+    chell-quickcheck
+    QuickCheck
+    text
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/fpco/haskell-filesystem";
+  description = "High-level, byte-based file and directory path manipulations (deprecated)";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/tabular.nix b/pkgs/tabular.nix
new file mode 100644
index 0000000000000000000000000000000000000000..fbde6e3e9b0e79844b24f2e7af4129fe0c15e3d0
--- /dev/null
+++ b/pkgs/tabular.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, csv, html, lib, mtl }:
+mkDerivation {
+  pname = "tabular";
+  version = "0.2.2.8";
+  sha256 = "cb7d06eaec7945cd77db2380ed4a9b7a048c5f6abcfba766c328228be033237d";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base csv html mtl ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/bgamari/tabular";
+  description = "Two-dimensional data tables with rendering functions";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/tagsoup.nix b/pkgs/tagsoup.nix
new file mode 100644
index 0000000000000000000000000000000000000000..074e2fd612656c2df98960eb09859911be991a36
--- /dev/null
+++ b/pkgs/tagsoup.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, base
+, bytestring
+, containers
+, deepseq
+, directory
+, lib
+, process
+, QuickCheck
+, text
+, time
+}:
+mkDerivation {
+  pname = "tagsoup";
+  version = "0.14.8";
+  sha256 = "ba7e5500d853d29f0675b90655b7fdd032a4a7eee82a56e7ee3ef9949fe93ad5";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring containers text ];
+  testHaskellDepends = [
+    base
+    bytestring
+    deepseq
+    directory
+    process
+    QuickCheck
+    time
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ndmitchell/tagsoup#readme";
+  description = "Parsing and extracting information from (possibly malformed) HTML/XML documents";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/tar.nix b/pkgs/tar.nix
new file mode 100644
index 0000000000000000000000000000000000000000..39cce4e76c6d84ee25c6080af51baf0bd2353a9d
--- /dev/null
+++ b/pkgs/tar.nix
@@ -0,0 +1,73 @@
+{ mkDerivation
+, array
+, base
+, bytestring
+, containers
+, deepseq
+, directory
+, fetchgit
+, filepath
+, lib
+, QuickCheck
+, tasty
+, tasty-bench
+, tasty-quickcheck
+, time
+}:
+mkDerivation {
+  pname = "tar";
+  version = "0.6.0.0";
+  src = fetchgit {
+    url = "https://github.com/locallycompact/tar";
+    sha256 = "1602fyzgsf5i6lrl6jv8x00qdbm37025ms87ncl7b30dcj2dvqh7";
+    rev = "107c0b78524acfd0e77e767b83073492008bea0c";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    base
+    bytestring
+    containers
+    deepseq
+    directory
+    filepath
+    time
+  ];
+  testHaskellDepends = [
+    array
+    base
+    bytestring
+    containers
+    deepseq
+    directory
+    filepath
+    QuickCheck
+    tasty
+    tasty-quickcheck
+    time
+  ];
+  benchmarkHaskellDepends = [
+    array
+    base
+    bytestring
+    containers
+    deepseq
+    directory
+    filepath
+    tasty-bench
+    time
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Reading, writing and manipulating \".tar\" archive files.";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/tasty-bench.nix b/pkgs/tasty-bench.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1f54c46219bf9996f5c730d4c0ace966b08c67ab
--- /dev/null
+++ b/pkgs/tasty-bench.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, containers, deepseq, lib, tasty }:
+mkDerivation {
+  pname = "tasty-bench";
+  version = "0.3.2";
+  sha256 = "c83a3d3c37bb652274d062857616a9d1871031e624f5f7139e1cbbf1f47b2249";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers deepseq tasty ];
+  benchmarkHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Bodigrim/tasty-bench";
+  description = "Featherlight benchmark framework";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/tasty-hspec.nix b/pkgs/tasty-hspec.nix
new file mode 100644
index 0000000000000000000000000000000000000000..817f07ae9b13718f531ee5f6dbe48c1eac5a31da
--- /dev/null
+++ b/pkgs/tasty-hspec.nix
@@ -0,0 +1,40 @@
+{ mkDerivation
+, base
+, hspec
+, hspec-core
+, lib
+, QuickCheck
+, tasty
+, tasty-quickcheck
+, tasty-smallcheck
+}:
+mkDerivation {
+  pname = "tasty-hspec";
+  version = "1.2.0.1";
+  sha256 = "21813eff5187cd2489b855153466949b7379cfb2c7fc98ab680ad76a62177445";
+  revision = "1";
+  editedCabalFile = "0a6r4gzxzp6n90z0nif7ha7p7am57hs48i54i2y4z9kgjv6lnvll";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    hspec
+    hspec-core
+    QuickCheck
+    tasty
+    tasty-quickcheck
+    tasty-smallcheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/mitchellwrosen/tasty-hspec";
+  description = "Hspec support for the Tasty test framework";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/tasty-inspection-testing.nix b/pkgs/tasty-inspection-testing.nix
new file mode 100644
index 0000000000000000000000000000000000000000..172eae118b169a5e700e5a73ee9788cd18b74b2e
--- /dev/null
+++ b/pkgs/tasty-inspection-testing.nix
@@ -0,0 +1,34 @@
+{ mkDerivation
+, base
+, ghc
+, inspection-testing
+, lib
+, tasty
+, template-haskell
+}:
+mkDerivation {
+  pname = "tasty-inspection-testing";
+  version = "0.2";
+  sha256 = "1f8fa87b808b660c1390406c134758ae269afe9bf0682394e88ebf42ca5bbcbd";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    ghc
+    inspection-testing
+    tasty
+    template-haskell
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Bodigrim/tasty-inspection-testing";
+  description = "Inspection testing support for tasty";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/tasty-kat.nix b/pkgs/tasty-kat.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8cdfe715b54379d1aa59514a48879354d6002856
--- /dev/null
+++ b/pkgs/tasty-kat.nix
@@ -0,0 +1,37 @@
+{ mkDerivation
+, base
+, bytestring
+, lib
+, mtl
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "tasty-kat";
+  version = "0.0.3";
+  sha256 = "a72501f0f77db372648566bbba1dd1d6d0d0c975b42238875d663313e9a5db93";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring tasty ];
+  testHaskellDepends = [
+    base
+    bytestring
+    mtl
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/vincenthz/tasty-kat";
+  description = "Known Answer Tests (KAT) framework for tasty";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/tasty-silver.nix b/pkgs/tasty-silver.nix
new file mode 100644
index 0000000000000000000000000000000000000000..9c524e0b05485deda8a2495b4f46e29c828e777f
--- /dev/null
+++ b/pkgs/tasty-silver.nix
@@ -0,0 +1,76 @@
+{ mkDerivation
+, ansi-terminal
+, async
+, base
+, bytestring
+, containers
+, deepseq
+, directory
+, filepath
+, lib
+, mtl
+, optparse-applicative
+, process
+, process-extras
+, regex-tdfa
+, silently
+, stm
+, tagged
+, tasty
+, tasty-hunit
+, temporary
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "tasty-silver";
+  version = "3.3.1.1";
+  sha256 = "35fde58705e5041671fd1009c1fa79823ffdd60bca326b054e5bc6c880fe408e";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    ansi-terminal
+    async
+    base
+    bytestring
+    containers
+    deepseq
+    directory
+    filepath
+    mtl
+    optparse-applicative
+    process
+    process-extras
+    regex-tdfa
+    silently
+    stm
+    tagged
+    tasty
+    temporary
+    text
+    transformers
+  ];
+  testHaskellDepends = [
+    base
+    directory
+    filepath
+    process
+    silently
+    tasty
+    tasty-hunit
+    temporary
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/phile314/tasty-silver";
+  description = "A fancy test runner, including support for golden tests";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/tasty-th.nix b/pkgs/tasty-th.nix
new file mode 100644
index 0000000000000000000000000000000000000000..07024f41cdef197aadc72a68d1c658578f954b0b
--- /dev/null
+++ b/pkgs/tasty-th.nix
@@ -0,0 +1,34 @@
+{ mkDerivation
+, base
+, haskell-src-exts
+, lib
+, tasty
+, tasty-hunit
+, template-haskell
+}:
+mkDerivation {
+  pname = "tasty-th";
+  version = "0.1.7";
+  sha256 = "435aac8f317e2f8cb1aa96fb3f7c9003c1ac28e6d3ca4c3c23f5142178de512c";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    haskell-src-exts
+    tasty
+    template-haskell
+  ];
+  testHaskellDepends = [ base tasty-hunit ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/bennofs/tasty-th";
+  description = "Automatic tasty test case discovery using TH";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/tdigest.nix b/pkgs/tdigest.nix
new file mode 100644
index 0000000000000000000000000000000000000000..db401252e617ce4912e426bca92dcb475f23bc1f
--- /dev/null
+++ b/pkgs/tdigest.nix
@@ -0,0 +1,58 @@
+{ mkDerivation
+, base
+, base-compat
+, binary
+, deepseq
+, lib
+, reducers
+, semigroupoids
+, semigroups
+, tasty
+, tasty-quickcheck
+, transformers
+, vector
+, vector-algorithms
+}:
+mkDerivation {
+  pname = "tdigest";
+  version = "0.2.1.1";
+  sha256 = "a3998575ff5d180e6383d5bd5fc7c8e5fcfdb0c03e16f5f9089935a4d97173b7";
+  revision = "3";
+  editedCabalFile = "0a39vwf37hkh06rn79blr3bw7ij05pgpxrkc9cldgdd5p4gvn1qn";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    base-compat
+    binary
+    deepseq
+    reducers
+    semigroupoids
+    transformers
+    vector
+    vector-algorithms
+  ];
+  testHaskellDepends = [
+    base
+    base-compat
+    binary
+    deepseq
+    semigroups
+    tasty
+    tasty-quickcheck
+    vector
+    vector-algorithms
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/phadej/haskell-tdigest#readme";
+  description = "On-line accumulation of rank-based statistics";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/temporary.nix b/pkgs/temporary.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8777443dea07dd3a0d44932c76d59f2c63f22d67
--- /dev/null
+++ b/pkgs/temporary.nix
@@ -0,0 +1,50 @@
+{ mkDerivation
+, base
+, base-compat
+, directory
+, exceptions
+, filepath
+, lib
+, random
+, tasty
+, tasty-hunit
+, transformers
+, unix
+}:
+mkDerivation {
+  pname = "temporary";
+  version = "1.3";
+  sha256 = "8c442993694b5ffca823ce864af95bd2841fb5264ee511c61cf48cc71d879890";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    directory
+    exceptions
+    filepath
+    random
+    transformers
+    unix
+  ];
+  testHaskellDepends = [
+    base
+    base-compat
+    directory
+    filepath
+    tasty
+    tasty-hunit
+    unix
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/feuerbach/temporary";
+  description = "Portable temporary file and directory support";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/terminal-size.nix b/pkgs/terminal-size.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8c76e714e4c06e72fa877436ab710e99ce20b6a7
--- /dev/null
+++ b/pkgs/terminal-size.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "terminal-size";
+  version = "0.3.3";
+  sha256 = "8c174c8fa7200be2caffd6d25f789fd3c73f4b7b02989f332a42d7901fca60c3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Get terminal window height and width";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/test-framework-smallcheck.nix b/pkgs/test-framework-smallcheck.nix
new file mode 100644
index 0000000000000000000000000000000000000000..9a8635eb06fcd9640f4f83b48aea9487e19c6f21
--- /dev/null
+++ b/pkgs/test-framework-smallcheck.nix
@@ -0,0 +1,32 @@
+{ mkDerivation
+, base
+, lib
+, smallcheck
+, test-framework
+, transformers
+}:
+mkDerivation {
+  pname = "test-framework-smallcheck";
+  version = "0.2";
+  sha256 = "6081c4f35967b0d0cb92ac09a915fa9e2da01c401266b20ce18793fbc2bceff6";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    smallcheck
+    test-framework
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/feuerbach/smallcheck";
+  description = "Support for SmallCheck tests in test-framework";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/test-framework-th.nix b/pkgs/test-framework-th.nix
new file mode 100644
index 0000000000000000000000000000000000000000..42dea59cb8b91e971c2636260a7b92e458b868b4
--- /dev/null
+++ b/pkgs/test-framework-th.nix
@@ -0,0 +1,36 @@
+{ mkDerivation
+, base
+, haskell-src-exts
+, language-haskell-extract
+, lib
+, regex-posix
+, template-haskell
+, test-framework
+}:
+mkDerivation {
+  pname = "test-framework-th";
+  version = "0.2.4";
+  sha256 = "8b780d9e3edd8d91e24f72d9fa1f80420e52959428ad7c22d0694901a43f9c8a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    haskell-src-exts
+    language-haskell-extract
+    regex-posix
+    template-haskell
+    test-framework
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/finnsson/test-generator";
+  description = "Automagically generate the HUnit- and Quickcheck-bulk-code using Template Haskell";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/text-conversions.nix b/pkgs/text-conversions.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ebc28f466079bcc2aa804cb583fa413583afd67b
--- /dev/null
+++ b/pkgs/text-conversions.nix
@@ -0,0 +1,38 @@
+{ mkDerivation
+, base
+, base16-bytestring
+, base64-bytestring
+, bytestring
+, hspec
+, hspec-discover
+, lib
+, text
+}:
+mkDerivation {
+  pname = "text-conversions";
+  version = "0.3.1.1";
+  sha256 = "c8770fba789ce80334cae628285103c49abec0fa074773cbb5a88e26f5a7725d";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    base16-bytestring
+    base64-bytestring
+    bytestring
+    text
+  ];
+  testHaskellDepends = [ base bytestring hspec text ];
+  testToolDepends = [ hspec-discover ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/cjdev/text-conversions";
+  description = "Safe conversions between textual types";
+  license = lib.licenses.isc;
+  broken = false;
+}
diff --git a/pkgs/text-icu.nix b/pkgs/text-icu.nix
new file mode 100644
index 0000000000000000000000000000000000000000..4fc949f2a2c97c3b88f6a23ed43f0c3671044506
--- /dev/null
+++ b/pkgs/text-icu.nix
@@ -0,0 +1,56 @@
+{ mkDerivation
+, array
+, base
+, bytestring
+, deepseq
+, directory
+, ghc-prim
+, HUnit
+, icu
+, icu-i18n
+, lib
+, QuickCheck
+, random
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+, text
+, time
+}:
+mkDerivation {
+  pname = "text-icu";
+  version = "0.8.0.2";
+  sha256 = "2d99aa88c0b4c7a1a4fc10e7bd0590c334f49bae81ef76c77a370254a4ce3d3b";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring deepseq text time ];
+  librarySystemDepends = [ icu ];
+  libraryPkgconfigDepends = [ icu-i18n ];
+  testHaskellDepends = [
+    array
+    base
+    bytestring
+    deepseq
+    directory
+    ghc-prim
+    HUnit
+    QuickCheck
+    random
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+    text
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/text-icu";
+  description = "Bindings to the ICU library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/th-abstraction.nix b/pkgs/th-abstraction.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5631e4f40e53989d3a9d1475fc98509d654d2c79
--- /dev/null
+++ b/pkgs/th-abstraction.nix
@@ -0,0 +1,33 @@
+{ mkDerivation
+, base
+, containers
+, ghc-prim
+, lib
+, template-haskell
+}:
+mkDerivation {
+  pname = "th-abstraction";
+  version = "0.4.5.0";
+  sha256 = "00d5e24f247e328bd9898d5af5915c1e86b134b4d40baa680258635f95031526";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    ghc-prim
+    template-haskell
+  ];
+  testHaskellDepends = [ base containers template-haskell ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/glguy/th-abstraction";
+  description = "Nicer interface for reified information about data types";
+  license = lib.licenses.isc;
+  broken = false;
+}
diff --git a/pkgs/th-compat.nix b/pkgs/th-compat.nix
new file mode 100644
index 0000000000000000000000000000000000000000..52bdd5c42f80c95407f7b69a56c292738da33460
--- /dev/null
+++ b/pkgs/th-compat.nix
@@ -0,0 +1,37 @@
+{ mkDerivation
+, base
+, base-compat
+, hspec
+, hspec-discover
+, lib
+, mtl
+, template-haskell
+}:
+mkDerivation {
+  pname = "th-compat";
+  version = "0.1.4";
+  sha256 = "d8f97ac14ab47b6b8a7b0fdb4ff95426322ec56badd01652ac15da4a44d4bab8";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base template-haskell ];
+  testHaskellDepends = [
+    base
+    base-compat
+    hspec
+    mtl
+    template-haskell
+  ];
+  testToolDepends = [ hspec-discover ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-compat/th-compat";
+  description = "Backward- (and forward-)compatible Quote and Code types";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/th-lift.nix b/pkgs/th-lift.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8e049aa61e5b773f78a92c96238355794684cab7
--- /dev/null
+++ b/pkgs/th-lift.nix
@@ -0,0 +1,35 @@
+{ mkDerivation
+, base
+, ghc-prim
+, lib
+, template-haskell
+, th-abstraction
+}:
+mkDerivation {
+  pname = "th-lift";
+  version = "0.8.2";
+  sha256 = "3a5927037a10ae63e605c02228c4027c32b7bab1985ae7b5379e6363b3cd5ce4";
+  revision = "2";
+  editedCabalFile = "1s95i774zy3q8yzk18ygdzhzky6wfcr7g55hd2g8h8lc05xzcdgi";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    ghc-prim
+    template-haskell
+    th-abstraction
+  ];
+  testHaskellDepends = [ base ghc-prim template-haskell ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/RyanGlScott/th-lift";
+  description = "Derive Template Haskell's Lift class for datatypes";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/th-utilities.nix b/pkgs/th-utilities.nix
new file mode 100644
index 0000000000000000000000000000000000000000..766a9b4d600e9fdf2276434cd7a006dca3015f10
--- /dev/null
+++ b/pkgs/th-utilities.nix
@@ -0,0 +1,63 @@
+{ mkDerivation
+, base
+, bytestring
+, containers
+, directory
+, filepath
+, hspec
+, lib
+, primitive
+, syb
+, template-haskell
+, text
+, th-abstraction
+, th-orphans
+, vector
+}:
+mkDerivation {
+  pname = "th-utilities";
+  version = "0.2.5.0";
+  sha256 = "4a0742a525e0ef22c993f1b6b693312bddcefe3afed9b6c519372d82931b97e1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    containers
+    directory
+    filepath
+    primitive
+    syb
+    template-haskell
+    text
+    th-abstraction
+    th-orphans
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    containers
+    directory
+    filepath
+    hspec
+    primitive
+    syb
+    template-haskell
+    text
+    th-abstraction
+    th-orphans
+    vector
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/fpco/th-utilities#readme";
+  description = "Collection of useful functions for use with Template Haskell";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/time-manager.nix b/pkgs/time-manager.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f2099d4e43b6904450d94ee802eda5a821f8d05e
--- /dev/null
+++ b/pkgs/time-manager.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, auto-update, base, lib }:
+mkDerivation {
+  pname = "time-manager";
+  version = "0.0.0";
+  sha256 = "90a616ed20b2119bb64f78f84230b6798cde22a35e87bc8d9ee08cdf1d90fcdb";
+  revision = "1";
+  editedCabalFile = "1hwcns6rnh27nngq616cl9x2pl6lm4zzrsbbv5vq6hl0a60qhqjv";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ auto-update base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/yesodweb/wai";
+  description = "Scalable timer";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/timeit.nix b/pkgs/timeit.nix
new file mode 100644
index 0000000000000000000000000000000000000000..97322378d32cc7893b74d6e8fbc1ea9cee97cb0e
--- /dev/null
+++ b/pkgs/timeit.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "timeit";
+  version = "2.0";
+  sha256 = "a14df4e578db371e5c609f0784209144545f9cae90026d24a3398042f7c591ea";
+  revision = "2";
+  editedCabalFile = "1vgxfk2021jh6jk3dimchmf9f71844zj080342qvnn5lck7c7mrm";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/merijn/timeit";
+  description = "Time monadic computations with an IO base";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/timing-convenience.nix b/pkgs/timing-convenience.nix
new file mode 100644
index 0000000000000000000000000000000000000000..dec4bdefd14fea3902751a1fe68fb1c93e31eb4a
--- /dev/null
+++ b/pkgs/timing-convenience.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib, time }:
+mkDerivation {
+  pname = "timing-convenience";
+  version = "0.1";
+  sha256 = "72200ea2c942bfb4ac4c5ae53222353ac3af0c40058f4a9179c99df5ff33171d";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base time ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Convenient functions for getting times";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/tmp-postgres.nix b/pkgs/tmp-postgres.nix
new file mode 100644
index 0000000000000000000000000000000000000000..57a71b227d99822b669e32b628460e41d1d3970b
--- /dev/null
+++ b/pkgs/tmp-postgres.nix
@@ -0,0 +1,97 @@
+{ mkDerivation
+, ansi-wl-pprint
+, async
+, base
+, base64-bytestring
+, bytestring
+, containers
+, criterion
+, cryptohash-sha1
+, deepseq
+, directory
+, generic-monoid
+, hspec
+, lib
+, mtl
+, network
+, port-utils
+, postgres-options
+, postgresql-simple
+, process
+, stm
+, temporary
+, transformers
+, unix
+}:
+mkDerivation {
+  pname = "tmp-postgres";
+  version = "1.34.1.0";
+  sha256 = "98514428edaf527cc464cb9a30df89c6168c858e039ab1baf8293471196c3ba2";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    ansi-wl-pprint
+    async
+    base
+    base64-bytestring
+    bytestring
+    containers
+    cryptohash-sha1
+    deepseq
+    directory
+    generic-monoid
+    port-utils
+    postgres-options
+    postgresql-simple
+    process
+    stm
+    temporary
+    transformers
+    unix
+  ];
+  executableHaskellDepends = [
+    async
+    base
+    directory
+    postgres-options
+    postgresql-simple
+    process
+    temporary
+  ];
+  testHaskellDepends = [
+    async
+    base
+    containers
+    directory
+    generic-monoid
+    hspec
+    mtl
+    network
+    port-utils
+    postgres-options
+    postgresql-simple
+    process
+    temporary
+    unix
+  ];
+  benchmarkHaskellDepends = [
+    base
+    criterion
+    deepseq
+    postgres-options
+    postgresql-simple
+    temporary
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jfischoff/tmp-postgres#readme";
+  description = "Start and stop a temporary postgres";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/torsor.nix b/pkgs/torsor.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e78f73a3a02c91155b5a625a6263f20fdaf47e4f
--- /dev/null
+++ b/pkgs/torsor.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "torsor";
+  version = "0.1";
+  sha256 = "75a3f53a08b9333613a16c5e98f12a069a1c1a360dc3c2abf7b47522acb06d9c";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/andrewthad/torsor#readme";
+  description = "Torsor Typeclass";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/transformers-base.nix b/pkgs/transformers-base.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a82babf97c5d01212e00b8a7b21c866e4d2d3302
--- /dev/null
+++ b/pkgs/transformers-base.nix
@@ -0,0 +1,34 @@
+{ mkDerivation
+, base
+, base-orphans
+, lib
+, stm
+, transformers
+, transformers-compat
+}:
+mkDerivation {
+  pname = "transformers-base";
+  version = "0.4.6";
+  sha256 = "323bf8689eb691b122661cffa41a25e00fea7a768433fe2dde35d3da7d32cf90";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    base-orphans
+    stm
+    transformers
+    transformers-compat
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/mvv/transformers-base";
+  description = "Lift computations from the bottom of a transformer stack";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/transformers-compat.nix b/pkgs/transformers-compat.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1d48b5842cbf9846e27c23982e6126ddd65901a9
--- /dev/null
+++ b/pkgs/transformers-compat.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, ghc-prim, lib, transformers }:
+mkDerivation {
+  pname = "transformers-compat";
+  version = "0.7.2";
+  sha256 = "b62c7304c9f3cbc9463d0739aa85cb9489f217ea092b9d625d417514fbcc9d6a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ghc-prim transformers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/transformers-compat/";
+  description = "A small compatibility shim for the transformers library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/tuple.nix b/pkgs/tuple.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ca6ab7c889a27ff728e32f4a9a0431eb133beb8e
--- /dev/null
+++ b/pkgs/tuple.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib, OneTuple }:
+mkDerivation {
+  pname = "tuple";
+  version = "0.3.0.2";
+  sha256 = "2fcb068ffafbe64170e02094a363f83d1725f44f8af963d9dad943a592e89624";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base OneTuple ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Various functions on tuples";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/turtle.nix b/pkgs/turtle.nix
new file mode 100644
index 0000000000000000000000000000000000000000..4febefb446becfa9ec48d9cd0ee5392a71d429aa
--- /dev/null
+++ b/pkgs/turtle.nix
@@ -0,0 +1,84 @@
+{ mkDerivation
+, ansi-wl-pprint
+, async
+, base
+, bytestring
+, clock
+, containers
+, directory
+, doctest
+, exceptions
+, filepath
+, foldl
+, hostname
+, lib
+, managed
+, optional-args
+, optparse-applicative
+, process
+, stm
+, streaming-commons
+, tasty
+, tasty-bench
+, tasty-hunit
+, temporary
+, text
+, time
+, transformers
+, unix
+, unix-compat
+}:
+mkDerivation {
+  pname = "turtle";
+  version = "1.6.1";
+  sha256 = "2795445c93a4b646dd02b68ebf4006f8ec3588c85ccfe9d47810597e638e3b9c";
+  revision = "1";
+  editedCabalFile = "1x4hk9kk8ra855jkzs7dc9691pk14xydixswbx2srs3r9rc6dpjb";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    ansi-wl-pprint
+    async
+    base
+    bytestring
+    clock
+    containers
+    directory
+    exceptions
+    filepath
+    foldl
+    hostname
+    managed
+    optional-args
+    optparse-applicative
+    process
+    stm
+    streaming-commons
+    temporary
+    text
+    time
+    transformers
+    unix
+    unix-compat
+  ];
+  testHaskellDepends = [
+    base
+    doctest
+    filepath
+    tasty
+    tasty-hunit
+    temporary
+  ];
+  benchmarkHaskellDepends = [ base tasty-bench text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Shell programming, Haskell-style";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/uglymemo.nix b/pkgs/uglymemo.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e417f54ce6e004e1a5aaa7acfa565da05f104a6c
--- /dev/null
+++ b/pkgs/uglymemo.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, containers, lib }:
+mkDerivation {
+  pname = "uglymemo";
+  version = "0.1.0.1";
+  sha256 = "fe89ef49c0cb15867c58815b050b33f17d394d4c48a9b7240a39780a5a79b847";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A simple (but internally ugly) memoization function";
+  license = lib.licenses.publicDomain;
+  broken = false;
+}
diff --git a/pkgs/unbounded-delays.nix b/pkgs/unbounded-delays.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3936922d8136dba603ec139b1a82d0899c3e2e2d
--- /dev/null
+++ b/pkgs/unbounded-delays.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "unbounded-delays";
+  version = "0.1.1.1";
+  sha256 = "59ad7e53bfe32ffbf0e703b31490d41d14c70e4745ed49e8adf592ed68dd6185";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/basvandijk/unbounded-delays";
+  description = "Unbounded thread delays and timeouts";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/unix-compat.nix b/pkgs/unix-compat.nix
new file mode 100644
index 0000000000000000000000000000000000000000..81c97feeb3e2c2181c0a5a51de68b2992c935c4f
--- /dev/null
+++ b/pkgs/unix-compat.nix
@@ -0,0 +1,42 @@
+{ mkDerivation
+, base
+, directory
+, extra
+, hspec
+, HUnit
+, lib
+, monad-parallel
+, temporary
+, unix
+}:
+mkDerivation {
+  pname = "unix-compat";
+  version = "0.6";
+  sha256 = "b4cd823a6543ad3aca8e740ecf5f44aabde60f1452b5a55655db5c8b7a44d5f8";
+  revision = "1";
+  editedCabalFile = "0g5mi6rh977idajgxnnlsd7dp28vf4xwiiwpsc4pj1rqv0lhjp8g";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base unix ];
+  testHaskellDepends = [
+    base
+    directory
+    extra
+    hspec
+    HUnit
+    monad-parallel
+    temporary
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/jacobstanley/unix-compat";
+  description = "Portable POSIX-compatibility layer";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/unix-memory.nix b/pkgs/unix-memory.nix
new file mode 100644
index 0000000000000000000000000000000000000000..35c8376f284f12a568c04723b12cf54463449950
--- /dev/null
+++ b/pkgs/unix-memory.nix
@@ -0,0 +1,39 @@
+{ mkDerivation
+, base
+, lib
+, mtl
+, QuickCheck
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, unix
+}:
+mkDerivation {
+  pname = "unix-memory";
+  version = "0.1.2";
+  sha256 = "f766b55f5a356ab4a7289d456972555b2f6a4af0cc46968f0d308c96c63f1ae5";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [
+    base
+    mtl
+    QuickCheck
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    unix
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/vincenthz/hs-unix-memory";
+  description = "Unix memory syscalls";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/unix-time.nix b/pkgs/unix-time.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2c65b6b6c8a840afb0e4bd0f95b0a15e04dcaffc
--- /dev/null
+++ b/pkgs/unix-time.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, base
+, binary
+, bytestring
+, hspec
+, hspec-discover
+, lib
+, old-locale
+, old-time
+, QuickCheck
+, time
+}:
+mkDerivation {
+  pname = "unix-time";
+  version = "0.4.8";
+  sha256 = "fedeb6a11bcb5396f50a30166a6bb05e56fc9866be4066718404bd8940ace843";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base binary bytestring old-time ];
+  testHaskellDepends = [
+    base
+    bytestring
+    hspec
+    old-locale
+    old-time
+    QuickCheck
+    time
+  ];
+  testToolDepends = [ hspec-discover ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Unix time parser/formatter and utilities";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/uri-bytestring.nix b/pkgs/uri-bytestring.nix
new file mode 100644
index 0000000000000000000000000000000000000000..436fa3a715f32f684f976bc97659070123e4d6a2
--- /dev/null
+++ b/pkgs/uri-bytestring.nix
@@ -0,0 +1,74 @@
+{ mkDerivation
+, attoparsec
+, base
+, base-compat
+, blaze-builder
+, bytestring
+, containers
+, criterion
+, deepseq
+, deepseq-generics
+, hedgehog
+, HUnit
+, lib
+, network-uri
+, safe
+, tasty
+, tasty-hedgehog
+, tasty-hunit
+, template-haskell
+, th-lift-instances
+, transformers
+}:
+mkDerivation {
+  pname = "uri-bytestring";
+  version = "0.3.3.1";
+  sha256 = "f3e7a0ac26111c426727fed11624efe9ce36ee2e74ca79570ec0985eb6111368";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    attoparsec
+    base
+    blaze-builder
+    bytestring
+    containers
+    template-haskell
+    th-lift-instances
+  ];
+  testHaskellDepends = [
+    attoparsec
+    base
+    base-compat
+    blaze-builder
+    bytestring
+    containers
+    hedgehog
+    HUnit
+    safe
+    tasty
+    tasty-hedgehog
+    tasty-hunit
+    transformers
+  ];
+  benchmarkHaskellDepends = [
+    base
+    blaze-builder
+    bytestring
+    criterion
+    deepseq
+    deepseq-generics
+    network-uri
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Soostone/uri-bytestring";
+  description = "Haskell URI parsing as ByteStrings";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/utf8-string.nix b/pkgs/utf8-string.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d0961e6f7243c055ee75f54e56e66054d066b380
--- /dev/null
+++ b/pkgs/utf8-string.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, bytestring, HUnit, lib }:
+mkDerivation {
+  pname = "utf8-string";
+  version = "1.0.2";
+  sha256 = "ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  testHaskellDepends = [ base HUnit ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/glguy/utf8-string/";
+  description = "Support for reading and writing UTF8 Strings";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/utility-ht.nix b/pkgs/utility-ht.nix
new file mode 100644
index 0000000000000000000000000000000000000000..31bd0b2ba4edf76ee270551926d195d4f6a90dbf
--- /dev/null
+++ b/pkgs/utility-ht.nix
@@ -0,0 +1,32 @@
+{ mkDerivation
+, base
+, doctest-exitcode-stdio
+, doctest-lib
+, lib
+, QuickCheck
+}:
+mkDerivation {
+  pname = "utility-ht";
+  version = "0.0.16";
+  sha256 = "bce53223bb77643222331efec5d69a656c0fa2d11be6563e27bc4808a1abbb81";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [
+    base
+    doctest-exitcode-stdio
+    doctest-lib
+    QuickCheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Various small helper functions for Lists, Maybes, Tuples, Functions";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/vector-stream.nix b/pkgs/vector-stream.nix
new file mode 100644
index 0000000000000000000000000000000000000000..63404aeac2a3dde7d463472a2b12035af0720648
--- /dev/null
+++ b/pkgs/vector-stream.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, ghc-prim, lib }:
+mkDerivation {
+  pname = "vector-stream";
+  version = "0.1.0.0";
+  sha256 = "a888210f6467f155090653734be5cc920406a07227e0d3adb59096716fdb806c";
+  revision = "1";
+  editedCabalFile = "18sm3vd1qim9r3m40wgvnmcrfz1zl051yy84dffnp4si9vfgic09";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ghc-prim ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/vector";
+  description = "Efficient Streams";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/weigh.nix b/pkgs/weigh.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7bda63c9e048177c0741267557ffbfb24140bbc2
--- /dev/null
+++ b/pkgs/weigh.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, base
+, deepseq
+, ghc
+, lib
+, mtl
+, process
+, split
+, temporary
+}:
+mkDerivation {
+  pname = "weigh";
+  version = "0.0.16";
+  sha256 = "a92a19209b6e8999be21fed8c6ddad8cddf5b98352341b58d2c3e3ef4e96eb8e";
+  revision = "1";
+  editedCabalFile = "0y71p1fg2q9ig955b21fhfaipdamdrlzfl302prqz8g0sfcxvmfg";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    deepseq
+    ghc
+    mtl
+    process
+    split
+    temporary
+  ];
+  testHaskellDepends = [ base deepseq ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/fpco/weigh#readme";
+  description = "Measure allocations of a Haskell functions/values";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/wizards.nix b/pkgs/wizards.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8d5c0f6868c6a7327284e76c5ef8f55c51ec1cf4
--- /dev/null
+++ b/pkgs/wizards.nix
@@ -0,0 +1,37 @@
+{ mkDerivation
+, base
+, containers
+, control-monad-free
+, haskeline
+, lib
+, mtl
+, transformers
+}:
+mkDerivation {
+  pname = "wizards";
+  version = "1.0.3";
+  sha256 = "05650d7bf6dd0e6b87d0d7da6fb003601ce5d7b1f3d69571127ec3c9425b9bb2";
+  revision = "1";
+  editedCabalFile = "095qd17zrdhqmcvmslbyzfa5sh9glvvsnsvnlz31gzsmi8nnsgim";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    control-monad-free
+    haskeline
+    mtl
+    transformers
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "High level, generic library for interrogative user interfaces";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/wl-pprint-annotated.nix b/pkgs/wl-pprint-annotated.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e1d30c01514cf11e678f535cc90be31040df4b53
--- /dev/null
+++ b/pkgs/wl-pprint-annotated.nix
@@ -0,0 +1,39 @@
+{ mkDerivation
+, base
+, containers
+, deepseq
+, lib
+, tasty
+, tasty-hunit
+, text
+}:
+mkDerivation {
+  pname = "wl-pprint-annotated";
+  version = "0.1.0.1";
+  sha256 = "6b662b244b2e318a2923dc7057d707369a29ea4a0e721b4710eac7239cc727af";
+  revision = "1";
+  editedCabalFile = "1qizgsiqsraj8w0qndcyw7grcmiylx63vp3lgw2dplchva8p3hp7";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base containers deepseq text ];
+  testHaskellDepends = [
+    base
+    containers
+    deepseq
+    tasty
+    tasty-hunit
+    text
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/minad/wl-pprint-annotated#readme";
+  description = "Pretty printer with annotation support";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/word-wrap.nix b/pkgs/word-wrap.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d24ff2d6663605625b7b0837c92edf392f4960a8
--- /dev/null
+++ b/pkgs/word-wrap.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, criterion, hspec, lib, text }:
+mkDerivation {
+  pname = "word-wrap";
+  version = "0.5";
+  sha256 = "f85f29ce003ca3e195ec95d49e350dfb713bf71db726270143375df2c610a744";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base text ];
+  testHaskellDepends = [ base hspec ];
+  benchmarkHaskellDepends = [ base criterion text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jtdaugherty/word-wrap/";
+  description = "A library for word-wrapping";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/word8.nix b/pkgs/word8.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5b2d9f85c810cb8b64468c86491f3e04cd3200a1
--- /dev/null
+++ b/pkgs/word8.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, bytestring, criterion, hspec, lib }:
+mkDerivation {
+  pname = "word8";
+  version = "0.1.3";
+  sha256 = "2630934c75728bfbf390c1f0206b225507b354f68d4047b06c018a36823b5d8a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base hspec ];
+  benchmarkHaskellDepends = [ base bytestring criterion ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Word8 library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/xml-types.nix b/pkgs/xml-types.nix
new file mode 100644
index 0000000000000000000000000000000000000000..27e165ec03705901e225dedbd75e4d02a2e131d1
--- /dev/null
+++ b/pkgs/xml-types.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, deepseq, lib, text }:
+mkDerivation {
+  pname = "xml-types";
+  version = "0.3.8";
+  sha256 = "dad5e4ce602b7d1f4be37c0cfd99a261a4573746bfd80d917dc955b72da84c80";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://git.singpolyma.net/xml-types-haskell";
+  description = "Basic types for representing XML";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/xml.nix b/pkgs/xml.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c286031d5898b17b0b1f05d994ce9e49b8652091
--- /dev/null
+++ b/pkgs/xml.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, bytestring, lib, text }:
+mkDerivation {
+  pname = "xml";
+  version = "1.3.14";
+  sha256 = "32d1a1a9f21a59176d84697f96ae3a13a0198420e3e4f1c48abbab7d2425013d";
+  revision = "2";
+  editedCabalFile = "15cxa19dp8nqvrrp0bmndkdas2jzg573x8ri75r6kiv8r4vkv8y7";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring text ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/GaloisInc/xml";
+  description = "A simple XML library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hiedb.nix b/pkgs/zip-archive.nix
similarity index 53%
rename from pkgs/hiedb.nix
rename to pkgs/zip-archive.nix
index 32eee4687037e7a5cadc28809ff018c8e7cf8468..7bd65a96687018cb2f4ad1aaedf4efc96c55383d 100644
--- a/pkgs/hiedb.nix
+++ b/pkgs/zip-archive.nix
@@ -1,64 +1,59 @@
 { mkDerivation
-, algebraic-graphs
-, ansi-terminal
 , array
 , base
+, binary
 , bytestring
 , containers
+, digest
 , directory
-, extra
 , filepath
-, ghc
-, ghc-paths
-, hie-compat
-, hspec
+, HUnit
 , lib
-, lucid
 , mtl
-, optparse-applicative
+, pretty
 , process
-, sqlite-simple
 , temporary
-, terminal-size
 , text
+, time
+, unix
+, which
+, zlib
 }:
 mkDerivation {
-  pname = "hiedb";
-  version = "0.4.2.0";
-  sha256 = "9cca518eaa6a5d747c32ca7f50c7ba3c7454fb96239796bbbd6d2cc7cb61b908";
+  pname = "zip-archive";
+  version = "0.4.2.2";
+  sha256 = "a4016b404356e5fe38a89fceb8c88b01251f7e3fe7832323a50a3f732a346709";
   isLibrary = true;
   isExecutable = true;
   enableSeparateDataOutput = false;
   libraryHaskellDepends = [
-    algebraic-graphs
-    ansi-terminal
     array
     base
+    binary
     bytestring
     containers
+    digest
     directory
-    extra
     filepath
-    ghc
-    hie-compat
-    lucid
     mtl
-    optparse-applicative
-    sqlite-simple
-    terminal-size
+    pretty
     text
+    time
+    unix
+    zlib
   ];
-  executableHaskellDepends = [ base ghc-paths ];
   testHaskellDepends = [
     base
+    bytestring
     directory
     filepath
-    ghc
-    ghc-paths
-    hspec
+    HUnit
     process
     temporary
+    time
+    unix
   ];
+  testToolDepends = [ which ];
   enableLibraryProfiling = false;
   enableExecutableProfiling = false;
   doHaddock = false;
@@ -66,8 +61,8 @@ mkDerivation {
   doCheck = false;
   doBenchmark = false;
   hyperlinkSource = false;
-  description = "Generates a references DB from .hie files";
+  homepage = "http://github.com/jgm/zip-archive";
+  description = "Library for creating and modifying zip archives";
   license = lib.licenses.bsd3;
-  mainProgram = "hiedb";
   broken = false;
 }
diff --git a/pkgs/zlib.nix b/pkgs/zlib.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8fa0d9cbaca4ff53c8165b29cd4f6bf63c23777e
--- /dev/null
+++ b/pkgs/zlib.nix
@@ -0,0 +1,36 @@
+{ mkDerivation
+, base
+, bytestring
+, lib
+, QuickCheck
+, tasty
+, tasty-quickcheck
+, zlib
+}:
+mkDerivation {
+  pname = "zlib";
+  version = "0.6.3.0";
+  sha256 = "9eaa989ad4534438b5beb51c1d3a4c8f6a088fdff0b259a5394fbf39aaee04da";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  librarySystemDepends = [ zlib ];
+  testHaskellDepends = [
+    base
+    bytestring
+    QuickCheck
+    tasty
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Compression and decompression in the gzip and zlib formats";
+  license = lib.licenses.bsd3;
+  broken = false;
+}