diff --git a/configuration-ghc-9.4.x.nix b/configuration-ghc.nix
similarity index 100%
rename from configuration-ghc-9.4.x.nix
rename to configuration-ghc.nix
diff --git a/flake.lock b/flake.lock
index c1fc27f5dbe10d275eb7797839c4392a973270b8..4db7b5c8f98e406d4c418049ba1669f0d032c721 100644
--- a/flake.lock
+++ b/flake.lock
@@ -15,6 +15,65 @@
       }
     },
     "flake-utils_2": {
+      "locked": {
+        "lastModified": 1667077288,
+        "narHash": "sha256-bdC8sFNDpT0HK74u9fUkpbf1MEzVYJ+ka7NXCdgBoaA=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "6ee9ebb6b1ee695d2cacc4faa053a7b9baa76817",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
+    },
+    "flake-utils_3": {
+      "locked": {
+        "lastModified": 1659877975,
+        "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
+        "type": "github"
+      },
+      "original": {
+        "id": "flake-utils",
+        "type": "indirect"
+      }
+    },
+    "flake-utils_4": {
+      "locked": {
+        "lastModified": 1644229661,
+        "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
+    },
+    "flake-utils_5": {
+      "locked": {
+        "lastModified": 1644229661,
+        "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
+    },
+    "flake-utils_6": {
       "locked": {
         "lastModified": 1644229661,
         "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
@@ -44,7 +103,114 @@
         "type": "github"
       }
     },
+    "get-flake_2": {
+      "locked": {
+        "lastModified": 1644686428,
+        "narHash": "sha256-zkhYsURWFrvEZLkIoBeqFBzSu+cA2u5mo6M8vq9LN7M=",
+        "owner": "ursi",
+        "repo": "get-flake",
+        "rev": "703f15558daa56dfae19d1858bb3046afe68831a",
+        "type": "github"
+      },
+      "original": {
+        "owner": "ursi",
+        "repo": "get-flake",
+        "type": "github"
+      }
+    },
+    "get-flake_3": {
+      "locked": {
+        "lastModified": 1644686428,
+        "narHash": "sha256-zkhYsURWFrvEZLkIoBeqFBzSu+cA2u5mo6M8vq9LN7M=",
+        "owner": "ursi",
+        "repo": "get-flake",
+        "rev": "703f15558daa56dfae19d1858bb3046afe68831a",
+        "type": "github"
+      },
+      "original": {
+        "owner": "ursi",
+        "repo": "get-flake",
+        "type": "github"
+      }
+    },
+    "horizon-gen-nix": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1674316125,
+        "narHash": "sha256-yUsmHUkNR/9eMnd9F/DC/cvSOaHFJDhdbaI4cG2aZcY=",
+        "ref": "refs/heads/master",
+        "rev": "32cb94962f2ec84090d0d2d36d9728ef443fe239",
+        "revCount": 119,
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/horizon/horizon-gen-nix"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/horizon/horizon-gen-nix"
+      }
+    },
+    "horizon-gen-nix-flake": {
+      "inputs": {
+        "flake-utils": "flake-utils_2",
+        "get-flake": "get-flake_2",
+        "horizon-gen-nix": "horizon-gen-nix",
+        "horizon-platform": "horizon-platform",
+        "lint-utils": "lint-utils_2",
+        "nixpkgs": "nixpkgs_3"
+      },
+      "locked": {
+        "lastModified": 1676371953,
+        "narHash": "sha256-F3TABf4YayjrxVJvZLz0CGCDFtuJqTuRUZ3/VjfbUd4=",
+        "ref": "refs/heads/master",
+        "rev": "49c69972aeb859b8f377121475be71bf3cfe2f87",
+        "revCount": 128,
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/horizon/horizon-gen-nix"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/horizon/horizon-gen-nix"
+      }
+    },
+    "horizon-gen-nix_2": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1668479525,
+        "narHash": "sha256-9mG9K6vcT3cCnAMz1IPKAWQnESMQO730ImoUEqOcTsU=",
+        "ref": "refs/heads/master",
+        "rev": "db65485cc0cb0c462b84c21dff3786507de6821c",
+        "revCount": 50,
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/horizon/horizon-gen-nix"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/horizon/horizon-gen-nix"
+      }
+    },
     "horizon-platform": {
+      "inputs": {
+        "flake-utils": "flake-utils_3",
+        "get-flake": "get-flake_3",
+        "horizon-gen-nix": "horizon-gen-nix_2",
+        "lint-utils": "lint-utils",
+        "nixpkgs": "nixpkgs_2"
+      },
+      "locked": {
+        "lastModified": 1668510809,
+        "narHash": "sha256-e02lJAYXLPdGhJF8yexoiAE6ncUfOSgDxL7bb3a8ci4=",
+        "ref": "refs/heads/master",
+        "rev": "51ffeae6e4cb64c4c0b5c2af322990d3d4089ca2",
+        "revCount": 741,
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/horizon/horizon-platform"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/horizon/horizon-platform"
+      }
+    },
+    "horizon-platform_2": {
       "flake": false,
       "locked": {
         "lastModified": 1672428555,
@@ -62,9 +228,50 @@
     },
     "lint-utils": {
       "inputs": {
-        "flake-utils": "flake-utils_2",
+        "flake-utils": "flake-utils_4",
         "nixpkgs": "nixpkgs"
       },
+      "locked": {
+        "lastModified": 1655192403,
+        "narHash": "sha256-XyKDvRGDh8VXA6zN8DUTnDaTMrk0MxMKg70MaAX1A2Y=",
+        "ref": "refs/heads/master",
+        "rev": "a7ae54afdc4c05a5aabf202d5a76d02705eb6147",
+        "revCount": 28,
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/nix/lint-utils"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/nix/lint-utils"
+      }
+    },
+    "lint-utils_2": {
+      "inputs": {
+        "flake-utils": "flake-utils_5",
+        "nixpkgs": [
+          "horizon-gen-nix-flake",
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1670623736,
+        "narHash": "sha256-CrA/yua5H0NfZ2tu1QZ2WpYi6pkWzyFxiwGk+KoF620=",
+        "ref": "refs/heads/master",
+        "rev": "ee76287dc9987dd01ec38d38839b788a26ee5f24",
+        "revCount": 45,
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/nix/lint-utils"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/nix/lint-utils"
+      }
+    },
+    "lint-utils_3": {
+      "inputs": {
+        "flake-utils": "flake-utils_6",
+        "nixpkgs": "nixpkgs_4"
+      },
       "locked": {
         "lastModified": 1670623736,
         "narHash": "sha256-CrA/yua5H0NfZ2tu1QZ2WpYi6pkWzyFxiwGk+KoF620=",
@@ -96,6 +303,54 @@
       }
     },
     "nixpkgs_2": {
+      "locked": {
+        "lastModified": 1665830552,
+        "narHash": "sha256-qel2bZ9TqfW8WzWCWdjuCy4bVFhhGsEeqFv/bj1ka2s=",
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "rev": "26b7e6ab6a864c3e7e077bcb27a49f0480b9894a",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nixos",
+        "ref": "nixpkgs-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "nixpkgs_3": {
+      "locked": {
+        "lastModified": 1667055375,
+        "narHash": "sha256-xfSTHYxuKRiqF4dcuAFdti1OUvrC2lHpQqCHWUK5/JA=",
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "rev": "7f9be6a505a31f88499c5d20d11f98accf5ae6ba",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nixos",
+        "ref": "nixpkgs-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "nixpkgs_4": {
+      "locked": {
+        "lastModified": 1644525281,
+        "narHash": "sha256-D3VuWLdnLmAXIkooWAtbTGSQI9Fc1lkvAr94wTxhnTU=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "48d63e924a2666baf37f4f14a18f19347fbd54a2",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "nixos-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "nixpkgs_5": {
       "locked": {
         "lastModified": 1673947312,
         "narHash": "sha256-xx/2nRwRy3bXrtry6TtydKpJpqHahjuDB5sFkQ/XNDE=",
@@ -115,9 +370,10 @@
       "inputs": {
         "flake-utils": "flake-utils",
         "get-flake": "get-flake",
-        "horizon-platform": "horizon-platform",
-        "lint-utils": "lint-utils",
-        "nixpkgs": "nixpkgs_2"
+        "horizon-gen-nix-flake": "horizon-gen-nix-flake",
+        "horizon-platform": "horizon-platform_2",
+        "lint-utils": "lint-utils_3",
+        "nixpkgs": "nixpkgs_5"
       }
     }
   },
diff --git a/flake.nix b/flake.nix
index 1568463d7602907026173bbd989207e69d9249b6..68096875e46b0bd65b2e3f723c68dad98382533e 100644
--- a/flake.nix
+++ b/flake.nix
@@ -7,6 +7,7 @@
     };
     lint-utils.url = "git+https://gitlab.homotopic.tech/nix/lint-utils";
     nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+    horizon-gen-nix-flake.url = "git+https://gitlab.homotopic.tech/horizon/horizon-gen-nix";
   };
 
   outputs =
@@ -15,6 +16,7 @@
     , get-flake
     , flake-utils
     , horizon-platform
+    , horizon-gen-nix-flake
     , lint-utils
     , nixpkgs
     , ...
@@ -36,7 +38,7 @@
           runtimeInputs = with pkgs; [ ghc cabal-install ];
           text = ''
             cabal update
-            ${horizon-platform-prev.legacyPackages.${system}.horizon-gen-nix}/bin/horizon-gen-nix;
+            ${horizon-gen-nix-flake.legacyPackages.${system}.horizon-gen-nix}/bin/horizon-gen-nix;
             ${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt pkgs/*
             ${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt initial-packages.nix
           '';
@@ -46,7 +48,7 @@
 
         legacyPackages = pkgs.callPackage (nixpkgs + /pkgs/development/haskell-modules) {
           buildHaskellPackages = pkgs.haskell.packages.ghc944;
-          compilerConfig = pkgs.callPackage ./configuration-ghc-9.4.x.nix { inherit haskellLib; };
+          compilerConfig = pkgs.callPackage ./configuration-ghc.nix { inherit haskellLib; };
           configurationArm = { pkgs, haskellLib }: self: super: { };
           configurationCommon = import ./configuration.nix;
           configurationDarwin = { pkgs, haskellLib }: self: super: { };
diff --git a/horizon.dhall b/horizon.dhall
index 00f55ab39fde18fe1e8dfbe38a9fd24894bcd5f7..848f81e35c5019d5813620fd54d56e57c41d7292 100644
--- a/horizon.dhall
+++ b/horizon.dhall
@@ -1,6 +1,6 @@
 let H =
-      https://gitlab.homotopic.tech/horizon/horizon-spec/-/raw/0.4.2/dhall/package.dhall
-        sha256:63d99b8dc5d0a7b25230dfde746003c5f4b30a607c89f6a104634062eec44503
+      https://gitlab.homotopic.tech/horizon/horizon-spec/-/raw/0.6/dhall/package.dhall
+        sha256:9a80164572526dc5350f105c8db0790fdf36634629b4cf03402ba14fd173d121
 
 let callHorizonAdopted
     : H.Name → H.Revision → H.HaskellPackage.Type
@@ -39,7 +39,7 @@ let callGitKvStoreEffectful
     : H.Subdir → H.HaskellPackage.Type
     = λ(subdir : H.Subdir) →
         H.callGit
-          "https://github.com/TeofilC/servant"
+          "https://github.com/haskell-effectful/kvstore-effectful"
           "3502825423aea3a1af9384e9d751feea4599c60b"
           (Some subdir)
 
@@ -51,6 +51,20 @@ let callGitServant
           "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc"
           (Some subdir)
 
+let callHaskellLanguageServer
+    : H.HaskellPackage.Type
+    = (H.callHackage "haskell-language-server" "1.9.0.0")
+      with flags =
+        [ H.CabalFlag.Disable "dynamic"
+        , H.CabalFlag.Disable "ormolu"
+        , H.CabalFlag.Disable "rename"
+        , H.CabalFlag.Disable "stylishHaskell"
+        , H.CabalFlag.Disable "eval"
+        , H.CabalFlag.Disable "floskell"
+        ]
+      with modifiers.enableProfiling = False
+      with modifiers.includeBenchmarks = False
+
 let packages =
       { BNFC = H.callHackage "BNFC" "2.9.4.1"
       , Boolean = H.callHackage "Boolean" "0.2.4"
@@ -59,6 +73,8 @@ let packages =
       , Cabal-described = callGitCabal "Cabal-described"
       , Cabal-syntax = callGitCabal "Cabal-syntax"
       , Cabal-tree-diff = callGitCabal "Cabal-tree-diff"
+      , Chart = H.callHackage "Chart" "1.9.4"
+      , Chart-diagrams = H.callHackage "Chart-diagrams" "1.9.4"
       , ChasingBottoms = H.callHackage "ChasingBottoms" "1.3.1.12"
       , Decimal = H.callHackage "Decimal" "0.5.2"
       , Diff = H.callHackage "Diff" "0.4.1"
@@ -71,7 +87,10 @@ let packages =
       , HsYAML = H.callHackage "HsYAML" "0.2.1.1"
       , ListLike = H.callHackage "ListLike" "4.7.7"
       , JuicyPixels = H.callHackage "JuicyPixels" "3.3.8"
+      , MemoTrie = H.callHackage "MemoTrie" "0.6.10"
       , MonadRandom = H.callHackage "MonadRandom" "0.5.3"
+      , MonadPrompt = H.callHackage "MonadPrompt" "1.0.0.5"
+      , NumInstances = H.callHackage "NumInstances" "1.4"
       , OneTuple = H.callHackage "OneTuple" "0.3.1"
       , Only = H.callHackage "Only" "0.1"
       , OpenGLRaw = H.callHackage "OpenGLRaw" "3.3.4.1"
@@ -81,25 +100,28 @@ let packages =
       , SHA = H.callHackage "SHA" "1.6.4.4"
       , StateVar = H.callHackage "StateVar" "1.2.2"
       , Stream = H.callHackage "Stream" "0.4.7.2"
+      , SVGFonts = H.callHackage "SVGFonts" "1.8.0.1"
       , Unique = H.callHackage "Unique" "0.4.7.9"
       , X11-xft = H.callHackage "X11-xft" "0.3.4"
       , X11 = H.callHackage "X11" "1.10.3"
       , abstract-deque-tests = H.callHackage "abstract-deque-tests" "0.3"
       , abstract-deque = H.callHackage "abstract-deque" "0.3"
       , abstract-par = H.callHackage "abstract-par" "0.3.3"
+      , active = H.callHackage "active" "0.2.0.16"
       , adjunctions = H.callHackage "adjunctions" "4.4.2"
       , aeson = H.callHackage "aeson" "2.1.0.0"
       , aeson-pretty = H.callHackage "aeson-pretty" "0.8.9"
       , aeson-qq = H.callHackage "aeson-qq" "0.8.4"
       , aeson-yaml = H.callHackage "aeson-yaml" "1.1.0.1"
       , alex = H.callHackage "alex" "3.2.7.1"
-      , algebraic-graphs = H.callHackage "algebraic-graphs" "0.7"
+      , algebraic-graphs = H.callHackage "algebraic-graphs" "0.6.1"
       , alsa-core = H.callHackage "alsa-core" "0.5.0.1"
       , alsa-mixer = H.callHackage "alsa-mixer" "0.3.0"
       , ansi-terminal = H.callHackage "ansi-terminal" "0.11.3"
       , ansi-wl-pprint = H.callHackage "ansi-wl-pprint" "0.6.9"
       , ap-normalize = H.callHackage "ap-normalize" "0.1.0.1"
       , appar = H.callHackage "appar" "0.1.8"
+      , apply-refact = H.callHackage "apply-refact" "0.11.0.0"
       , apecs = H.callHackage "apecs" "0.9.4"
       , asn1-encoding = H.callHackage "asn1-encoding" "0.9.6"
       , asn1-parse = H.callHackage "asn1-parse" "0.9.5"
@@ -146,6 +168,7 @@ let packages =
       , blaze-html = H.callHackage "blaze-html" "0.9.1.2"
       , blaze-markup = H.callHackage "blaze-markup" "0.8.2.8"
       , blaze-textual = H.callHackage "blaze-textual" "0.2.2.1"
+      , blaze-svg = H.callHackage "blaze-svg" "0.3.6.1"
       , boring = H.callHackage "boring" "0.2"
       , breakpoint = H.callHackage "breakpoint" "0.1.1.1"
       , brick = H.callHackage "brick" "1.3"
@@ -179,6 +202,7 @@ let packages =
       , checkers = H.callHackage "checkers" "0.6.0"
       , chell-quickcheck = H.callHackage "chell-quickcheck" "0.2.5.3"
       , chell = H.callHackage "chell" "0.5.0.1"
+      , circle-packing = H.callHackage "circle-packing" "0.1.0.6"
       , citeproc = H.callHackage "citeproc" "0.8.0.1"
       , clock = H.callHackage "clock" "0.8.3"
       , cmark-gfm = H.callHackage "cmark-gfm" "0.2.5"
@@ -208,6 +232,7 @@ let packages =
       , concurrent-extra = H.callHackage "concurrent-extra" "0.7.0.12"
       , concurrent-output = H.callHackage "concurrent-output" "1.10.16"
       , conduit-combinators = H.callHackage "conduit-combinators" "1.3.0"
+      , conduit-parse = H.callHackage "conduit-parse" "0.2.1.1"
       , conduit = H.callHackage "conduit" "1.3.4.2"
       , conduit-extra = H.callHackage "conduit-extra" "1.3.6"
       , config-ini = H.callHackage "config-ini" "0.2.5.0"
@@ -223,6 +248,7 @@ let packages =
       , css-text = H.callHackage "css-text" "0.1.3.0"
       , csv =
           callHorizonAdopted "csv" "d02b89bbad79136b52fd1197f087466cf51573dd"
+      , cubicbezier = H.callHackage "cubicbezier" "0.6.0.6"
       , cursor-brick = H.callHackage "cursor-brick" "0.1.0.1"
       , cursor-dirforest = callGitCursorDirforest "cursor-dirforest"
       , cursor-dirforest-brick = callGitCursorDirforest "cursor-dirforest-brick"
@@ -257,6 +283,7 @@ let packages =
       , dbus = H.callHackage "dbus" "1.2.27"
       , dec = H.callHackage "dec" "0.0.5"
       , deepseq-generics = H.callHackage "deepseq-generics" "0.2.0.0"
+      , deferred-folds = H.callHackage "deferred-folds" "0.9.18.2"
       , dense-linear-algebra = H.callHackage "dense-linear-algebra" "0.1.0.0"
       , dependent-map = H.callHackage "dependent-map" "0.4.0.0"
       , dependent-sum-template =
@@ -268,6 +295,12 @@ let packages =
       , deriving-aeson = H.callHackage "deriving-aeson" "0.2.8"
       , dhall = H.callHackage "dhall" "1.41.2"
       , dhall-json = H.callHackage "dhall-json" "1.7.11"
+      , diagrams-contrib = H.callHackage "diagrams-contrib" "1.4.5"
+      , diagrams-core = H.callHackage "diagrams-core" "1.5.0.1"
+      , diagrams-lib = H.callHackage "diagrams-lib" "1.4.5.3"
+      , diagrams-postscript = H.callHackage "diagrams-postscript" "1.5.1"
+      , diagrams-solve = H.callHackage "diagrams-solve" "0.1.3"
+      , diagrams-svg = H.callHackage "diagrams-svg" "1.4.3.1"
       , dictionary-sharing = H.callHackage "dictionary-sharing" "0.1.0.0"
       , digest = H.callHackage "digest" "0.0.1.3"
       , dimensional = H.callHackage "dimensional" "1.5"
@@ -299,6 +332,7 @@ let packages =
             "https://github.com/haskell/double-conversion"
             "5d092e0664442eaac8ae1d101dba57ce9b1c9b03"
             (None Text)
+      , dual-tree = H.callHackage "dual-tree" "0.2.3.1"
       , easy-file = H.callHackage "easy-file" "0.2.2"
       , echo = H.callHackage "echo" "0.1.4"
       , ed25519 =
@@ -330,6 +364,7 @@ let packages =
       , enclosed-exceptions = H.callHackage "enclosed-exceptions" "1.0.3"
       , entropy = H.callHackage "entropy" "0.4.1.10"
       , envparse = H.callHackage "envparse" "0.5.0"
+      , enummapset = H.callHackage "enummapset" "0.7.1.0"
       , erf = H.callHackage "erf" "2.0.0.0"
       , errors = H.callHackage "errors" "2.3.0"
       , exact-combinatorics = H.callHackage "exact-combinatorics" "0.2.0.11"
@@ -340,6 +375,7 @@ let packages =
       , extra = H.callHackage "extra" "1.7.12"
       , expiring-cache-map = H.callHackage "expiring-cache-map" "0.0.6.1"
       , fail = H.callHackage "fail" "4.9.0.0"
+      , fast-math = H.callHackage "fast-math" "1.0.2"
       , fast-logger = H.callHackage "fast-logger" "3.1.1"
       , fcf-containers = H.callHackage "fcf-containers" "0.7.1"
       , feedback = H.callHackage "feedback" "0.1.0.1"
@@ -360,17 +396,22 @@ let packages =
       , first-class-families = H.callHackage "first-class-families" "0.8.0.1"
       , fin = H.callHackage "fin" "0.2.1"
       , fixed = H.callHackage "fixed" "0.3"
+      , floatshow = H.callHackage "floatshow" "0.2.4"
       , fmlist = H.callHackage "fmlist" "0.9.4"
       , fmt = H.callHackage "fmt" "0.6.3.0"
+      , focus = H.callHackage "focus" "1.0.3"
       , foldl = H.callHackage "foldl" "1.4.12"
+      , force-layout = H.callHackage "force-layout" "0.4.0.6"
       , foreign-store = H.callHackage "foreign-store" "0.2"
       , formatting = H.callHackage "formatting" "7.1.3"
       , foundation = H.callHackage "foundation" "0.0.29"
+      , fourmolu = H.callHackage "fourmolu" "0.10.1.0"
       , free = H.callHackage "free" "5.1.9"
       , freer-simple = H.callHackage "freer-simple" "1.2.1.2"
       , friendly-time = H.callHackage "friendly-time" "0.4.1"
       , fsnotify = H.callHackage "fsnotify" "0.4.1.0"
       , fusion-plugin-types = H.callHackage "fusion-plugin-types" "0.1.0"
+      , fuzzy = H.callHackage "fuzzy" "0.1.0.1"
       , fuzzy-time-gen = H.callHackage "fuzzy-time-gen" "0.2.0.1"
       , fuzzy-time = H.callHackage "fuzzy-time" "0.2.0.3"
       , generically = H.callHackage "generically" "0.1"
@@ -428,14 +469,18 @@ let packages =
       , ghc-byteorder = H.callHackage "ghc-byteorder" "4.11.0.0.10"
       , ghc-check = H.callHackage "ghc-check" "0.5.0.8"
       , ghc-exactprint = H.callHackage "ghc-exactprint" "1.6.1.1"
-      , ghc-lib-parser = H.callHackage "ghc-lib-parser" "9.4.2.20220822"
+      , ghc-lib-parser = H.callHackage "ghc-lib-parser" "9.4.4.20221225"
       , ghc-lib-parser-ex = H.callHackage "ghc-lib-parser-ex" "9.4.0.0"
       , ghc-paths = H.callHackage "ghc-paths" "0.1.0.12"
       , ghc-tcplugins-extra = H.callHackage "ghc-tcplugins-extra" "0.4.3"
+      , ghc-trace-events = H.callHackage "ghc-trace-events" "0.1.2.6"
       , ghc-typelits-knownnat = H.callHackage "ghc-typelits-knownnat" "0.7.7"
       , ghc-typelits-natnormalise =
           H.callHackage "ghc-typelits-natnormalise" "0.7.7"
       , ghcid = H.callHackage "ghcid" "0.8.8"
+      , ghcide = H.callHackage "ghcide" "1.9.0.0"
+      , ghcide-bench = H.callHackage "ghcide-bench" "0.1.1"
+      , ghcide-test-utils = H.callHackage "ghcide-test-utils" "1.9.0.0"
       , githash = H.callHackage "githash" "0.1.6.3"
       , gitrev = H.callHackage "gitrev" "1.3.1"
       , gridtables = H.callHackage "gridtables" "0.1.0.0"
@@ -455,6 +500,7 @@ let packages =
       , haskell-src = H.callHackage "haskell-src" "1.0.4"
       , haskell-src-exts = H.callHackage "haskell-src-exts" "1.23.1"
       , haskell-src-meta = H.callHackage "haskell-src-meta" "0.8.11"
+      , haskell-language-server = callHaskellLanguageServer
       , heaps = H.callHackage "heaps" "0.4"
       , hedgehog-extras = H.callHackage "hedgehog-extras" "0.3.0.3"
       , hedgehog-fn = H.callHackage "hedgehog-fn" "1.0"
@@ -469,19 +515,54 @@ let packages =
       , hex-text = H.callHackage "hex-text" "0.1.0.7"
       , hie-bios = H.callHackage "hie-bios" "0.11.0"
       , hie-compat = H.callHackage "hie-compat" "0.3.0.0"
+      , hiedb = H.callHackage "hiedb" "0.4.2.0"
       , hinotify = H.callHackage "hinotify" "0.4.1"
       , hledger-lib = H.callHackage "hledger-lib" "1.27.1"
       , hledger = H.callHackage "hledger" "1.27.1"
       , hlint = H.callHackage "hlint" "3.5"
+      , hls-alternate-number-format-plugin =
+          H.callHackage "hls-alternate-number-format-plugin" "1.3.0.0"
+      , hls-cabal-fmt-plugin = H.callHackage "hls-cabal-fmt-plugin" "0.1.0.0"
+      , hls-cabal-plugin = H.callHackage "hls-cabal-plugin" "0.1.0.0"
+      , hls-call-hierarchy-plugin =
+          H.callHackage "hls-call-hierarchy-plugin" "1.2.0.0"
+      , hls-change-type-signature-plugin =
+          H.callHackage "hls-change-type-signature-plugin" "1.1.0.0"
+      , hls-class-plugin = H.callHackage "hls-class-plugin" "1.1.1.0"
+      , hls-code-range-plugin = H.callHackage "hls-code-range-plugin" "1.1.0.0"
+      , hls-explicit-fixity-plugin =
+          H.callHackage "hls-explicit-fixity-plugin" "1.1.0.0"
+      , hls-explicit-imports-plugin =
+          H.callHackage "hls-explicit-imports-plugin" "1.2.0.0"
+      , hls-explicit-record-fields-plugin =
+          H.callHackage "hls-explicit-record-fields-plugin" "1.0.0.0"
+      , hls-fourmolu-plugin = H.callHackage "hls-fourmolu-plugin" "1.1.1.0"
+      , hls-gadt-plugin = H.callHackage "hls-gadt-plugin" "1.0.1.0"
+      , hls-graph = H.callHackage "hls-graph" "1.9.0.0"
+      , hls-hlint-plugin = H.callHackage "hls-hlint-plugin" "1.1.1.0"
+      , hls-module-name-plugin =
+          H.callHackage "hls-module-name-plugin" "1.1.1.0"
+      , hls-plugin-api = H.callHackage "hls-plugin-api" "1.6.0.0"
+      , hls-pragmas-plugin = H.callHackage "hls-pragmas-plugin" "1.0.4.0"
+      , hls-qualify-imported-names-plugin =
+          H.callHackage "hls-qualify-imported-names-plugin" "1.0.2.0"
+      , hls-refactor-plugin = H.callHackage "hls-refactor-plugin" "1.1.0.0"
+      , hls-refine-imports-plugin =
+          H.callHackage "hls-refine-imports-plugin" "1.0.4.0"
+      , hls-retrie-plugin = H.callHackage "hls-retrie-plugin" "1.0.3.0"
+      , hls-splice-plugin = H.callHackage "hls-splice-plugin" "1.0.3.0"
+      , hls-test-utils = H.callHackage "hls-test-utils" "1.5.0.0"
       , hopenssl = H.callHackage "hopenssl" "2.2.4"
       , horizon-gen-nix = H.callHackage "horizon-gen-nix" "0.5"
       , horizon-spec = H.callHackage "horizon-spec" "0.5"
       , hosc = H.callHackage "hosc" "0.19.1"
       , hostname = H.callHackage "hostname" "1.0"
       , hourglass = H.callHackage "hourglass" "0.2.12"
+      , hp2pretty = H.callHackage "hp2pretty" "0.10"
       , hpack-dhall = H.callHackage "hpack-dhall" "0.5.7"
       , hpack = H.callHackage "hpack" "0.35.0"
       , hscolour = H.callHackage "hscolour" "1.24.4"
+      , hslogger = H.callHackage "hslogger" "1.3.1.0"
       , hslua-aeson = H.callHackage "hslua-aeson" "2.2.1"
       , hslua-core = H.callHackage "hslua-core" "2.2.1"
       , hslua-classes = H.callHackage "hslua-classes" "2.2.0"
@@ -495,6 +576,7 @@ let packages =
           H.callHackage "hslua-objectorientation" "2.2.1"
       , hslua-packaging = H.callHackage "hslua-packaging" "2.2.1"
       , hslua = H.callHackage "hslua" "2.2.1"
+      , hspec-attoparsec = H.callHackage "hspec-attoparsec" "0.1.0.2"
       , hspec-contrib = H.callHackage "hspec-contrib" "0.5.1.1"
       , hspec-core = H.callHackage "hspec-core" "2.10.0.1"
       , hspec-discover = H.callHackage "hspec-discover" "2.10.0.1"
@@ -524,6 +606,10 @@ let packages =
       , http-types = H.callHackage "http-types" "0.12.3"
       , http2 = H.callHackage "http2" "3.0.3"
       , hw-aeson = H.callHackage "hw-aeson" "0.1.8.0"
+      , hw-fingertree = H.callHackage "hw-fingertree" "0.1.2.1"
+      , hw-hedgehog = H.callHackage "hw-hedgehog" "0.1.1.1"
+      , hw-hspec-hedgehog = H.callHackage "hw-hspec-hedgehog" "0.1.1.1"
+      , hw-prim = H.callHackage "hw-prim" "0.6.3.2"
       , hxt = H.callHackage "hxt" "9.3.1.22"
       , hxt-charproperties = H.callHackage "hxt-charproperties" "9.5.0.0"
       , hxt-regex-xmlschema = H.callHackage "hxt-regex-xmlschema" "9.2.0.7"
@@ -544,9 +630,13 @@ let packages =
           H.callHackage "insert-ordered-containers" "0.2.5.1"
       , inspection-testing = H.callHackage "inspection-testing" "0.5"
       , int-cast = H.callHackage "int-cast" "0.2.0.0"
+      , integration = H.callHackage "integration" "0.2.1"
       , integer-logarithms = H.callHackage "integer-logarithms" "1.0.3.1"
       , interpolate = H.callHackage "interpolate" "0.2.1"
+      , intervals = H.callHackage "intervals" "0.9.2"
       , invariant = H.callHackage "invariant" "0.6"
+      , implicit-hie = H.callHackage "implicit-hie" "0.1.4.0"
+      , implicit-hie-cradle = H.callHackage "implicit-hie-cradle" "0.5.0.0"
       , io-streams-haproxy = H.callHackage "io-streams-haproxy" "1.0.1.0"
       , io-streams = H.callHackage "io-streams" "1.5.2.2"
       , ipynb = H.callHackage "ipynb" "0.2"
@@ -607,6 +697,7 @@ let packages =
       , lpeg = H.callHackage "lpeg" "1.0.3"
       , lrucache = H.callHackage "lrucache" "1.2.0.1"
       , lsp-types = H.callHackage "lsp-types" "1.6.0.0"
+      , lsp-test = H.callHackage "lsp-test" "0.14.1.0"
       , lsp = H.callHackage "lsp" "1.6.0.0"
       , lua-arbitrary = H.callHackage "lua-arbitrary" "1.0.1"
       , lua = H.callHackage "lua" "2.2.1"
@@ -622,12 +713,14 @@ let packages =
       , markov-chain-usage-model =
           H.callHackage "markov-chain-usage-model" "0.0.0"
       , math-functions = H.callHackage "math-functions" "0.3.4.2"
+      , matrices = H.callHackage "matrices" "0.5.0"
       , matrix = H.callHackage "matrix" "0.3.6.1"
       , megaparsec = H.callHackage "megaparsec" "9.2.2"
       , mersenne-random-pure64 =
           H.callHackage "mersenne-random-pure64" "0.2.2.0"
       , memory = H.callHackage "memory" "0.18.0"
       , mersenne-random = H.callHackage "mersenne-random" "1.0.0.1"
+      , mfsolve = H.callHackage "mfsolve" "0.3.2.1"
       , microlens-aeson = H.callHackage "microlens-aeson" "2.5.0"
       , microlens-ghc = H.callHackage "microlens-ghc" "0.4.14.0"
       , microlens-mtl = H.callHackage "microlens-mtl" "0.2.0.2"
@@ -637,6 +730,7 @@ let packages =
       , microspec = H.callHackage "microspec" "0.2.1.3"
       , microstache = H.callHackage "microstache" "1.0.2.2"
       , mime-types = H.callHackage "mime-types" "0.1.1.0"
+      , mmap = H.callHackage "mmap" "0.5.9"
       , mmorph = H.callHackage "mmorph" "1.2.0"
       , mockery = H.callHackage "mockery" "0.3.5"
       , mod = H.callHackage "mod" "0.1.2.2"
@@ -649,13 +743,16 @@ let packages =
       , monad-par-extras = H.callHackage "monad-par-extras" "0.3.3"
       , monad-par = H.callHackage "monad-par" "0.3.5"
       , monad-peel = H.callHackage "monad-peel" "0.2.1.2"
+      , monad-primitive = H.callHackage "monad-primitive" "0.1"
       , mono-traversable = H.callHackage "mono-traversable" "1.0.15.3"
       , monoidal-containers = H.callHackage "monoidal-containers" "0.6.3.0"
+      , monoid-extras = H.callHackage "monoid-extras" "0.6.2"
       , monoid-subclasses = H.callHackage "monoid-subclasses" "1.1.3"
       , mtl-compat = H.callHackage "mtl-compat" "0.2.2"
       , mtl-prelude = H.callHackage "mtl-prelude" "2.0.3.1"
       , multiset = H.callHackage "multiset" "0.3.4.3"
       , mwc-random = H.callHackage "mwc-random" "0.15.0.2"
+      , mwc-random-monad = H.callHackage "mwc-random-monad" "0.7.3.1"
       , nanospec = H.callHackage "nanospec" "0.2.2"
       , nats = H.callHackage "nats" "1.1.2"
       , natural-arithmetic = H.callHackage "natural-arithmetic" "0.1.3.0"
@@ -673,6 +770,7 @@ let packages =
       , newtype = H.callHackage "newtype" "0.2.2.0"
       , nonempty-vector = H.callHackage "nonempty-vector" "0.2.1.0"
       , nothunks = H.callHackage "nothunks" "0.1.3"
+      , numeric-extras = H.callHackage "numeric-extras" "0.1"
       , numtype-dk = H.callHackage "numtype-dk" "0.5.0.3"
       , odd-jobs =
           H.callGit
@@ -684,6 +782,8 @@ let packages =
       , one-liner = H.callHackage "one-liner" "2.1"
       , openapi3 = H.callHackage "openapi3" "3.2.2"
       , openssl-streams = H.callHackage "openssl-streams" "1.2.3.0"
+      , operational = H.callHackage "operational" "0.2.4.2"
+      , opentelemetry = H.callHackage "opentelemetry" "0.8.0"
       , optics-core = H.callHackage "optics-core" "0.4.1"
       , optics-extra = H.callHackage "optics-extra" "0.4.2.1"
       , optics-th = H.callHackage "optics-th" "0.4.1"
@@ -692,6 +792,7 @@ let packages =
       , options = H.callHackage "options" "1.2.1.1"
       , optparse-applicative = H.callHackage "optparse-applicative" "0.17.0.0"
       , optparse-generic = H.callHackage "optparse-generic" "1.4.8"
+      , optparse-simple = H.callHackage "optparse-simple" "0.1.1.4"
       , ordered-containers = H.callHackage "ordered-containers" "0.2.3"
       , pandoc-lua-marshal = H.callHackage "pandoc-lua-marshal" "0.1.7"
       , pandoc-types = H.callHackage "pandoc-types" "1.22.2.1"
@@ -767,7 +868,9 @@ let packages =
       , primes = H.callHackage "primes" "0.2.1.0"
       , primitive = H.callHackage "primitive" "0.7.4.0"
       , primitive-addr = H.callHackage "primitive-addr" "0.1.0.2"
+      , primitive-extras = H.callHackage "primitive-extras" "0.10.1.5"
       , primitive-offset = H.callHackage "primitive-offset" "0.2.0.0"
+      , primitive-unlifted = H.callHackage "primitive-unlifted" "0.1.3.1"
       , procex = H.callHackage "procex" "0.3.3"
       , profunctors = H.callHackage "profunctors" "5.6.2"
       , prometheus-client = H.callHackage "prometheus-client" "1.1.0"
@@ -794,6 +897,7 @@ let packages =
       , quiet = H.callHackage "quiet" "0.2"
       , ral = H.callHackage "ral" "0.1"
       , random-bytestring = H.callHackage "random-bytestring" "0.1.4"
+      , random-fu = H.callHackage "random-fu" "0.3.0.0"
       , random-shuffle = H.callHackage "random-shuffle" "0.0.4"
       , random = H.callHackage "random" "1.2.1.1"
       , raven-haskell = H.callHackage "raven-haskell" "0.1.4.1"
@@ -822,8 +926,10 @@ let packages =
       , resource-pool = H.callHackage "resource-pool" "0.3.1.0"
       , resourcet = H.callHackage "resourcet" "1.3.0"
       , retry = H.callHackage "retry" "0.9.3.0"
+      , retrie = H.callHackage "retrie" "1.2.1.1"
       , rope-utf16-splay = H.callHackage "rope-utf16-splay" "0.4.0.0"
       , row-types = H.callHackage "row-types" "1.0.1.2"
+      , rvar = H.callHackage "rvar" "0.3.0.1"
       , RSA = H.callHackage "RSA" "2.4.1"
       , safe-coloured-text-layout =
           H.callHackage "safe-coloured-text-layout" "0.0.0.0"
@@ -879,6 +985,7 @@ let packages =
       , setlocale = H.callHackage "setlocale" "1.0.0.10"
       , shakespeare = H.callHackage "shakespeare" "2.0.30"
       , shake = H.callHackage "shake" "0.19.6"
+      , shake-bench = H.callHackage "shake-bench" "0.2.0.0"
       , shelly = H.callHackage "shelly" "1.10.0"
       , shh = H.callHackage "shh" "0.7.2.0"
       , should-not-typecheck = H.callHackage "should-not-typecheck" "2.1.0"
@@ -911,9 +1018,12 @@ let packages =
       , split = H.callHackage "split" "0.2.3.3"
       , spoon = H.callHackage "spoon" "0.3.1"
       , sqlite-simple = H.callHackage "sqlite-simple" "0.4.18.2"
+      , statestack = H.callHackage "statestack" "0.3.1"
       , statistics-linreg = H.callHackage "statistics-linreg" "0.3"
       , statistics = H.callHackage "statistics" "0.16.1.0"
       , stm-chans = H.callHackage "stm-chans" "3.0.0.6"
+      , stm-hamt = H.callHackage "stm-hamt" "1.2.0.8"
+      , stm-containers = H.callHackage "stm-containers" "1.2"
       , streaming-commons = H.callHackage "streaming-commons" "0.2.2.4"
       , streaming = H.callHackage "streaming" "0.2.3.1"
       , streamly = H.callHackage "streamly" "0.8.3"
@@ -932,6 +1042,7 @@ let packages =
       , stringbuilder = H.callHackage "stringbuilder" "0.5.1"
       , stringsearch = H.callHackage "stringsearch" "0.3.6.6"
       , sundown = H.callHackage "sundown" "0.6"
+      , svg-builder = H.callHackage "svg-builder" "0.1.1"
       , swagger2 = H.callHackage "swagger2" "2.8.5"
       , syb = H.callHackage "syb" "0.7.2.1"
       , sydtest = H.callHackage "sydtest" "0.13.0.0"
@@ -971,6 +1082,7 @@ let packages =
           H.callHackage "tasty-inspection-testing" "0.2"
       , tasty-kat = H.callHackage "tasty-kat" "0.0.3"
       , tasty-lua = H.callHackage "tasty-lua" "1.0.2"
+      , tasty-rerun = H.callHackage "tasty-rerun" "1.1.18"
       , tasty-silver = H.callHackage "tasty-silver" "3.3.1.1"
       , tasty-smallcheck = H.callHackage "tasty-smallcheck" "0.8.2"
       , tasty-th = H.callHackage "tasty-th" "0.1.7"
@@ -986,6 +1098,7 @@ let packages =
           H.callHackage "test-framework-quickcheck2" "0.3.0.5"
       , test-framework-smallcheck =
           H.callHackage "test-framework-smallcheck" "0.2"
+      , testing-feat = H.callHackage "testing-feat" "1.1.1.1"
       , testing-type-modifiers =
           H.callHackage "testing-type-modifiers" "0.1.0.1"
       , texmath = H.callHackage "texmath" "0.12.5.4"
@@ -1087,6 +1200,7 @@ let packages =
           H.callHackage "vector-binary-instances" "0.2.5.2"
       , vector-instances = H.callHackage "vector-instances" "3.4"
       , vector-sized = H.callHackage "vector-sized" "1.5.0"
+      , vector-space = H.callHackage "vector-space" "0.16"
       , vector-stream = H.callHackage "vector-stream" "0.1.0.0"
       , vector-th-unbox = H.callHackage "vector-th-unbox" "0.2.2"
       , vec = H.callHackage "vec" "0.4.1"
@@ -1143,5 +1257,5 @@ let packages =
 in  H.HorizonExport.MakePackageSet
       { packagesDir = "pkgs"
       , packageSetFile = "initial-packages.nix"
-      , packageSet = { compiler = "ghc-9.4.2", packages = toMap packages }
+      , packageSet = { compiler = "ghc-9.4.4", packages = toMap packages }
       }
diff --git a/initial-packages.nix b/initial-packages.nix
index fb5b50407d386eeb373520f83056a97c79781402..3cd76043560a2dfbdb1c9112b94b7b2e63ac4487 100644
--- a/initial-packages.nix
+++ b/initial-packages.nix
@@ -15,6 +15,10 @@ self: with pkgs.haskell.lib; {
 
   Cabal-tree-diff = self.callPackage (./pkgs/Cabal-tree-diff.nix) { };
 
+  Chart = self.callPackage (./pkgs/Chart.nix) { };
+
+  Chart-diagrams = self.callPackage (./pkgs/Chart-diagrams.nix) { };
+
   ChasingBottoms = self.callPackage (./pkgs/ChasingBottoms.nix) { };
 
   Decimal = self.callPackage (./pkgs/Decimal.nix) { };
@@ -39,8 +43,14 @@ self: with pkgs.haskell.lib; {
 
   ListLike = self.callPackage (./pkgs/ListLike.nix) { };
 
+  MemoTrie = self.callPackage (./pkgs/MemoTrie.nix) { };
+
+  MonadPrompt = self.callPackage (./pkgs/MonadPrompt.nix) { };
+
   MonadRandom = self.callPackage (./pkgs/MonadRandom.nix) { };
 
+  NumInstances = self.callPackage (./pkgs/NumInstances.nix) { };
+
   OneTuple = self.callPackage (./pkgs/OneTuple.nix) { };
 
   Only = self.callPackage (./pkgs/Only.nix) { };
@@ -57,6 +67,8 @@ self: with pkgs.haskell.lib; {
 
   SHA = self.callPackage (./pkgs/SHA.nix) { };
 
+  SVGFonts = self.callPackage (./pkgs/SVGFonts.nix) { };
+
   StateVar = self.callPackage (./pkgs/StateVar.nix) { };
 
   Stream = self.callPackage (./pkgs/Stream.nix) { };
@@ -73,6 +85,8 @@ self: with pkgs.haskell.lib; {
 
   abstract-par = self.callPackage (./pkgs/abstract-par.nix) { };
 
+  active = self.callPackage (./pkgs/active.nix) { };
+
   adjunctions = self.callPackage (./pkgs/adjunctions.nix) { };
 
   aeson = self.callPackage (./pkgs/aeson.nix) { };
@@ -101,6 +115,8 @@ self: with pkgs.haskell.lib; {
 
   appar = self.callPackage (./pkgs/appar.nix) { };
 
+  apply-refact = self.callPackage (./pkgs/apply-refact.nix) { };
+
   asn1-encoding = self.callPackage (./pkgs/asn1-encoding.nix) { };
 
   asn1-parse = self.callPackage (./pkgs/asn1-parse.nix) { };
@@ -187,6 +203,8 @@ self: with pkgs.haskell.lib; {
 
   blaze-markup = self.callPackage (./pkgs/blaze-markup.nix) { };
 
+  blaze-svg = self.callPackage (./pkgs/blaze-svg.nix) { };
+
   blaze-textual = self.callPackage (./pkgs/blaze-textual.nix) { };
 
   boring = self.callPackage (./pkgs/boring.nix) { };
@@ -247,6 +265,8 @@ self: with pkgs.haskell.lib; {
 
   chell-quickcheck = self.callPackage (./pkgs/chell-quickcheck.nix) { };
 
+  circle-packing = self.callPackage (./pkgs/circle-packing.nix) { };
+
   citeproc = self.callPackage (./pkgs/citeproc.nix) { };
 
   clock = self.callPackage (./pkgs/clock.nix) { };
@@ -301,6 +321,8 @@ self: with pkgs.haskell.lib; {
 
   conduit-extra = self.callPackage (./pkgs/conduit-extra.nix) { };
 
+  conduit-parse = self.callPackage (./pkgs/conduit-parse.nix) { };
+
   config-ini = self.callPackage (./pkgs/config-ini.nix) { };
 
   connection = self.callPackage (./pkgs/connection.nix) { };
@@ -343,6 +365,8 @@ self: with pkgs.haskell.lib; {
 
   csv = self.callPackage (./pkgs/csv.nix) { };
 
+  cubicbezier = self.callPackage (./pkgs/cubicbezier.nix) { };
+
   cursor = self.callPackage (./pkgs/cursor.nix) { };
 
   cursor-brick = self.callPackage (./pkgs/cursor-brick.nix) { };
@@ -387,6 +411,8 @@ self: with pkgs.haskell.lib; {
 
   deepseq-generics = self.callPackage (./pkgs/deepseq-generics.nix) { };
 
+  deferred-folds = self.callPackage (./pkgs/deferred-folds.nix) { };
+
   dense-linear-algebra = self.callPackage (./pkgs/dense-linear-algebra.nix) { };
 
   dependent-map = self.callPackage (./pkgs/dependent-map.nix) { };
@@ -407,6 +433,18 @@ self: with pkgs.haskell.lib; {
 
   dhall-json = self.callPackage (./pkgs/dhall-json.nix) { };
 
+  diagrams-contrib = self.callPackage (./pkgs/diagrams-contrib.nix) { };
+
+  diagrams-core = self.callPackage (./pkgs/diagrams-core.nix) { };
+
+  diagrams-lib = self.callPackage (./pkgs/diagrams-lib.nix) { };
+
+  diagrams-postscript = self.callPackage (./pkgs/diagrams-postscript.nix) { };
+
+  diagrams-solve = self.callPackage (./pkgs/diagrams-solve.nix) { };
+
+  diagrams-svg = self.callPackage (./pkgs/diagrams-svg.nix) { };
+
   dictionary-sharing = self.callPackage (./pkgs/dictionary-sharing.nix) { };
 
   digest = self.callPackage (./pkgs/digest.nix) { };
@@ -445,6 +483,8 @@ self: with pkgs.haskell.lib; {
 
   double-conversion = self.callPackage (./pkgs/double-conversion.nix) { };
 
+  dual-tree = self.callPackage (./pkgs/dual-tree.nix) { };
+
   easy-file = self.callPackage (./pkgs/easy-file.nix) { };
 
   echo = self.callPackage (./pkgs/echo.nix) { };
@@ -481,6 +521,8 @@ self: with pkgs.haskell.lib; {
 
   entropy = self.callPackage (./pkgs/entropy.nix) { };
 
+  enummapset = self.callPackage (./pkgs/enummapset.nix) { };
+
   envparse = self.callPackage (./pkgs/envparse.nix) { };
 
   erf = self.callPackage (./pkgs/erf.nix) { };
@@ -505,6 +547,8 @@ self: with pkgs.haskell.lib; {
 
   fast-logger = self.callPackage (./pkgs/fast-logger.nix) { };
 
+  fast-math = self.callPackage (./pkgs/fast-math.nix) { };
+
   fcf-containers = self.callPackage (./pkgs/fcf-containers.nix) { };
 
   feedback = self.callPackage (./pkgs/feedback.nix) { };
@@ -535,18 +579,26 @@ self: with pkgs.haskell.lib; {
 
   fixed = self.callPackage (./pkgs/fixed.nix) { };
 
+  floatshow = self.callPackage (./pkgs/floatshow.nix) { };
+
   fmlist = self.callPackage (./pkgs/fmlist.nix) { };
 
   fmt = self.callPackage (./pkgs/fmt.nix) { };
 
+  focus = self.callPackage (./pkgs/focus.nix) { };
+
   foldl = self.callPackage (./pkgs/foldl.nix) { };
 
+  force-layout = self.callPackage (./pkgs/force-layout.nix) { };
+
   foreign-store = self.callPackage (./pkgs/foreign-store.nix) { };
 
   formatting = self.callPackage (./pkgs/formatting.nix) { };
 
   foundation = self.callPackage (./pkgs/foundation.nix) { };
 
+  fourmolu = self.callPackage (./pkgs/fourmolu.nix) { };
+
   free = self.callPackage (./pkgs/free.nix) { };
 
   freer-simple = self.callPackage (./pkgs/freer-simple.nix) { };
@@ -557,6 +609,8 @@ self: with pkgs.haskell.lib; {
 
   fusion-plugin-types = self.callPackage (./pkgs/fusion-plugin-types.nix) { };
 
+  fuzzy = self.callPackage (./pkgs/fuzzy.nix) { };
+
   fuzzy-time = self.callPackage (./pkgs/fuzzy-time.nix) { };
 
   fuzzy-time-gen = self.callPackage (./pkgs/fuzzy-time-gen.nix) { };
@@ -647,12 +701,20 @@ self: with pkgs.haskell.lib; {
 
   ghc-tcplugins-extra = self.callPackage (./pkgs/ghc-tcplugins-extra.nix) { };
 
+  ghc-trace-events = self.callPackage (./pkgs/ghc-trace-events.nix) { };
+
   ghc-typelits-knownnat = self.callPackage (./pkgs/ghc-typelits-knownnat.nix) { };
 
   ghc-typelits-natnormalise = self.callPackage (./pkgs/ghc-typelits-natnormalise.nix) { };
 
   ghcid = self.callPackage (./pkgs/ghcid.nix) { };
 
+  ghcide = self.callPackage (./pkgs/ghcide.nix) { };
+
+  ghcide-bench = self.callPackage (./pkgs/ghcide-bench.nix) { };
+
+  ghcide-test-utils = self.callPackage (./pkgs/ghcide-test-utils.nix) { };
+
   githash = self.callPackage (./pkgs/githash.nix) { };
 
   gitrev = self.callPackage (./pkgs/gitrev.nix) { };
@@ -683,6 +745,8 @@ self: with pkgs.haskell.lib; {
 
   hashtables = self.callPackage (./pkgs/hashtables.nix) { };
 
+  haskell-language-server = self.callPackage (./pkgs/haskell-language-server.nix) { };
+
   haskell-lexer = self.callPackage (./pkgs/haskell-lexer.nix) { };
 
   haskell-src = self.callPackage (./pkgs/haskell-src.nix) { };
@@ -711,6 +775,8 @@ self: with pkgs.haskell.lib; {
 
   hie-compat = self.callPackage (./pkgs/hie-compat.nix) { };
 
+  hiedb = self.callPackage (./pkgs/hiedb.nix) { };
+
   hinotify = self.callPackage (./pkgs/hinotify.nix) { };
 
   hledger = self.callPackage (./pkgs/hledger.nix) { };
@@ -719,6 +785,52 @@ self: with pkgs.haskell.lib; {
 
   hlint = self.callPackage (./pkgs/hlint.nix) { };
 
+  hls-alternate-number-format-plugin = self.callPackage (./pkgs/hls-alternate-number-format-plugin.nix) { };
+
+  hls-cabal-fmt-plugin = self.callPackage (./pkgs/hls-cabal-fmt-plugin.nix) { };
+
+  hls-cabal-plugin = self.callPackage (./pkgs/hls-cabal-plugin.nix) { };
+
+  hls-call-hierarchy-plugin = self.callPackage (./pkgs/hls-call-hierarchy-plugin.nix) { };
+
+  hls-change-type-signature-plugin = self.callPackage (./pkgs/hls-change-type-signature-plugin.nix) { };
+
+  hls-class-plugin = self.callPackage (./pkgs/hls-class-plugin.nix) { };
+
+  hls-code-range-plugin = self.callPackage (./pkgs/hls-code-range-plugin.nix) { };
+
+  hls-explicit-fixity-plugin = self.callPackage (./pkgs/hls-explicit-fixity-plugin.nix) { };
+
+  hls-explicit-imports-plugin = self.callPackage (./pkgs/hls-explicit-imports-plugin.nix) { };
+
+  hls-explicit-record-fields-plugin = self.callPackage (./pkgs/hls-explicit-record-fields-plugin.nix) { };
+
+  hls-fourmolu-plugin = self.callPackage (./pkgs/hls-fourmolu-plugin.nix) { };
+
+  hls-gadt-plugin = self.callPackage (./pkgs/hls-gadt-plugin.nix) { };
+
+  hls-graph = self.callPackage (./pkgs/hls-graph.nix) { };
+
+  hls-hlint-plugin = self.callPackage (./pkgs/hls-hlint-plugin.nix) { };
+
+  hls-module-name-plugin = self.callPackage (./pkgs/hls-module-name-plugin.nix) { };
+
+  hls-plugin-api = self.callPackage (./pkgs/hls-plugin-api.nix) { };
+
+  hls-pragmas-plugin = self.callPackage (./pkgs/hls-pragmas-plugin.nix) { };
+
+  hls-qualify-imported-names-plugin = self.callPackage (./pkgs/hls-qualify-imported-names-plugin.nix) { };
+
+  hls-refactor-plugin = self.callPackage (./pkgs/hls-refactor-plugin.nix) { };
+
+  hls-refine-imports-plugin = self.callPackage (./pkgs/hls-refine-imports-plugin.nix) { };
+
+  hls-retrie-plugin = self.callPackage (./pkgs/hls-retrie-plugin.nix) { };
+
+  hls-splice-plugin = self.callPackage (./pkgs/hls-splice-plugin.nix) { };
+
+  hls-test-utils = self.callPackage (./pkgs/hls-test-utils.nix) { };
+
   hopenssl = self.callPackage (./pkgs/hopenssl.nix) { };
 
   horizon-gen-nix = self.callPackage (./pkgs/horizon-gen-nix.nix) { };
@@ -731,12 +843,16 @@ self: with pkgs.haskell.lib; {
 
   hourglass = self.callPackage (./pkgs/hourglass.nix) { };
 
+  hp2pretty = self.callPackage (./pkgs/hp2pretty.nix) { };
+
   hpack = self.callPackage (./pkgs/hpack.nix) { };
 
   hpack-dhall = self.callPackage (./pkgs/hpack-dhall.nix) { };
 
   hscolour = self.callPackage (./pkgs/hscolour.nix) { };
 
+  hslogger = self.callPackage (./pkgs/hslogger.nix) { };
+
   hslua = self.callPackage (./pkgs/hslua.nix) { };
 
   hslua-aeson = self.callPackage (./pkgs/hslua-aeson.nix) { };
@@ -763,6 +879,8 @@ self: with pkgs.haskell.lib; {
 
   hspec = self.callPackage (./pkgs/hspec.nix) { };
 
+  hspec-attoparsec = self.callPackage (./pkgs/hspec-attoparsec.nix) { };
+
   hspec-contrib = self.callPackage (./pkgs/hspec-contrib.nix) { };
 
   hspec-core = self.callPackage (./pkgs/hspec-core.nix) { };
@@ -817,6 +935,14 @@ self: with pkgs.haskell.lib; {
 
   hw-aeson = self.callPackage (./pkgs/hw-aeson.nix) { };
 
+  hw-fingertree = self.callPackage (./pkgs/hw-fingertree.nix) { };
+
+  hw-hedgehog = self.callPackage (./pkgs/hw-hedgehog.nix) { };
+
+  hw-hspec-hedgehog = self.callPackage (./pkgs/hw-hspec-hedgehog.nix) { };
+
+  hw-prim = self.callPackage (./pkgs/hw-prim.nix) { };
+
   hxt = self.callPackage (./pkgs/hxt.nix) { };
 
   hxt-charproperties = self.callPackage (./pkgs/hxt-charproperties.nix) { };
@@ -827,6 +953,10 @@ self: with pkgs.haskell.lib; {
 
   ieee754 = self.callPackage (./pkgs/ieee754.nix) { };
 
+  implicit-hie = self.callPackage (./pkgs/implicit-hie.nix) { };
+
+  implicit-hie-cradle = self.callPackage (./pkgs/implicit-hie-cradle.nix) { };
+
   incipit-base = self.callPackage (./pkgs/incipit-base.nix) { };
 
   incipit-core = self.callPackage (./pkgs/incipit-core.nix) { };
@@ -855,8 +985,12 @@ self: with pkgs.haskell.lib; {
 
   integer-logarithms = self.callPackage (./pkgs/integer-logarithms.nix) { };
 
+  integration = self.callPackage (./pkgs/integration.nix) { };
+
   interpolate = self.callPackage (./pkgs/interpolate.nix) { };
 
+  intervals = self.callPackage (./pkgs/intervals.nix) { };
+
   invariant = self.callPackage (./pkgs/invariant.nix) { };
 
   io-streams = self.callPackage (./pkgs/io-streams.nix) { };
@@ -957,6 +1091,8 @@ self: with pkgs.haskell.lib; {
 
   lsp = self.callPackage (./pkgs/lsp.nix) { };
 
+  lsp-test = self.callPackage (./pkgs/lsp-test.nix) { };
+
   lsp-types = self.callPackage (./pkgs/lsp-types.nix) { };
 
   lua = self.callPackage (./pkgs/lua.nix) { };
@@ -985,6 +1121,8 @@ self: with pkgs.haskell.lib; {
 
   math-functions = self.callPackage (./pkgs/math-functions.nix) { };
 
+  matrices = self.callPackage (./pkgs/matrices.nix) { };
+
   matrix = self.callPackage (./pkgs/matrix.nix) { };
 
   megaparsec = self.callPackage (./pkgs/megaparsec.nix) { };
@@ -995,6 +1133,8 @@ self: with pkgs.haskell.lib; {
 
   mersenne-random-pure64 = self.callPackage (./pkgs/mersenne-random-pure64.nix) { };
 
+  mfsolve = self.callPackage (./pkgs/mfsolve.nix) { };
+
   microlens = self.callPackage (./pkgs/microlens.nix) { };
 
   microlens-aeson = self.callPackage (./pkgs/microlens-aeson.nix) { };
@@ -1013,6 +1153,8 @@ self: with pkgs.haskell.lib; {
 
   mime-types = self.callPackage (./pkgs/mime-types.nix) { };
 
+  mmap = self.callPackage (./pkgs/mmap.nix) { };
+
   mmorph = self.callPackage (./pkgs/mmorph.nix) { };
 
   mockery = self.callPackage (./pkgs/mockery.nix) { };
@@ -1033,12 +1175,16 @@ self: with pkgs.haskell.lib; {
 
   monad-peel = self.callPackage (./pkgs/monad-peel.nix) { };
 
+  monad-primitive = self.callPackage (./pkgs/monad-primitive.nix) { };
+
   monad-time = self.callPackage (./pkgs/monad-time.nix) { };
 
   monads-tf = self.callPackage (./pkgs/monads-tf.nix) { };
 
   mono-traversable = self.callPackage (./pkgs/mono-traversable.nix) { };
 
+  monoid-extras = self.callPackage (./pkgs/monoid-extras.nix) { };
+
   monoid-subclasses = self.callPackage (./pkgs/monoid-subclasses.nix) { };
 
   monoidal-containers = self.callPackage (./pkgs/monoidal-containers.nix) { };
@@ -1051,6 +1197,8 @@ self: with pkgs.haskell.lib; {
 
   mwc-random = self.callPackage (./pkgs/mwc-random.nix) { };
 
+  mwc-random-monad = self.callPackage (./pkgs/mwc-random-monad.nix) { };
+
   nanospec = self.callPackage (./pkgs/nanospec.nix) { };
 
   nats = self.callPackage (./pkgs/nats.nix) { };
@@ -1085,6 +1233,8 @@ self: with pkgs.haskell.lib; {
 
   nothunks = self.callPackage (./pkgs/nothunks.nix) { };
 
+  numeric-extras = self.callPackage (./pkgs/numeric-extras.nix) { };
+
   numtype-dk = self.callPackage (./pkgs/numtype-dk.nix) { };
 
   odd-jobs = self.callPackage (./pkgs/odd-jobs.nix) { };
@@ -1099,6 +1249,10 @@ self: with pkgs.haskell.lib; {
 
   openssl-streams = self.callPackage (./pkgs/openssl-streams.nix) { };
 
+  opentelemetry = self.callPackage (./pkgs/opentelemetry.nix) { };
+
+  operational = self.callPackage (./pkgs/operational.nix) { };
+
   optics = self.callPackage (./pkgs/optics.nix) { };
 
   optics-core = self.callPackage (./pkgs/optics-core.nix) { };
@@ -1115,6 +1269,8 @@ self: with pkgs.haskell.lib; {
 
   optparse-generic = self.callPackage (./pkgs/optparse-generic.nix) { };
 
+  optparse-simple = self.callPackage (./pkgs/optparse-simple.nix) { };
+
   ordered-containers = self.callPackage (./pkgs/ordered-containers.nix) { };
 
   pandoc = self.callPackage (./pkgs/pandoc.nix) { };
@@ -1247,8 +1403,12 @@ self: with pkgs.haskell.lib; {
 
   primitive-addr = self.callPackage (./pkgs/primitive-addr.nix) { };
 
+  primitive-extras = self.callPackage (./pkgs/primitive-extras.nix) { };
+
   primitive-offset = self.callPackage (./pkgs/primitive-offset.nix) { };
 
+  primitive-unlifted = self.callPackage (./pkgs/primitive-unlifted.nix) { };
+
   process-extras = self.callPackage (./pkgs/process-extras.nix) { };
 
   procex = self.callPackage (./pkgs/procex.nix) { };
@@ -1295,6 +1455,8 @@ self: with pkgs.haskell.lib; {
 
   random-bytestring = self.callPackage (./pkgs/random-bytestring.nix) { };
 
+  random-fu = self.callPackage (./pkgs/random-fu.nix) { };
+
   random-shuffle = self.callPackage (./pkgs/random-shuffle.nix) { };
 
   raven-haskell = self.callPackage (./pkgs/raven-haskell.nix) { };
@@ -1347,12 +1509,16 @@ self: with pkgs.haskell.lib; {
 
   resourcet = self.callPackage (./pkgs/resourcet.nix) { };
 
+  retrie = self.callPackage (./pkgs/retrie.nix) { };
+
   retry = self.callPackage (./pkgs/retry.nix) { };
 
   rope-utf16-splay = self.callPackage (./pkgs/rope-utf16-splay.nix) { };
 
   row-types = self.callPackage (./pkgs/row-types.nix) { };
 
+  rvar = self.callPackage (./pkgs/rvar.nix) { };
+
   safe = self.callPackage (./pkgs/safe.nix) { };
 
   safe-coloured-text = self.callPackage (./pkgs/safe-coloured-text.nix) { };
@@ -1445,6 +1611,8 @@ self: with pkgs.haskell.lib; {
 
   shake = self.callPackage (./pkgs/shake.nix) { };
 
+  shake-bench = self.callPackage (./pkgs/shake-bench.nix) { };
+
   shakespeare = self.callPackage (./pkgs/shakespeare.nix) { };
 
   shelly = self.callPackage (./pkgs/shelly.nix) { };
@@ -1507,12 +1675,18 @@ self: with pkgs.haskell.lib; {
 
   sqlite-simple = self.callPackage (./pkgs/sqlite-simple.nix) { };
 
+  statestack = self.callPackage (./pkgs/statestack.nix) { };
+
   statistics = self.callPackage (./pkgs/statistics.nix) { };
 
   statistics-linreg = self.callPackage (./pkgs/statistics-linreg.nix) { };
 
   stm-chans = self.callPackage (./pkgs/stm-chans.nix) { };
 
+  stm-containers = self.callPackage (./pkgs/stm-containers.nix) { };
+
+  stm-hamt = self.callPackage (./pkgs/stm-hamt.nix) { };
+
   storable-record = self.callPackage (./pkgs/storable-record.nix) { };
 
   storable-tuple = self.callPackage (./pkgs/storable-tuple.nix) { };
@@ -1549,6 +1723,8 @@ self: with pkgs.haskell.lib; {
 
   sundown = self.callPackage (./pkgs/sundown.nix) { };
 
+  svg-builder = self.callPackage (./pkgs/svg-builder.nix) { };
+
   swagger2 = self.callPackage (./pkgs/swagger2.nix) { };
 
   syb = self.callPackage (./pkgs/syb.nix) { };
@@ -1595,6 +1771,8 @@ self: with pkgs.haskell.lib; {
 
   tasty-quickcheck = self.callPackage (./pkgs/tasty-quickcheck.nix) { };
 
+  tasty-rerun = self.callPackage (./pkgs/tasty-rerun.nix) { };
+
   tasty-silver = self.callPackage (./pkgs/tasty-silver.nix) { };
 
   tasty-smallcheck = self.callPackage (./pkgs/tasty-smallcheck.nix) { };
@@ -1619,6 +1797,8 @@ self: with pkgs.haskell.lib; {
 
   test-framework-th = self.callPackage (./pkgs/test-framework-th.nix) { };
 
+  testing-feat = self.callPackage (./pkgs/testing-feat.nix) { };
+
   testing-type-modifiers = self.callPackage (./pkgs/testing-type-modifiers.nix) { };
 
   texmath = self.callPackage (./pkgs/texmath.nix) { };
@@ -1805,6 +1985,8 @@ self: with pkgs.haskell.lib; {
 
   vector-sized = self.callPackage (./pkgs/vector-sized.nix) { };
 
+  vector-space = self.callPackage (./pkgs/vector-space.nix) { };
+
   vector-stream = self.callPackage (./pkgs/vector-stream.nix) { };
 
   vector-th-unbox = self.callPackage (./pkgs/vector-th-unbox.nix) { };
diff --git a/pkgs/Chart-diagrams.nix b/pkgs/Chart-diagrams.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a715b65c02b6a79b74a46bf3df70e90c5d377cfb
--- /dev/null
+++ b/pkgs/Chart-diagrams.nix
@@ -0,0 +1,62 @@
+{ mkDerivation
+, Chart
+, SVGFonts
+, base
+, blaze-markup
+, bytestring
+, colour
+, containers
+, data-default-class
+, diagrams-core
+, diagrams-lib
+, diagrams-postscript
+, diagrams-svg
+, lens
+, lib
+, mtl
+, old-locale
+, operational
+, svg-builder
+, text
+, time
+}:
+mkDerivation {
+  pname = "Chart-diagrams";
+  version = "1.9.4";
+  sha256 = "a89cb7aee51fc64276923b879b7bc66fafd994130f53a3035ff6feaf9daf7366";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    base
+    blaze-markup
+    bytestring
+    Chart
+    colour
+    containers
+    data-default-class
+    diagrams-core
+    diagrams-lib
+    diagrams-postscript
+    diagrams-svg
+    lens
+    mtl
+    old-locale
+    operational
+    svg-builder
+    SVGFonts
+    text
+    time
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/timbod7/haskell-chart/wiki";
+  description = "Diagrams backend for Charts";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/Chart.nix b/pkgs/Chart.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7a559ce2b5591a9010f73e1e5b8b8fa46cce6e11
--- /dev/null
+++ b/pkgs/Chart.nix
@@ -0,0 +1,44 @@
+{ mkDerivation
+, array
+, base
+, colour
+, data-default-class
+, lens
+, lib
+, mtl
+, old-locale
+, operational
+, time
+, vector
+}:
+mkDerivation {
+  pname = "Chart";
+  version = "1.9.4";
+  sha256 = "35068f14d9100f3156b9d2cd86b928a20ec832f596412203ee65e814888d9d7a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    base
+    colour
+    data-default-class
+    lens
+    mtl
+    old-locale
+    operational
+    time
+    vector
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/timbod7/haskell-chart/wiki";
+  description = "A library for generating 2D Charts and Plots";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/MemoTrie.nix b/pkgs/MemoTrie.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e46258e73b025ac9d31d67b8b60c850399ba146a
--- /dev/null
+++ b/pkgs/MemoTrie.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, newtype-generics }:
+mkDerivation {
+  pname = "MemoTrie";
+  version = "0.6.10";
+  sha256 = "584df0e138093b2f2edc893a69883eb8cbca3402ebdc75392a7742e86156ba53";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base newtype-generics ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/conal/MemoTrie";
+  description = "Trie-based memo functions";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/MonadPrompt.nix b/pkgs/MonadPrompt.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ddda9a6cdd9b2aa1d08bdfff55286a282542335b
--- /dev/null
+++ b/pkgs/MonadPrompt.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib, mtl }:
+mkDerivation {
+  pname = "MonadPrompt";
+  version = "1.0.0.5";
+  sha256 = "b012cbbe83650f741c7b7f6eafcc89dec299b0ac74a758b6f3a8cdfc5d3bbeda";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base mtl ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "MonadPrompt, implementation & examples";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/NumInstances.nix b/pkgs/NumInstances.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e43097322cbf3b749f19fd3815a1695590bbfd19
--- /dev/null
+++ b/pkgs/NumInstances.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "NumInstances";
+  version = "1.4";
+  sha256 = "cbdb2a49346f59ceb5ab38592d7bc52e5205580d431d0ac6d852fd9880e59679";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/conal/NumInstances";
+  description = "Instances of numeric classes for functions and tuples";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/SVGFonts.nix b/pkgs/SVGFonts.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7b593a4caf94c3772830822f04f6ad474f8dace2
--- /dev/null
+++ b/pkgs/SVGFonts.nix
@@ -0,0 +1,57 @@
+{ mkDerivation
+, attoparsec
+, base
+, blaze-markup
+, blaze-svg
+, bytestring
+, cereal
+, cereal-vector
+, containers
+, data-default-class
+, diagrams-core
+, diagrams-lib
+, directory
+, lib
+, parsec
+, split
+, text
+, vector
+, xml
+}:
+mkDerivation {
+  pname = "SVGFonts";
+  version = "1.8.0.1";
+  sha256 = "698a517322fd9910784da15a716c4f3eaec0080298ca5098871b9bd24f3c7f64";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    attoparsec
+    base
+    blaze-markup
+    blaze-svg
+    bytestring
+    cereal
+    cereal-vector
+    containers
+    data-default-class
+    diagrams-core
+    diagrams-lib
+    directory
+    parsec
+    split
+    text
+    vector
+    xml
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Fonts from the SVG-Font format";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/active.nix b/pkgs/active.nix
new file mode 100644
index 0000000000000000000000000000000000000000..9379f7f26e5247d265398d1808af13b180f2ffda
--- /dev/null
+++ b/pkgs/active.nix
@@ -0,0 +1,47 @@
+{ mkDerivation
+, QuickCheck
+, base
+, lens
+, lib
+, linear
+, semigroupoids
+, semigroups
+, vector
+}:
+mkDerivation {
+  pname = "active";
+  version = "0.2.0.16";
+  sha256 = "f1187ebbffd560c4eb39864f8ad0a6aac4585ba6c956ba5572e90632bdcee2bb";
+  revision = "1";
+  editedCabalFile = "0cyfwrr5c14f5rgrf8dv7i8qsrnmnzigw0xp6l88kfxd61zhk4n8";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    lens
+    linear
+    semigroupoids
+    semigroups
+    vector
+  ];
+  testHaskellDepends = [
+    base
+    lens
+    linear
+    QuickCheck
+    semigroupoids
+    semigroups
+    vector
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Abstractions for animation";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/algebraic-graphs.nix b/pkgs/algebraic-graphs.nix
index a61ab2e9234ec79d1783fa9a64f09de04453307f..6b7799ea577531b78e287ba46c087d8b4bac323f 100644
--- a/pkgs/algebraic-graphs.nix
+++ b/pkgs/algebraic-graphs.nix
@@ -11,8 +11,8 @@
 }:
 mkDerivation {
   pname = "algebraic-graphs";
-  version = "0.7";
-  sha256 = "51159a0d18690ab51e6709e3c576275402f96f57d901f87d734da6854582e568";
+  version = "0.6.1";
+  sha256 = "2d64982591929cbc9a2f184eeb7271b8a4096672fe725c928ea4b97aeac40a99";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/apply-refact.nix b/pkgs/apply-refact.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e927e9984b63b814cb697520b1a50d317e34aa15
--- /dev/null
+++ b/pkgs/apply-refact.nix
@@ -0,0 +1,102 @@
+{ mkDerivation
+, base
+, containers
+, directory
+, extra
+, filemanip
+, filepath
+, ghc
+, ghc-boot-th
+, ghc-exactprint
+, ghc-paths
+, lib
+, optparse-applicative
+, process
+, refact
+, silently
+, syb
+, tasty
+, tasty-expected-failure
+, tasty-golden
+, transformers
+, uniplate
+, unix-compat
+}:
+mkDerivation {
+  pname = "apply-refact";
+  version = "0.11.0.0";
+  sha256 = "e27c77d86991fa781dd68323f58b29ccd90f178ba9878a58b838bf02914eb5ae";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    directory
+    extra
+    filemanip
+    ghc
+    ghc-boot-th
+    ghc-exactprint
+    ghc-paths
+    process
+    refact
+    syb
+    transformers
+    uniplate
+    unix-compat
+  ];
+  executableHaskellDepends = [
+    base
+    containers
+    directory
+    extra
+    filemanip
+    filepath
+    ghc
+    ghc-boot-th
+    ghc-exactprint
+    ghc-paths
+    optparse-applicative
+    process
+    refact
+    syb
+    transformers
+    uniplate
+    unix-compat
+  ];
+  testHaskellDepends = [
+    base
+    containers
+    directory
+    extra
+    filemanip
+    filepath
+    ghc
+    ghc-boot-th
+    ghc-exactprint
+    ghc-paths
+    optparse-applicative
+    process
+    refact
+    silently
+    syb
+    tasty
+    tasty-expected-failure
+    tasty-golden
+    transformers
+    uniplate
+    unix-compat
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/mpickering/apply-refact";
+  description = "Perform refactorings specified by the refact library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/blaze-svg.nix b/pkgs/blaze-svg.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2d0cd2183aa40c1382a0b51f7a46e5a154b0f816
--- /dev/null
+++ b/pkgs/blaze-svg.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, blaze-markup, lib, mtl }:
+mkDerivation {
+  pname = "blaze-svg";
+  version = "0.3.6.1";
+  sha256 = "f6a4f1bba1e973b336e94de73369f4562778fde43b6ac7c0b32d6a501527aa60";
+  revision = "1";
+  editedCabalFile = "1vb78d0nvk0909963pm0mnzklcm57w563lhgx1wv7qzdfznpi8f9";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base blaze-markup mtl ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/deepakjois/blaze-svg";
+  description = "SVG combinator library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/circle-packing.nix b/pkgs/circle-packing.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6e2c79f7c1afea4140af79bec6b5eb7d9989fb2f
--- /dev/null
+++ b/pkgs/circle-packing.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "circle-packing";
+  version = "0.1.0.6";
+  sha256 = "64ee44a90da3e5fe20d5b78bfe6eba93102a6b52c65f8a7b99af7799798ee81b";
+  revision = "4";
+  editedCabalFile = "1jp1b6l5v1llmggy316s4bb78wjvgq8iya0i2zz4k5v6l5dl8ln2";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Simple heuristic for packing discs of varying radii in a circle";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/conduit-parse.nix b/pkgs/conduit-parse.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e28c4397a85d755061d406c28a25d9d256bff242
--- /dev/null
+++ b/pkgs/conduit-parse.nix
@@ -0,0 +1,57 @@
+{ mkDerivation
+, base
+, conduit
+, dlist
+, lib
+, mtl
+, parsers
+, resourcet
+, safe
+, safe-exceptions
+, tasty
+, tasty-hunit
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "conduit-parse";
+  version = "0.2.1.1";
+  sha256 = "07fb28868ce016b5e1b5fd033c9c73340a09c13140003f070a6952842a01acf5";
+  revision = "1";
+  editedCabalFile = "102y5wad007bz8iqv1nrz38gb24q15k9snl7l7zq9k7pisdxnans";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    conduit
+    dlist
+    mtl
+    parsers
+    safe
+    safe-exceptions
+    text
+    transformers
+  ];
+  testHaskellDepends = [
+    base
+    conduit
+    mtl
+    parsers
+    resourcet
+    safe-exceptions
+    tasty
+    tasty-hunit
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/k0ral/conduit-parse";
+  description = "Parsing framework based on conduit";
+  license = lib.licenses.publicDomain;
+  broken = false;
+}
diff --git a/pkgs/cubicbezier.nix b/pkgs/cubicbezier.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d5eff55ccba74c3fcc9c78e600d41963ffda4823
--- /dev/null
+++ b/pkgs/cubicbezier.nix
@@ -0,0 +1,51 @@
+{ mkDerivation
+, base
+, containers
+, fast-math
+, integration
+, lib
+, matrices
+, microlens
+, microlens-mtl
+, microlens-th
+, mtl
+, parsec
+, tasty
+, tasty-hunit
+, vector
+, vector-space
+}:
+mkDerivation {
+  pname = "cubicbezier";
+  version = "0.6.0.6";
+  sha256 = "5a73fcde2b92ce138d924c323f04f48427acbfdc2c774ff0f032a10ea60afa68";
+  revision = "1";
+  editedCabalFile = "084inqa0mpm6m958fmjwsnn2fn46mcdpfin482mzs5fk6c9fwywl";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    fast-math
+    integration
+    matrices
+    microlens
+    microlens-mtl
+    microlens-th
+    mtl
+    vector
+    vector-space
+  ];
+  testHaskellDepends = [ base parsec tasty tasty-hunit ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Efficient manipulating of 2D cubic bezier curves";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/deferred-folds.nix b/pkgs/deferred-folds.nix
new file mode 100644
index 0000000000000000000000000000000000000000..15f4407c20eef4bc4bd9b8e023261f8421686cef
--- /dev/null
+++ b/pkgs/deferred-folds.nix
@@ -0,0 +1,58 @@
+{ mkDerivation
+, QuickCheck
+, base
+, bytestring
+, containers
+, foldl
+, hashable
+, lib
+, primitive
+, quickcheck-instances
+, rerebase
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, text
+, transformers
+, unordered-containers
+, vector
+}:
+mkDerivation {
+  pname = "deferred-folds";
+  version = "0.9.18.2";
+  sha256 = "26ddc60183478033735f82ba506db93032fb8c7fe91b7e72a0d8f9f05febb42a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    containers
+    foldl
+    hashable
+    primitive
+    text
+    transformers
+    unordered-containers
+    vector
+  ];
+  testHaskellDepends = [
+    QuickCheck
+    quickcheck-instances
+    rerebase
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/metrix-ai/deferred-folds";
+  description = "Abstractions over deferred folds";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/diagrams-contrib.nix b/pkgs/diagrams-contrib.nix
new file mode 100644
index 0000000000000000000000000000000000000000..dc3dfd518e4d7eb9faba981534b780c6224b4d39
--- /dev/null
+++ b/pkgs/diagrams-contrib.nix
@@ -0,0 +1,89 @@
+{ mkDerivation
+, HUnit
+, MonadRandom
+, QuickCheck
+, base
+, circle-packing
+, colour
+, containers
+, cubicbezier
+, data-default
+, data-default-class
+, diagrams-core
+, diagrams-lib
+, diagrams-solve
+, force-layout
+, hashable
+, lens
+, lib
+, linear
+, mfsolve
+, monoid-extras
+, mtl
+, mtl-compat
+, parsec
+, random
+, semigroups
+, split
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+, text
+}:
+mkDerivation {
+  pname = "diagrams-contrib";
+  version = "1.4.5";
+  sha256 = "900baf9c40a36b637400bb58dbab260d3b654a1249809153c4fdd6ec2152286c";
+  revision = "1";
+  editedCabalFile = "0i5s9mr88kc68v2wc07jpdy2hzqh2gc1dsawvb2sracnqmv9q658";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    circle-packing
+    colour
+    containers
+    cubicbezier
+    data-default
+    data-default-class
+    diagrams-core
+    diagrams-lib
+    diagrams-solve
+    force-layout
+    hashable
+    lens
+    linear
+    mfsolve
+    MonadRandom
+    monoid-extras
+    mtl
+    mtl-compat
+    parsec
+    random
+    semigroups
+    split
+    text
+  ];
+  testHaskellDepends = [
+    base
+    containers
+    diagrams-lib
+    HUnit
+    QuickCheck
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://diagrams.github.io/";
+  description = "Collection of user contributions to diagrams EDSL";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/diagrams-core.nix b/pkgs/diagrams-core.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6bb66a9b05405f8babc78086c8f05a9f0dc1dd15
--- /dev/null
+++ b/pkgs/diagrams-core.nix
@@ -0,0 +1,50 @@
+{ mkDerivation
+, adjunctions
+, base
+, containers
+, distributive
+, dual-tree
+, lens
+, lib
+, linear
+, monoid-extras
+, mtl
+, profunctors
+, semigroups
+, unordered-containers
+}:
+mkDerivation {
+  pname = "diagrams-core";
+  version = "1.5.0.1";
+  sha256 = "16ce30fbea3c77fc3debcd2c835a822b61f7da43839265819e70c49e61b961bf";
+  revision = "1";
+  editedCabalFile = "1gahbyv00xyr4pcmpq4g95jyh7844fp8z0g9l2ybifv4s73vdrym";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    adjunctions
+    base
+    containers
+    distributive
+    dual-tree
+    lens
+    linear
+    monoid-extras
+    mtl
+    profunctors
+    semigroups
+    unordered-containers
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://diagrams.github.io";
+  description = "Core libraries for diagrams EDSL";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/diagrams-lib.nix b/pkgs/diagrams-lib.nix
new file mode 100644
index 0000000000000000000000000000000000000000..448f849f64b903c29b570f9cf747ca342cd6b6c2
--- /dev/null
+++ b/pkgs/diagrams-lib.nix
@@ -0,0 +1,112 @@
+{ mkDerivation
+, JuicyPixels
+, QuickCheck
+, active
+, adjunctions
+, array
+, base
+, bytestring
+, cereal
+, colour
+, containers
+, criterion
+, data-default-class
+, deepseq
+, diagrams-core
+, diagrams-solve
+, directory
+, distributive
+, dual-tree
+, exceptions
+, filepath
+, fingertree
+, fsnotify
+, hashable
+, intervals
+, lens
+, lib
+, linear
+, monoid-extras
+, mtl
+, numeric-extras
+, optparse-applicative
+, process
+, profunctors
+, semigroups
+, tagged
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, text
+, transformers
+, unordered-containers
+}:
+mkDerivation {
+  pname = "diagrams-lib";
+  version = "1.4.5.3";
+  sha256 = "2c9eb84b4b3c9f23f01a24cdae24d49c2eccb39bb50c90475ffa119ad813e640";
+  revision = "3";
+  editedCabalFile = "10m1nh6swfh4jvky2mx692g0jp1xk1cym9gvzljmmni3pf41mzsf";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    active
+    adjunctions
+    array
+    base
+    bytestring
+    cereal
+    colour
+    containers
+    data-default-class
+    diagrams-core
+    diagrams-solve
+    directory
+    distributive
+    dual-tree
+    exceptions
+    filepath
+    fingertree
+    fsnotify
+    hashable
+    intervals
+    JuicyPixels
+    lens
+    linear
+    monoid-extras
+    mtl
+    optparse-applicative
+    process
+    profunctors
+    semigroups
+    tagged
+    text
+    transformers
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    base
+    deepseq
+    diagrams-solve
+    distributive
+    lens
+    numeric-extras
+    QuickCheck
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  benchmarkHaskellDepends = [ base criterion diagrams-core ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://diagrams.github.io";
+  description = "Embedded domain-specific language for declarative graphics";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/diagrams-postscript.nix b/pkgs/diagrams-postscript.nix
new file mode 100644
index 0000000000000000000000000000000000000000..38257dffb69e0c65eda957175c8f9bdce9050501
--- /dev/null
+++ b/pkgs/diagrams-postscript.nix
@@ -0,0 +1,52 @@
+{ mkDerivation
+, base
+, bytestring
+, containers
+, data-default-class
+, diagrams-core
+, diagrams-lib
+, hashable
+, lens
+, lib
+, monoid-extras
+, mtl
+, semigroups
+, split
+, statestack
+}:
+mkDerivation {
+  pname = "diagrams-postscript";
+  version = "1.5.1";
+  sha256 = "2f7d9e8ec3e42005dbcf7c18c941bdb9e088be0d48dc095a683d5ce3c7d00286";
+  revision = "2";
+  editedCabalFile = "0w662h38pjmxz029ffxzv2cj6hx2mpzzr180m2340phxjflxr07g";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    containers
+    data-default-class
+    diagrams-core
+    diagrams-lib
+    hashable
+    lens
+    monoid-extras
+    mtl
+    semigroups
+    split
+    statestack
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://diagrams.github.io/";
+  description = "Postscript backend for diagrams drawing EDSL";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/diagrams-solve.nix b/pkgs/diagrams-solve.nix
new file mode 100644
index 0000000000000000000000000000000000000000..cc7357b519bcb862f0ac9602c4a14b65ad7bfadc
--- /dev/null
+++ b/pkgs/diagrams-solve.nix
@@ -0,0 +1,37 @@
+{ mkDerivation
+, base
+, deepseq
+, lib
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "diagrams-solve";
+  version = "0.1.3";
+  sha256 = "27b4bba55f5c2aae94903fbe7958f27744c0ff6a805ceb8a046ab4bd36e31827";
+  revision = "1";
+  editedCabalFile = "0dp61igq17l7hvhs3167skdi1vmlm773qrrmsqmj08951l4cgv0h";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [
+    base
+    deepseq
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://diagrams.github.io";
+  description = "Pure Haskell solver routines used by diagrams";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/diagrams-svg.nix b/pkgs/diagrams-svg.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b877cd90860bd9d2953d1015f6242bc128646b9b
--- /dev/null
+++ b/pkgs/diagrams-svg.nix
@@ -0,0 +1,62 @@
+{ mkDerivation
+, JuicyPixels
+, base
+, base64-bytestring
+, bytestring
+, colour
+, containers
+, diagrams-core
+, diagrams-lib
+, filepath
+, hashable
+, lens
+, lib
+, monoid-extras
+, mtl
+, optparse-applicative
+, semigroups
+, split
+, svg-builder
+, text
+}:
+mkDerivation {
+  pname = "diagrams-svg";
+  version = "1.4.3.1";
+  sha256 = "67080a0aa846f2931c14855560c4bbd848c44935f5ada4dbd6d93074707d5400";
+  revision = "4";
+  editedCabalFile = "026mkj9fz64rdrap25mp8cwdrzwj90h35qg9kkn078fac93aaq10";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    base64-bytestring
+    bytestring
+    colour
+    containers
+    diagrams-core
+    diagrams-lib
+    filepath
+    hashable
+    JuicyPixels
+    lens
+    monoid-extras
+    mtl
+    optparse-applicative
+    semigroups
+    split
+    svg-builder
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://diagrams.github.io/";
+  description = "SVG backend for diagrams drawing EDSL";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/dual-tree.nix b/pkgs/dual-tree.nix
new file mode 100644
index 0000000000000000000000000000000000000000..81f124db2364c85ffc8148fe023be69cedea3d3b
--- /dev/null
+++ b/pkgs/dual-tree.nix
@@ -0,0 +1,34 @@
+{ mkDerivation
+, QuickCheck
+, base
+, lib
+, monoid-extras
+, semigroups
+, testing-feat
+}:
+mkDerivation {
+  pname = "dual-tree";
+  version = "0.2.3.1";
+  sha256 = "d0394b94c312a5ae032ee72d811400e3f435138ea05f7be6a4d019131a19d5a6";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base monoid-extras semigroups ];
+  testHaskellDepends = [
+    base
+    monoid-extras
+    QuickCheck
+    semigroups
+    testing-feat
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Rose trees with cached and accumulating monoidal annotations";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/enummapset.nix b/pkgs/enummapset.nix
new file mode 100644
index 0000000000000000000000000000000000000000..80243688399dfa796f2e2eff88fdc8d7c1cb4ae2
--- /dev/null
+++ b/pkgs/enummapset.nix
@@ -0,0 +1,47 @@
+{ mkDerivation
+, HUnit
+, QuickCheck
+, aeson
+, array
+, base
+, containers
+, deepseq
+, ghc-prim
+, lib
+, test-framework
+, test-framework-hunit
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "enummapset";
+  version = "0.7.1.0";
+  sha256 = "c938bec2cdfe57c829e7bd36a6687dec506a292810de0e3611219f9a71a00efe";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ aeson base containers deepseq ];
+  testHaskellDepends = [
+    aeson
+    array
+    base
+    containers
+    deepseq
+    ghc-prim
+    HUnit
+    QuickCheck
+    test-framework
+    test-framework-hunit
+    test-framework-quickcheck2
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Mikolaj/enummapset";
+  description = "IntMap and IntSet with Enum keys/elements";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/fast-math.nix b/pkgs/fast-math.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8b01aeb0748cb2ce73e0bd101718d437cb34fbf3
--- /dev/null
+++ b/pkgs/fast-math.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "fast-math";
+  version = "1.0.2";
+  sha256 = "45101ddc8b86402e866ec029bcfbc2662779e578e43b40acd971a9f411e2be95";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Non IEEE-754 compliant compile-time floating-point optimisations";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/floatshow.nix b/pkgs/floatshow.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6073a014c5f971831d2254ede49fd90ddde0d99d
--- /dev/null
+++ b/pkgs/floatshow.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, array, base, integer-gmp, lib }:
+mkDerivation {
+  pname = "floatshow";
+  version = "0.2.4";
+  sha256 = "0c4e9494df46120942b2078db53c16200b46eff603fca5ab85775a541f975dff";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ array base integer-gmp ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://bitbucket.org/dafis/floatshow";
+  description = "Alternative faster String representations for Double and Float, String representations for more general numeric types";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/focus.nix b/pkgs/focus.nix
new file mode 100644
index 0000000000000000000000000000000000000000..05f5057df65ac2544fa813be3f5bec83385ecfa1
--- /dev/null
+++ b/pkgs/focus.nix
@@ -0,0 +1,39 @@
+{ mkDerivation
+, QuickCheck
+, base
+, lib
+, quickcheck-instances
+, rerebase
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, transformers
+}:
+mkDerivation {
+  pname = "focus";
+  version = "1.0.3";
+  sha256 = "353050e457bfe945ce8bda3513206a9d3fd2ac93112791953d2afd32017e060e";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base transformers ];
+  testHaskellDepends = [
+    QuickCheck
+    quickcheck-instances
+    rerebase
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/nikita-volkov/focus";
+  description = "A general abstraction for manipulating elements of container data structures";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/force-layout.nix b/pkgs/force-layout.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e2195d4522fcd63edbc2dd9f05ec1aaeb1120a03
--- /dev/null
+++ b/pkgs/force-layout.nix
@@ -0,0 +1,35 @@
+{ mkDerivation
+, base
+, containers
+, data-default-class
+, lens
+, lib
+, linear
+}:
+mkDerivation {
+  pname = "force-layout";
+  version = "0.4.0.6";
+  sha256 = "f7729855b1b14e0b255325faaca9f4834004e02bd21def6a865d2c55c734259d";
+  revision = "10";
+  editedCabalFile = "1mcs51d1a3klzy938wq0gcbx7ln49g940zhajmflxq6imy5h5kwa";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    data-default-class
+    lens
+    linear
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Simple force-directed layout";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/fourmolu.nix b/pkgs/fourmolu.nix
new file mode 100644
index 0000000000000000000000000000000000000000..67b84277fc33a0fb2b1c6607d00b8c3d7c0fd983
--- /dev/null
+++ b/pkgs/fourmolu.nix
@@ -0,0 +1,107 @@
+{ mkDerivation
+, Cabal-syntax
+, Diff
+, MemoTrie
+, QuickCheck
+, aeson
+, ansi-terminal
+, array
+, base
+, bytestring
+, containers
+, directory
+, dlist
+, exceptions
+, filepath
+, ghc-lib-parser
+, gitrev
+, hspec
+, hspec-discover
+, hspec-megaparsec
+, lib
+, megaparsec
+, mtl
+, optparse-applicative
+, path
+, path-io
+, pretty
+, process
+, syb
+, template-haskell
+, temporary
+, text
+, th-lift-instances
+, yaml
+}:
+mkDerivation {
+  pname = "fourmolu";
+  version = "0.10.1.0";
+  sha256 = "e442b4aa21c320994c57f0c87bb7e6bf005207a167cb7e812c5142e4b8687f3e";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    ansi-terminal
+    array
+    base
+    bytestring
+    Cabal-syntax
+    containers
+    Diff
+    directory
+    dlist
+    exceptions
+    filepath
+    ghc-lib-parser
+    megaparsec
+    MemoTrie
+    mtl
+    syb
+    template-haskell
+    text
+    th-lift-instances
+    yaml
+  ];
+  executableHaskellDepends = [
+    base
+    containers
+    directory
+    filepath
+    ghc-lib-parser
+    gitrev
+    optparse-applicative
+    text
+    yaml
+  ];
+  testHaskellDepends = [
+    base
+    containers
+    Diff
+    directory
+    filepath
+    ghc-lib-parser
+    hspec
+    hspec-megaparsec
+    megaparsec
+    path
+    path-io
+    pretty
+    process
+    QuickCheck
+    temporary
+    text
+  ];
+  testToolDepends = [ hspec-discover ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/fourmolu/fourmolu";
+  description = "A formatter for Haskell source code";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/fuzzy.nix b/pkgs/fuzzy.nix
new file mode 100644
index 0000000000000000000000000000000000000000..44a3be3c9bd8b5cd25e56da80a6546fe46cf7e53
--- /dev/null
+++ b/pkgs/fuzzy.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, HUnit, base, lib, monoid-subclasses }:
+mkDerivation {
+  pname = "fuzzy";
+  version = "0.1.0.1";
+  sha256 = "bca8afb42f2b75829a71a781c2014beb9387050b6aa37793e9940f97d422f49a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base monoid-subclasses ];
+  testHaskellDepends = [ base HUnit ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/joom/fuzzy";
+  description = "Filters a list based on a fuzzy string search";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/ghc-lib-parser.nix b/pkgs/ghc-lib-parser.nix
index 8aa335002dbecdc14e8d4d812f959434c9e518fd..d4fc7086c4447022a0343ab23b2e9f5fcf23c801 100644
--- a/pkgs/ghc-lib-parser.nix
+++ b/pkgs/ghc-lib-parser.nix
@@ -21,8 +21,8 @@
 }:
 mkDerivation {
   pname = "ghc-lib-parser";
-  version = "9.4.2.20220822";
-  sha256 = "3eb1fd79734728fffb39c98a4a42747d0db2d35380fec8ab24bbea5d76b93847";
+  version = "9.4.4.20221225";
+  sha256 = "67f6d80ce04d4178b762c7e139388c1106a818d8a532a5ac458c8209ef61652b";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = true;
diff --git a/pkgs/ghc-trace-events.nix b/pkgs/ghc-trace-events.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3dc15303b4a09952935fa5cd9230b232373c4c02
--- /dev/null
+++ b/pkgs/ghc-trace-events.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, bytestring, lib, tasty-bench, text }:
+mkDerivation {
+  pname = "ghc-trace-events";
+  version = "0.1.2.6";
+  sha256 = "835dd379a16a39841debbe49d32222ffc0fd7ea794729168b55f9c57a5cf84f9";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring text ];
+  benchmarkHaskellDepends = [ base bytestring tasty-bench ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/maoe/ghc-trace-events";
+  description = "Faster traceEvent and traceMarker, and binary object logging for eventlog";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/ghcide-bench.nix b/pkgs/ghcide-bench.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1417c26bbe36fe905f5447791eb735522676f48c
--- /dev/null
+++ b/pkgs/ghcide-bench.nix
@@ -0,0 +1,104 @@
+{ mkDerivation
+, aeson
+, async
+, base
+, binary
+, bytestring
+, containers
+, data-default
+, deepseq
+, directory
+, extra
+, filepath
+, ghcide
+, ghcide-test-utils
+, hashable
+, hls-graph
+, hls-plugin-api
+, implicit-hie
+, lens
+, lib
+, lsp-test
+, lsp-types
+, optparse-applicative
+, parser-combinators
+, process
+, safe-exceptions
+, shake
+, tasty
+, tasty-hunit
+, tasty-rerun
+, text
+}:
+mkDerivation {
+  pname = "ghcide-bench";
+  version = "0.1.1";
+  sha256 = "226c46214fc0b5675cf1a360ab128bcc60697c3ae51482d51956a5e02f0febfa";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    async
+    base
+    binary
+    bytestring
+    deepseq
+    directory
+    extra
+    filepath
+    ghcide
+    ghcide-test-utils
+    hashable
+    lens
+    lsp-test
+    lsp-types
+    optparse-applicative
+    parser-combinators
+    process
+    safe-exceptions
+    shake
+    text
+  ];
+  executableHaskellDepends = [
+    aeson
+    base
+    bytestring
+    containers
+    data-default
+    directory
+    extra
+    filepath
+    hls-graph
+    hls-plugin-api
+    lens
+    lsp-test
+    lsp-types
+    optparse-applicative
+    process
+    safe-exceptions
+    shake
+    tasty-hunit
+    text
+  ];
+  testHaskellDepends = [
+    base
+    extra
+    lsp-test
+    tasty
+    tasty-hunit
+    tasty-rerun
+  ];
+  testToolDepends = [ ghcide implicit-hie ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/haskell-language-server/tree/master/ghcide#readme";
+  description = "An LSP client for running performance experiments on HLS";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/ghcide-test-utils.nix b/pkgs/ghcide-test-utils.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e44444ed45324cd01880bf7b4645778325c50161
--- /dev/null
+++ b/pkgs/ghcide-test-utils.nix
@@ -0,0 +1,52 @@
+{ mkDerivation
+, aeson
+, base
+, containers
+, data-default
+, directory
+, extra
+, filepath
+, ghcide
+, hls-plugin-api
+, lens
+, lib
+, lsp-test
+, lsp-types
+, tasty-hunit
+, text
+}:
+mkDerivation {
+  pname = "ghcide-test-utils";
+  version = "1.9.0.0";
+  sha256 = "66b69e0aa0285195ae1af3e9cc968987a71cc24ba6c4e69187b12ee205ef9d38";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    containers
+    data-default
+    directory
+    extra
+    filepath
+    ghcide
+    hls-plugin-api
+    lens
+    lsp-test
+    lsp-types
+    tasty-hunit
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/haskell-language-server/tree/master/ghcide#readme";
+  description = "Test utils for ghcide";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/ghcide.nix b/pkgs/ghcide.nix
new file mode 100644
index 0000000000000000000000000000000000000000..72656cae628f64df9f207912e2fe318528c27e36
--- /dev/null
+++ b/pkgs/ghcide.nix
@@ -0,0 +1,220 @@
+{ mkDerivation
+, Diff
+, Glob
+, QuickCheck
+, aeson
+, aeson-pretty
+, array
+, async
+, base
+, base16-bytestring
+, binary
+, bytestring
+, case-insensitive
+, co-log-core
+, containers
+, cryptohash-sha1
+, data-default
+, deepseq
+, dependent-map
+, dependent-sum
+, directory
+, dlist
+, enummapset
+, exceptions
+, extra
+, filepath
+, fingertree
+, focus
+, fuzzy
+, ghc
+, ghc-boot
+, ghc-boot-th
+, ghc-check
+, ghc-paths
+, ghc-trace-events
+, gitrev
+, haddock-library
+, hashable
+, hie-bios
+, hie-compat
+, hiedb
+, hls-graph
+, hls-plugin-api
+, hslogger
+, implicit-hie
+, implicit-hie-cradle
+, lens
+, lib
+, list-t
+, lsp
+, lsp-test
+, lsp-types
+, monoid-subclasses
+, mtl
+, network-uri
+, opentelemetry
+, optparse-applicative
+, parallel
+, prettyprinter
+, prettyprinter-ansi-terminal
+, random
+, regex-tdfa
+, safe-exceptions
+, shake
+, sorted-list
+, sqlite-simple
+, stm
+, stm-containers
+, syb
+, tasty
+, tasty-expected-failure
+, tasty-hunit
+, tasty-quickcheck
+, tasty-rerun
+, text
+, text-rope
+, time
+, transformers
+, unix
+, unliftio
+, unliftio-core
+, unordered-containers
+, vector
+}:
+mkDerivation {
+  pname = "ghcide";
+  version = "1.9.0.0";
+  sha256 = "6470de9d388c783e8826c790e7cfe4a7a282a8a1e4d368041bdce4070db4586a";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    aeson-pretty
+    array
+    async
+    base
+    base16-bytestring
+    binary
+    bytestring
+    case-insensitive
+    co-log-core
+    containers
+    cryptohash-sha1
+    data-default
+    deepseq
+    dependent-map
+    dependent-sum
+    Diff
+    directory
+    dlist
+    enummapset
+    exceptions
+    extra
+    filepath
+    fingertree
+    focus
+    ghc
+    ghc-boot
+    ghc-boot-th
+    ghc-check
+    ghc-paths
+    ghc-trace-events
+    Glob
+    haddock-library
+    hashable
+    hie-bios
+    hie-compat
+    hiedb
+    hls-graph
+    hls-plugin-api
+    hslogger
+    implicit-hie
+    implicit-hie-cradle
+    lens
+    list-t
+    lsp
+    lsp-types
+    mtl
+    opentelemetry
+    optparse-applicative
+    parallel
+    prettyprinter
+    prettyprinter-ansi-terminal
+    random
+    regex-tdfa
+    safe-exceptions
+    sorted-list
+    sqlite-simple
+    stm
+    stm-containers
+    syb
+    text
+    text-rope
+    time
+    transformers
+    unix
+    unliftio
+    unliftio-core
+    unordered-containers
+    vector
+  ];
+  executableHaskellDepends = [
+    base
+    data-default
+    extra
+    gitrev
+    hls-plugin-api
+    lsp
+    lsp-types
+    optparse-applicative
+  ];
+  testHaskellDepends = [
+    aeson
+    async
+    base
+    containers
+    data-default
+    directory
+    extra
+    filepath
+    fuzzy
+    ghc
+    hls-plugin-api
+    lens
+    list-t
+    lsp
+    lsp-test
+    lsp-types
+    monoid-subclasses
+    network-uri
+    QuickCheck
+    random
+    regex-tdfa
+    shake
+    sqlite-simple
+    stm
+    stm-containers
+    tasty
+    tasty-expected-failure
+    tasty-hunit
+    tasty-quickcheck
+    tasty-rerun
+    text
+    text-rope
+    unordered-containers
+  ];
+  testToolDepends = [ implicit-hie ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/haskell-language-server/tree/master/ghcide#readme";
+  description = "The core of an IDE";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/haskell-language-server.nix b/pkgs/haskell-language-server.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e2ab81151a431f7a9b3a7ee1e0a6c031f1ef9e63
--- /dev/null
+++ b/pkgs/haskell-language-server.nix
@@ -0,0 +1,221 @@
+{ mkDerivation
+, aeson
+, aeson-pretty
+, async
+, base
+, base16-bytestring
+, binary
+, bytestring
+, containers
+, cryptohash-sha1
+, data-default
+, deepseq
+, directory
+, extra
+, filepath
+, ghc
+, ghc-boot-th
+, ghc-paths
+, ghcide
+, ghcide-test-utils
+, githash
+, gitrev
+, hashable
+, hie-bios
+, hiedb
+, hls-alternate-number-format-plugin
+, hls-cabal-fmt-plugin
+, hls-cabal-plugin
+, hls-call-hierarchy-plugin
+, hls-change-type-signature-plugin
+, hls-class-plugin
+, hls-code-range-plugin
+, hls-explicit-fixity-plugin
+, hls-explicit-imports-plugin
+, hls-explicit-record-fields-plugin
+, hls-fourmolu-plugin
+, hls-gadt-plugin
+, hls-graph
+, hls-hlint-plugin
+, hls-module-name-plugin
+, hls-plugin-api
+, hls-pragmas-plugin
+, hls-qualify-imported-names-plugin
+, hls-refactor-plugin
+, hls-refine-imports-plugin
+, hls-retrie-plugin
+, hls-splice-plugin
+, hls-test-utils
+, hslogger
+, hspec-expectations
+, lens
+, lens-aeson
+, lib
+, lsp
+, lsp-test
+, lsp-types
+, mtl
+, optparse-applicative
+, optparse-simple
+, prettyprinter
+, process
+, regex-tdfa
+, safe-exceptions
+, sqlite-simple
+, stm
+, temporary
+, text
+, transformers
+, unix
+, unliftio-core
+, unordered-containers
+}:
+mkDerivation {
+  pname = "haskell-language-server";
+  version = "1.9.0.0";
+  sha256 = "77d2c056c2a4f6ea0aaae38560054f49b85f41d6abc5ddb5da18b2ef091eaeaf";
+  revision = "1";
+  editedCabalFile = "19y9wid97a2c6x8cx2zq2r0asr8x0wlnvxmrj9qhfpvmk05sqrpm";
+  configureFlags = [
+    "-f-dynamic"
+    "-f-eval"
+    "-f-floskell"
+    "-f-ormolu"
+    "-f-rename"
+    "-f-stylishhaskell"
+  ];
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson-pretty
+    async
+    base
+    base16-bytestring
+    bytestring
+    containers
+    cryptohash-sha1
+    data-default
+    directory
+    extra
+    filepath
+    ghc
+    ghcide
+    githash
+    hie-bios
+    hiedb
+    hls-alternate-number-format-plugin
+    hls-cabal-fmt-plugin
+    hls-cabal-plugin
+    hls-call-hierarchy-plugin
+    hls-change-type-signature-plugin
+    hls-class-plugin
+    hls-code-range-plugin
+    hls-explicit-fixity-plugin
+    hls-explicit-imports-plugin
+    hls-explicit-record-fields-plugin
+    hls-fourmolu-plugin
+    hls-gadt-plugin
+    hls-graph
+    hls-hlint-plugin
+    hls-module-name-plugin
+    hls-plugin-api
+    hls-pragmas-plugin
+    hls-qualify-imported-names-plugin
+    hls-refactor-plugin
+    hls-refine-imports-plugin
+    hls-retrie-plugin
+    hls-splice-plugin
+    lsp
+    optparse-applicative
+    optparse-simple
+    prettyprinter
+    process
+    safe-exceptions
+    sqlite-simple
+    text
+    unordered-containers
+  ];
+  executableHaskellDepends = [
+    aeson
+    async
+    base
+    base16-bytestring
+    binary
+    bytestring
+    containers
+    cryptohash-sha1
+    data-default
+    deepseq
+    directory
+    extra
+    filepath
+    ghc
+    ghc-boot-th
+    ghc-paths
+    ghcide
+    gitrev
+    hashable
+    hie-bios
+    hiedb
+    hls-graph
+    hls-plugin-api
+    hslogger
+    lens
+    lsp
+    lsp-types
+    mtl
+    optparse-applicative
+    optparse-simple
+    prettyprinter
+    process
+    regex-tdfa
+    safe-exceptions
+    sqlite-simple
+    stm
+    temporary
+    text
+    transformers
+    unix
+    unliftio-core
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    aeson
+    base
+    bytestring
+    containers
+    data-default
+    deepseq
+    directory
+    extra
+    filepath
+    ghcide
+    ghcide-test-utils
+    hashable
+    hls-plugin-api
+    hls-refactor-plugin
+    hls-test-utils
+    hspec-expectations
+    lens
+    lens-aeson
+    lsp-test
+    lsp-types
+    prettyprinter
+    process
+    text
+    unordered-containers
+  ];
+  testToolDepends = [ ghcide ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/haskell-language-server#readme";
+  description = "LSP server for GHC";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hiedb.nix b/pkgs/hiedb.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6c476dee68f5a4b1ef849cd01b725abdbc4cf574
--- /dev/null
+++ b/pkgs/hiedb.nix
@@ -0,0 +1,72 @@
+{ mkDerivation
+, algebraic-graphs
+, ansi-terminal
+, array
+, base
+, bytestring
+, containers
+, directory
+, extra
+, filepath
+, ghc
+, ghc-paths
+, hie-compat
+, hspec
+, lib
+, lucid
+, mtl
+, optparse-applicative
+, process
+, sqlite-simple
+, temporary
+, terminal-size
+, text
+}:
+mkDerivation {
+  pname = "hiedb";
+  version = "0.4.2.0";
+  sha256 = "9cca518eaa6a5d747c32ca7f50c7ba3c7454fb96239796bbbd6d2cc7cb61b908";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    algebraic-graphs
+    ansi-terminal
+    array
+    base
+    bytestring
+    containers
+    directory
+    extra
+    filepath
+    ghc
+    hie-compat
+    lucid
+    mtl
+    optparse-applicative
+    sqlite-simple
+    terminal-size
+    text
+  ];
+  executableHaskellDepends = [ base ghc-paths ];
+  testHaskellDepends = [
+    base
+    directory
+    filepath
+    ghc
+    ghc-paths
+    hspec
+    process
+    temporary
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Generates a references DB from .hie files";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hls-alternate-number-format-plugin.nix b/pkgs/hls-alternate-number-format-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..dfd20bdd173f6f05cb6285a65e0ebd9e4547422d
--- /dev/null
+++ b/pkgs/hls-alternate-number-format-plugin.nix
@@ -0,0 +1,69 @@
+{ mkDerivation
+, QuickCheck
+, aeson
+, base
+, containers
+, extra
+, filepath
+, ghc-boot-th
+, ghcide
+, hie-compat
+, hls-graph
+, hls-plugin-api
+, hls-test-utils
+, lens
+, lib
+, lsp
+, mtl
+, regex-tdfa
+, syb
+, tasty-quickcheck
+, text
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-alternate-number-format-plugin";
+  version = "1.3.0.0";
+  sha256 = "7202b7115bb5696f604f0392012cbf6a1ed1ed1ec88ef3564c2083da34378152";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    containers
+    extra
+    ghc-boot-th
+    ghcide
+    hie-compat
+    hls-graph
+    hls-plugin-api
+    lens
+    lsp
+    mtl
+    regex-tdfa
+    syb
+    text
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    base
+    filepath
+    hls-test-utils
+    lsp
+    QuickCheck
+    regex-tdfa
+    tasty-quickcheck
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Provide Alternate Number Formats plugin for Haskell Language Server";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-cabal-fmt-plugin.nix b/pkgs/hls-cabal-fmt-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..be6e56eec4addcb22cc65870539019bc6c23ba11
--- /dev/null
+++ b/pkgs/hls-cabal-fmt-plugin.nix
@@ -0,0 +1,45 @@
+{ mkDerivation
+, base
+, directory
+, filepath
+, ghcide
+, hls-plugin-api
+, hls-test-utils
+, lens
+, lib
+, lsp-types
+, process
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "hls-cabal-fmt-plugin";
+  version = "0.1.0.0";
+  sha256 = "b71ae62ebe3dd35a19f6571fd3c8f17654c80c4b36607e39347516677606defe";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    directory
+    filepath
+    ghcide
+    hls-plugin-api
+    lens
+    lsp-types
+    process
+    text
+    transformers
+  ];
+  testHaskellDepends = [ base directory filepath hls-test-utils ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Integration with the cabal-fmt code formatter";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-cabal-plugin.nix b/pkgs/hls-cabal-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..35f49c16a48634e4f30fcc7ec98234d88e1d6278
--- /dev/null
+++ b/pkgs/hls-cabal-plugin.nix
@@ -0,0 +1,70 @@
+{ mkDerivation
+, Cabal
+, base
+, bytestring
+, deepseq
+, directory
+, extra
+, filepath
+, ghcide
+, hashable
+, hls-graph
+, hls-plugin-api
+, hls-test-utils
+, lens
+, lib
+, lsp
+, lsp-types
+, regex-tdfa
+, stm
+, tasty-hunit
+, text
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-cabal-plugin";
+  version = "0.1.0.0";
+  sha256 = "a5e5fb3eb670d60876d5aaf26bd2fe4c29e51a3db1f747b66b45d037c6539b38";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    Cabal
+    deepseq
+    directory
+    extra
+    ghcide
+    hashable
+    hls-graph
+    hls-plugin-api
+    lsp
+    lsp-types
+    regex-tdfa
+    stm
+    text
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    filepath
+    ghcide
+    hls-test-utils
+    lens
+    lsp-types
+    tasty-hunit
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Cabal integration plugin with Haskell Language Server";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/hls-call-hierarchy-plugin.nix b/pkgs/hls-call-hierarchy-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..fb0c2bff7c8b7c86f504c8f41cb0f587d969af8c
--- /dev/null
+++ b/pkgs/hls-call-hierarchy-plugin.nix
@@ -0,0 +1,64 @@
+{ mkDerivation
+, aeson
+, base
+, containers
+, extra
+, filepath
+, ghcide
+, ghcide-test-utils
+, hiedb
+, hls-plugin-api
+, hls-test-utils
+, lens
+, lib
+, lsp
+, lsp-test
+, sqlite-simple
+, text
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-call-hierarchy-plugin";
+  version = "1.2.0.0";
+  sha256 = "81f8718c353c48f7cacba068bcb073e5dda5d867ba8a30ed3eb9215b2832a574";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    containers
+    extra
+    ghcide
+    hiedb
+    hls-plugin-api
+    lens
+    lsp
+    sqlite-simple
+    text
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    aeson
+    base
+    containers
+    extra
+    filepath
+    ghcide-test-utils
+    hls-test-utils
+    lens
+    lsp
+    lsp-test
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Call hierarchy plugin for Haskell Language Server";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-change-type-signature-plugin.nix b/pkgs/hls-change-type-signature-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e8970b905f87d6f17e93dbd14e060e29ef58ec93
--- /dev/null
+++ b/pkgs/hls-change-type-signature-plugin.nix
@@ -0,0 +1,54 @@
+{ mkDerivation
+, QuickCheck
+, base
+, filepath
+, ghcide
+, hls-plugin-api
+, hls-test-utils
+, lib
+, lsp
+, lsp-types
+, regex-tdfa
+, syb
+, text
+, transformers
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-change-type-signature-plugin";
+  version = "1.1.0.0";
+  sha256 = "35983c08a19f2070ac04e6801b261ca87b50254af3c4ed40c0b10e65a02eb8d8";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    ghcide
+    hls-plugin-api
+    lsp-types
+    regex-tdfa
+    syb
+    text
+    transformers
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    base
+    filepath
+    hls-test-utils
+    lsp
+    QuickCheck
+    regex-tdfa
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Change a declarations type signature with a Code Action";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-class-plugin.nix b/pkgs/hls-class-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5d25ed8cd1fe87a9e6beb6c0adebbf2eff3e4ceb
--- /dev/null
+++ b/pkgs/hls-class-plugin.nix
@@ -0,0 +1,67 @@
+{ mkDerivation
+, aeson
+, base
+, containers
+, deepseq
+, extra
+, filepath
+, ghc
+, ghc-boot-th
+, ghc-exactprint
+, ghcide
+, hls-graph
+, hls-plugin-api
+, hls-test-utils
+, lens
+, lib
+, lsp
+, lsp-types
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "hls-class-plugin";
+  version = "1.1.1.0";
+  sha256 = "1a247c7907b03be422400de6d69d7b35dd2c015cf27ef72d441ee39511cac7e3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    containers
+    deepseq
+    extra
+    ghc
+    ghc-boot-th
+    ghc-exactprint
+    ghcide
+    hls-graph
+    hls-plugin-api
+    lens
+    lsp
+    text
+    transformers
+  ];
+  testHaskellDepends = [
+    aeson
+    base
+    filepath
+    ghcide
+    hls-plugin-api
+    hls-test-utils
+    lens
+    lsp-types
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/haskell-language-server#readme";
+  description = "Class/instance management plugin for Haskell Language Server";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-code-range-plugin.nix b/pkgs/hls-code-range-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2cb3fe93636ecc725240c817670c315c790e3c39
--- /dev/null
+++ b/pkgs/hls-code-range-plugin.nix
@@ -0,0 +1,73 @@
+{ mkDerivation
+, aeson
+, base
+, bytestring
+, containers
+, deepseq
+, extra
+, filepath
+, ghcide
+, hashable
+, hls-plugin-api
+, hls-test-utils
+, lens
+, lib
+, lsp
+, lsp-test
+, mtl
+, semigroupoids
+, tasty-hunit
+, text
+, transformers
+, vector
+}:
+mkDerivation {
+  pname = "hls-code-range-plugin";
+  version = "1.1.0.0";
+  sha256 = "198cc8308967cbb1b3616316da42ac12f6469a071f753c8a5086cc7754c3f1e3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    containers
+    deepseq
+    extra
+    ghcide
+    hashable
+    hls-plugin-api
+    lens
+    lsp
+    mtl
+    semigroupoids
+    text
+    transformers
+    vector
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    containers
+    filepath
+    ghcide
+    hls-test-utils
+    lens
+    lsp
+    lsp-test
+    tasty-hunit
+    text
+    transformers
+    vector
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "HLS Plugin to support smart selection range and Folding range";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-explicit-fixity-plugin.nix b/pkgs/hls-explicit-fixity-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c8a08fe9c156e6b65d2b329d2db19c5e77d58958
--- /dev/null
+++ b/pkgs/hls-explicit-fixity-plugin.nix
@@ -0,0 +1,48 @@
+{ mkDerivation
+, base
+, containers
+, deepseq
+, extra
+, filepath
+, ghc
+, ghcide
+, hashable
+, hls-plugin-api
+, hls-test-utils
+, lib
+, lsp
+, text
+, transformers
+}:
+mkDerivation {
+  pname = "hls-explicit-fixity-plugin";
+  version = "1.1.0.0";
+  sha256 = "5c73b0ff6c77e38c8ad5b310b4eb6359f3f0c0bfa42212c63d95d9ebdc544a27";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    deepseq
+    extra
+    ghc
+    ghcide
+    hashable
+    hls-plugin-api
+    lsp
+    text
+    transformers
+  ];
+  testHaskellDepends = [ base filepath hls-test-utils text ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Show fixity explicitly while hovering";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-explicit-imports-plugin.nix b/pkgs/hls-explicit-imports-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..e89df2939bbd1138a3ad2efd157dfa8cc200e728
--- /dev/null
+++ b/pkgs/hls-explicit-imports-plugin.nix
@@ -0,0 +1,48 @@
+{ mkDerivation
+, aeson
+, base
+, containers
+, deepseq
+, filepath
+, ghc
+, ghcide
+, hls-graph
+, hls-plugin-api
+, hls-test-utils
+, lib
+, lsp
+, text
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-explicit-imports-plugin";
+  version = "1.2.0.0";
+  sha256 = "6140c9c0cfa0fd65b2edb7528e9227c97d8fc10c43305cc2c96d3373cbea028c";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    containers
+    deepseq
+    ghc
+    ghcide
+    hls-graph
+    hls-plugin-api
+    lsp
+    text
+    unordered-containers
+  ];
+  testHaskellDepends = [ base filepath hls-test-utils text ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Explicit imports plugin for Haskell Language Server";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-explicit-record-fields-plugin.nix b/pkgs/hls-explicit-record-fields-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0f65f28662b047c19d72dd94b247f57c6d2d619c
--- /dev/null
+++ b/pkgs/hls-explicit-record-fields-plugin.nix
@@ -0,0 +1,57 @@
+{ mkDerivation
+, base
+, containers
+, filepath
+, ghc-boot-th
+, ghcide
+, hls-graph
+, hls-plugin-api
+, hls-test-utils
+, lens
+, lib
+, lsp
+, lsp-test
+, syb
+, text
+, transformers
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-explicit-record-fields-plugin";
+  version = "1.0.0.0";
+  sha256 = "ebdd590b978b09ddbfe53842c3173e876ec13c4d60bb196c5aba4794befcdccb";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    ghc-boot-th
+    ghcide
+    hls-graph
+    hls-plugin-api
+    lens
+    lsp
+    syb
+    text
+    transformers
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    base
+    filepath
+    hls-test-utils
+    lsp-test
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Explicit record fields plugin for Haskell Language Server";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hls-fourmolu-plugin.nix b/pkgs/hls-fourmolu-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..fa1e6434dde418fd32af06dba87976910c85f868
--- /dev/null
+++ b/pkgs/hls-fourmolu-plugin.nix
@@ -0,0 +1,60 @@
+{ mkDerivation
+, aeson
+, base
+, containers
+, filepath
+, fourmolu
+, ghc
+, ghc-boot-th
+, ghcide
+, hls-plugin-api
+, hls-test-utils
+, lens
+, lib
+, lsp
+, lsp-test
+, process-extras
+, text
+}:
+mkDerivation {
+  pname = "hls-fourmolu-plugin";
+  version = "1.1.1.0";
+  sha256 = "4f121a85ea4edbbbee9d9e426ed6c9f8b349eb189e1d8edf06f5c9a971e8babf";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    filepath
+    fourmolu
+    ghc
+    ghc-boot-th
+    ghcide
+    hls-plugin-api
+    lens
+    lsp
+    process-extras
+    text
+  ];
+  testHaskellDepends = [
+    aeson
+    base
+    containers
+    filepath
+    hls-plugin-api
+    hls-test-utils
+    lsp-test
+  ];
+  testToolDepends = [ fourmolu ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/haskell-language-server";
+  description = "Integration with the Fourmolu code formatter";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-gadt-plugin.nix b/pkgs/hls-gadt-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..aba4cd0522f472145030f2ac25650b1975d54f0b
--- /dev/null
+++ b/pkgs/hls-gadt-plugin.nix
@@ -0,0 +1,67 @@
+{ mkDerivation
+, aeson
+, base
+, containers
+, extra
+, filepath
+, ghc
+, ghc-boot-th
+, ghc-exactprint
+, ghcide
+, hls-plugin-api
+, hls-refactor-plugin
+, hls-test-utils
+, lens
+, lib
+, lsp
+, lsp-test
+, mtl
+, text
+, transformers
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-gadt-plugin";
+  version = "1.0.1.0";
+  sha256 = "9a54c545b8a8881f2775b51136c403bf05277802cbc7571960bf38db7d744682";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    containers
+    extra
+    ghc
+    ghc-boot-th
+    ghc-exactprint
+    ghcide
+    hls-plugin-api
+    hls-refactor-plugin
+    lens
+    lsp
+    mtl
+    text
+    transformers
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    base
+    filepath
+    hls-test-utils
+    lens
+    lsp
+    lsp-test
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Convert to GADT syntax plugin";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-graph.nix b/pkgs/hls-graph.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c297f50f93385cfd675d34480d5a87cb976d177c
--- /dev/null
+++ b/pkgs/hls-graph.nix
@@ -0,0 +1,93 @@
+{ mkDerivation
+, aeson
+, async
+, base
+, bytestring
+, containers
+, deepseq
+, directory
+, exceptions
+, extra
+, filepath
+, focus
+, hashable
+, hspec
+, hspec-discover
+, js-dgtable
+, js-flot
+, js-jquery
+, lib
+, list-t
+, stm
+, stm-containers
+, tasty
+, tasty-hspec
+, tasty-hunit
+, tasty-rerun
+, text
+, time
+, transformers
+, unliftio
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-graph";
+  version = "1.9.0.0";
+  sha256 = "24dc67786a1952b6aa062de0a2ef3d87547b23805801b3ba32576b51ae64804c";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    aeson
+    async
+    base
+    bytestring
+    containers
+    deepseq
+    directory
+    exceptions
+    extra
+    filepath
+    focus
+    hashable
+    js-dgtable
+    js-flot
+    js-jquery
+    list-t
+    stm
+    stm-containers
+    text
+    time
+    transformers
+    unliftio
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    base
+    containers
+    directory
+    extra
+    filepath
+    hspec
+    stm
+    stm-containers
+    tasty
+    tasty-hspec
+    tasty-hunit
+    tasty-rerun
+    text
+    unordered-containers
+  ];
+  testToolDepends = [ hspec-discover ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/haskell-language-server#readme";
+  description = "Haskell Language Server internal graph API";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-hlint-plugin.nix b/pkgs/hls-hlint-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6eceeeaec6fac14ebb60e09a91406e3e7ba834e6
--- /dev/null
+++ b/pkgs/hls-hlint-plugin.nix
@@ -0,0 +1,94 @@
+{ mkDerivation
+, Diff
+, aeson
+, apply-refact
+, base
+, binary
+, bytestring
+, containers
+, data-default
+, deepseq
+, directory
+, extra
+, filepath
+, ghc-exactprint
+, ghc-lib-parser
+, ghc-lib-parser-ex
+, ghcide
+, hashable
+, hlint
+, hls-plugin-api
+, hls-test-utils
+, hslogger
+, lens
+, lib
+, lsp
+, lsp-types
+, refact
+, regex-tdfa
+, stm
+, temporary
+, text
+, transformers
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-hlint-plugin";
+  version = "1.1.1.0";
+  sha256 = "9dda168ebdc68e366636e4730f1d3342134a8e628164254636be7bc1439b2083";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    apply-refact
+    base
+    binary
+    bytestring
+    containers
+    data-default
+    deepseq
+    Diff
+    directory
+    extra
+    filepath
+    ghc-exactprint
+    ghc-lib-parser
+    ghc-lib-parser-ex
+    ghcide
+    hashable
+    hlint
+    hls-plugin-api
+    hslogger
+    lens
+    lsp
+    refact
+    regex-tdfa
+    stm
+    temporary
+    text
+    transformers
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    aeson
+    base
+    containers
+    filepath
+    hls-plugin-api
+    hls-test-utils
+    lens
+    lsp-types
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Hlint integration plugin with Haskell Language Server";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-module-name-plugin.nix b/pkgs/hls-module-name-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ef0ab79eacfa10566265cc5045560049920af496
--- /dev/null
+++ b/pkgs/hls-module-name-plugin.nix
@@ -0,0 +1,45 @@
+{ mkDerivation
+, aeson
+, base
+, directory
+, filepath
+, ghcide
+, hls-plugin-api
+, hls-test-utils
+, lib
+, lsp
+, text
+, transformers
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-module-name-plugin";
+  version = "1.1.1.0";
+  sha256 = "821b5fe4d44077a07b898db2188bcfefb919316004612a666c3f783e677ee01a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    directory
+    filepath
+    ghcide
+    hls-plugin-api
+    lsp
+    text
+    transformers
+    unordered-containers
+  ];
+  testHaskellDepends = [ base filepath hls-test-utils ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Module name plugin for Haskell Language Server";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-plugin-api.nix b/pkgs/hls-plugin-api.nix
new file mode 100644
index 0000000000000000000000000000000000000000..bfd7fc7a6844d9cf868da769c695eab450c4d546
--- /dev/null
+++ b/pkgs/hls-plugin-api.nix
@@ -0,0 +1,101 @@
+{ mkDerivation
+, Diff
+, aeson
+, base
+, containers
+, criterion
+, data-default
+, deepseq
+, dependent-map
+, dependent-sum
+, dlist
+, extra
+, filepath
+, ghc
+, hashable
+, hls-graph
+, hw-fingertree
+, lens
+, lens-aeson
+, lib
+, lsp
+, lsp-types
+, megaparsec
+, opentelemetry
+, optparse-applicative
+, random
+, random-fu
+, regex-tdfa
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, tasty-rerun
+, text
+, transformers
+, unix
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-plugin-api";
+  version = "1.6.0.0";
+  sha256 = "b5c08bfc099a715c30c1f20949cd7581d27761828590cf3f37c71fe596f0b9b4";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    containers
+    data-default
+    dependent-map
+    dependent-sum
+    Diff
+    dlist
+    extra
+    filepath
+    ghc
+    hashable
+    hls-graph
+    hw-fingertree
+    lens
+    lens-aeson
+    lsp
+    megaparsec
+    opentelemetry
+    optparse-applicative
+    regex-tdfa
+    text
+    transformers
+    unix
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    base
+    containers
+    lsp-types
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    tasty-rerun
+    text
+  ];
+  benchmarkHaskellDepends = [
+    base
+    criterion
+    deepseq
+    lsp-types
+    random
+    random-fu
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/haskell-language-server#readme";
+  description = "Haskell Language Server API for plugin communication";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-pragmas-plugin.nix b/pkgs/hls-pragmas-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..31e0eb27b40ce2f6b727b57358a1e4671fc80d13
--- /dev/null
+++ b/pkgs/hls-pragmas-plugin.nix
@@ -0,0 +1,58 @@
+{ mkDerivation
+, base
+, containers
+, extra
+, filepath
+, fuzzy
+, ghc
+, ghcide
+, hls-plugin-api
+, hls-test-utils
+, lens
+, lib
+, lsp
+, lsp-types
+, text
+, transformers
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-pragmas-plugin";
+  version = "1.0.4.0";
+  sha256 = "a5457b9465e697d0f5087b134992c5eec3637c762bbc99c1691bafef09a865b3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    extra
+    fuzzy
+    ghc
+    ghcide
+    hls-plugin-api
+    lens
+    lsp
+    text
+    transformers
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    base
+    filepath
+    hls-test-utils
+    lens
+    lsp-types
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Pragmas plugin for Haskell Language Server";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-qualify-imported-names-plugin.nix b/pkgs/hls-qualify-imported-names-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6135974c2a33faf55aac8f817d880509d58b2e12
--- /dev/null
+++ b/pkgs/hls-qualify-imported-names-plugin.nix
@@ -0,0 +1,52 @@
+{ mkDerivation
+, aeson
+, base
+, containers
+, deepseq
+, dlist
+, filepath
+, ghc
+, ghcide
+, hls-graph
+, hls-plugin-api
+, hls-test-utils
+, lib
+, lsp
+, text
+, transformers
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-qualify-imported-names-plugin";
+  version = "1.0.2.0";
+  sha256 = "6eacd92615fb2699f5c5eb1269c4a38e8e34be732f616a8cc0af273a571a582c";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    containers
+    deepseq
+    dlist
+    ghc
+    ghcide
+    hls-graph
+    hls-plugin-api
+    lsp
+    text
+    transformers
+    unordered-containers
+  ];
+  testHaskellDepends = [ base filepath hls-test-utils text ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "A Haskell Language Server plugin that qualifies imported names";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-refactor-plugin.nix b/pkgs/hls-refactor-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..aa11108527a8d8842f7e4aa060532b357414e139
--- /dev/null
+++ b/pkgs/hls-refactor-plugin.nix
@@ -0,0 +1,115 @@
+{ mkDerivation
+, aeson
+, async
+, base
+, bytestring
+, containers
+, data-default
+, deepseq
+, directory
+, dlist
+, extra
+, filepath
+, ghc
+, ghc-boot
+, ghc-exactprint
+, ghcide
+, ghcide-test-utils
+, hls-graph
+, hls-plugin-api
+, hls-test-utils
+, lens
+, lib
+, lsp
+, lsp-test
+, lsp-types
+, mtl
+, network-uri
+, parser-combinators
+, regex-tdfa
+, retrie
+, shake
+, syb
+, tasty
+, tasty-expected-failure
+, tasty-hunit
+, tasty-rerun
+, text
+, text-rope
+, time
+, transformers
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-refactor-plugin";
+  version = "1.1.0.0";
+  sha256 = "ea14310a53e5e376b5fdf65f695ca26dc98f07dc8fb81b4163bb923e60e1e3b2";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    bytestring
+    containers
+    data-default
+    deepseq
+    dlist
+    extra
+    ghc
+    ghc-boot
+    ghc-exactprint
+    ghcide
+    hls-graph
+    hls-plugin-api
+    lens
+    lsp
+    mtl
+    regex-tdfa
+    retrie
+    syb
+    text
+    text-rope
+    time
+    transformers
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    aeson
+    async
+    base
+    containers
+    data-default
+    directory
+    extra
+    filepath
+    ghc
+    ghcide
+    ghcide-test-utils
+    hls-plugin-api
+    hls-test-utils
+    lens
+    lsp-test
+    lsp-types
+    network-uri
+    parser-combinators
+    regex-tdfa
+    shake
+    tasty
+    tasty-expected-failure
+    tasty-hunit
+    tasty-rerun
+    text
+    text-rope
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Exactprint refactorings for Haskell Language Server";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-refine-imports-plugin.nix b/pkgs/hls-refine-imports-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..541e1ca2ecb2fa07200d7b189f451b48781e34ff
--- /dev/null
+++ b/pkgs/hls-refine-imports-plugin.nix
@@ -0,0 +1,50 @@
+{ mkDerivation
+, aeson
+, base
+, containers
+, deepseq
+, filepath
+, ghc
+, ghcide
+, hls-explicit-imports-plugin
+, hls-graph
+, hls-plugin-api
+, hls-test-utils
+, lib
+, lsp
+, text
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-refine-imports-plugin";
+  version = "1.0.4.0";
+  sha256 = "6db0e0cdf18fde0a2a4dde42ca88a428123c0a7cdf064e9d83bed6c8b534a665";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    containers
+    deepseq
+    ghc
+    ghcide
+    hls-explicit-imports-plugin
+    hls-graph
+    hls-plugin-api
+    lsp
+    text
+    unordered-containers
+  ];
+  testHaskellDepends = [ base filepath hls-test-utils text ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Refine imports plugin for Haskell Language Server";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-retrie-plugin.nix b/pkgs/hls-retrie-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a2d26ea2a0b1289000f9384f0d287acd0b88ac11
--- /dev/null
+++ b/pkgs/hls-retrie-plugin.nix
@@ -0,0 +1,61 @@
+{ mkDerivation
+, aeson
+, base
+, bytestring
+, containers
+, deepseq
+, directory
+, extra
+, ghc
+, ghcide
+, hashable
+, hls-plugin-api
+, lib
+, lsp
+, lsp-types
+, retrie
+, safe-exceptions
+, stm
+, text
+, transformers
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-retrie-plugin";
+  version = "1.0.3.0";
+  sha256 = "3e272ccc97621fb93b5d5bbe37b49b26afcb7d2edc09701d87aa41bfaa6fdbbd";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    bytestring
+    containers
+    deepseq
+    directory
+    extra
+    ghc
+    ghcide
+    hashable
+    hls-plugin-api
+    lsp
+    lsp-types
+    retrie
+    safe-exceptions
+    stm
+    text
+    transformers
+    unordered-containers
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Retrie integration plugin for Haskell Language Server";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-splice-plugin.nix b/pkgs/hls-splice-plugin.nix
new file mode 100644
index 0000000000000000000000000000000000000000..962425c8db5e4de63d6bd7c46a3782e568e8ea6c
--- /dev/null
+++ b/pkgs/hls-splice-plugin.nix
@@ -0,0 +1,64 @@
+{ mkDerivation
+, aeson
+, base
+, containers
+, dlist
+, extra
+, filepath
+, foldl
+, ghc
+, ghc-exactprint
+, ghcide
+, hls-plugin-api
+, hls-refactor-plugin
+, hls-test-utils
+, lens
+, lib
+, lsp
+, retrie
+, syb
+, text
+, transformers
+, unliftio-core
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-splice-plugin";
+  version = "1.0.3.0";
+  sha256 = "90e41b28bd9572060876a25137854ea3467fb3197225218c1ada70db2c4ae006";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    containers
+    dlist
+    extra
+    foldl
+    ghc
+    ghc-exactprint
+    ghcide
+    hls-plugin-api
+    hls-refactor-plugin
+    lens
+    lsp
+    retrie
+    syb
+    text
+    transformers
+    unliftio-core
+    unordered-containers
+  ];
+  testHaskellDepends = [ base filepath hls-test-utils text ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "HLS Plugin to expand TemplateHaskell Splices and QuasiQuotes";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hls-test-utils.nix b/pkgs/hls-test-utils.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7d1a6216efff046535fbd095ceb5a98f7905209b
--- /dev/null
+++ b/pkgs/hls-test-utils.nix
@@ -0,0 +1,74 @@
+{ mkDerivation
+, aeson
+, async
+, base
+, blaze-markup
+, bytestring
+, containers
+, data-default
+, directory
+, extra
+, filepath
+, ghcide
+, hls-graph
+, hls-plugin-api
+, lens
+, lib
+, lsp
+, lsp-test
+, lsp-types
+, tasty
+, tasty-expected-failure
+, tasty-golden
+, tasty-hunit
+, tasty-rerun
+, temporary
+, text
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hls-test-utils";
+  version = "1.5.0.0";
+  sha256 = "e3d94e0d441f126c377f4830cc61edc1518684c5862962678be4a65554075e0c";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    async
+    base
+    blaze-markup
+    bytestring
+    containers
+    data-default
+    directory
+    extra
+    filepath
+    ghcide
+    hls-graph
+    hls-plugin-api
+    lens
+    lsp
+    lsp-test
+    lsp-types
+    tasty
+    tasty-expected-failure
+    tasty-golden
+    tasty-hunit
+    tasty-rerun
+    temporary
+    text
+    unordered-containers
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/haskell-language-server#readme";
+  description = "Utilities used in the tests of Haskell Language Server";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hp2pretty.nix b/pkgs/hp2pretty.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b4f2967cf97860ca097812e6f1ed45f4e87da39a
--- /dev/null
+++ b/pkgs/hp2pretty.nix
@@ -0,0 +1,44 @@
+{ mkDerivation
+, array
+, attoparsec
+, base
+, containers
+, filepath
+, floatshow
+, lib
+, mtl
+, optparse-applicative
+, semigroups
+, text
+}:
+mkDerivation {
+  pname = "hp2pretty";
+  version = "0.10";
+  sha256 = "226c0f3762861c29748e83a3c93388c284aba33cfef45623ca69acc8764535c7";
+  isLibrary = false;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  executableHaskellDepends = [
+    array
+    attoparsec
+    base
+    containers
+    filepath
+    floatshow
+    mtl
+    optparse-applicative
+    semigroups
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://mathr.co.uk/blog/hp2pretty.html";
+  description = "generate pretty graphs from heap profiles";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hslogger.nix b/pkgs/hslogger.nix
new file mode 100644
index 0000000000000000000000000000000000000000..fbb073cdce0116e873a293aff0af9146dc13db6e
--- /dev/null
+++ b/pkgs/hslogger.nix
@@ -0,0 +1,46 @@
+{ mkDerivation
+, HUnit
+, base
+, bytestring
+, containers
+, deepseq
+, lib
+, network
+, network-bsd
+, old-locale
+, time
+, unix
+}:
+mkDerivation {
+  pname = "hslogger";
+  version = "1.3.1.0";
+  sha256 = "7f2364f6c0b9c5b85a257267a335816126ef2471c817a42797a5d3c57acaca5b";
+  revision = "6";
+  editedCabalFile = "0xiqjl646kxynsccc2q1q91sch7pfx3274yl2745fsqhpb115df1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    containers
+    deepseq
+    network
+    network-bsd
+    old-locale
+    time
+    unix
+  ];
+  testHaskellDepends = [ base HUnit ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-hvr/hslogger/wiki";
+  description = "Versatile logging framework";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hspec-attoparsec.nix b/pkgs/hspec-attoparsec.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0d85eb35fdb9046e49469cfa0d031924722bd915
--- /dev/null
+++ b/pkgs/hspec-attoparsec.nix
@@ -0,0 +1,43 @@
+{ mkDerivation
+, attoparsec
+, base
+, bytestring
+, hspec
+, hspec-expectations
+, lib
+, text
+}:
+mkDerivation {
+  pname = "hspec-attoparsec";
+  version = "0.1.0.2";
+  sha256 = "ea7a8b3f2989abde8c8537cec1a2ae312e88df80086b9b01ed12e5324137fb64";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    attoparsec
+    base
+    bytestring
+    hspec-expectations
+    text
+  ];
+  testHaskellDepends = [
+    attoparsec
+    base
+    bytestring
+    hspec
+    hspec-expectations
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/alpmestan/hspec-attoparsec";
+  description = "Utility functions for testing your attoparsec parsers with hspec";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hw-fingertree.nix b/pkgs/hw-fingertree.nix
new file mode 100644
index 0000000000000000000000000000000000000000..61d767f3f9ef3f9b790c2e89fef20cb001d06a42
--- /dev/null
+++ b/pkgs/hw-fingertree.nix
@@ -0,0 +1,44 @@
+{ mkDerivation
+, base
+, deepseq
+, doctest
+, doctest-discover
+, hedgehog
+, hspec
+, hspec-discover
+, hw-hspec-hedgehog
+, hw-prim
+, lib
+}:
+mkDerivation {
+  pname = "hw-fingertree";
+  version = "0.1.2.1";
+  sha256 = "ce8077e697e6e7e3d1038b9f44a8d54d28272adb3c1e17ecca9bae2758b1922a";
+  revision = "2";
+  editedCabalFile = "00h2vzzncfwyaa0krgsffcmy2gdb0637i9zjdlsz88mdlhynqhp3";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq hw-prim ];
+  testHaskellDepends = [
+    base
+    deepseq
+    doctest
+    doctest-discover
+    hedgehog
+    hspec
+    hw-hspec-hedgehog
+  ];
+  testToolDepends = [ doctest-discover hspec-discover ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-works/hw-fingertree#readme";
+  description = "Generic finger-tree structure, with example instances";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hw-hedgehog.nix b/pkgs/hw-hedgehog.nix
new file mode 100644
index 0000000000000000000000000000000000000000..ef50380a23e9b89c5b6f44def410010c2d222f41
--- /dev/null
+++ b/pkgs/hw-hedgehog.nix
@@ -0,0 +1,32 @@
+{ mkDerivation
+, base
+, doctest
+, doctest-discover
+, hedgehog
+, lib
+, vector
+}:
+mkDerivation {
+  pname = "hw-hedgehog";
+  version = "0.1.1.1";
+  sha256 = "28aedae8da96c369ed7f81db7d9b00f00b975aa4058bf2dd36a6f49ded8b7a4e";
+  revision = "2";
+  editedCabalFile = "0c9wy5jmsmfwz151k9zxfsj5663zz3rsvmr0i9vsv5agw8fb8xhq";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base hedgehog vector ];
+  testHaskellDepends = [ base doctest doctest-discover ];
+  testToolDepends = [ doctest-discover ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-works/hw-hedgehog#readme";
+  description = "Extra hedgehog functionality";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hw-hspec-hedgehog.nix b/pkgs/hw-hspec-hedgehog.nix
new file mode 100644
index 0000000000000000000000000000000000000000..1418e239f5fa11ffc8c98d937095c6cd708f75b2
--- /dev/null
+++ b/pkgs/hw-hspec-hedgehog.nix
@@ -0,0 +1,51 @@
+{ mkDerivation
+, HUnit
+, base
+, call-stack
+, doctest
+, doctest-discover
+, hedgehog
+, hspec
+, hspec-discover
+, lib
+, transformers
+}:
+mkDerivation {
+  pname = "hw-hspec-hedgehog";
+  version = "0.1.1.1";
+  sha256 = "fa4c101574484cc8f9775fefc558f62e86c0d0c7e4b494b4adfb6d897ac68fc6";
+  revision = "3";
+  editedCabalFile = "129bnprzh8nglbi5x8i5dlc4v5qr7cqg6bajy6id1168r26ciwcq";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    call-stack
+    hedgehog
+    hspec
+    HUnit
+    transformers
+  ];
+  testHaskellDepends = [
+    base
+    call-stack
+    doctest
+    doctest-discover
+    hedgehog
+    hspec
+    HUnit
+  ];
+  testToolDepends = [ doctest-discover hspec-discover ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-works/hw-hspec-hedgehog#readme";
+  description = "Interoperability between hspec and hedgehog";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/hw-prim.nix b/pkgs/hw-prim.nix
new file mode 100644
index 0000000000000000000000000000000000000000..558bd4dd3fade505d1df3eac18da060e500d5b2d
--- /dev/null
+++ b/pkgs/hw-prim.nix
@@ -0,0 +1,74 @@
+{ mkDerivation
+, QuickCheck
+, base
+, bytestring
+, criterion
+, deepseq
+, directory
+, doctest
+, doctest-discover
+, exceptions
+, ghc-prim
+, hedgehog
+, hspec
+, hspec-discover
+, hw-hspec-hedgehog
+, lib
+, mmap
+, transformers
+, unliftio-core
+, vector
+}:
+mkDerivation {
+  pname = "hw-prim";
+  version = "0.6.3.2";
+  sha256 = "1fa05fdc46c72ed4b28aabcee69695ce810d451bbd263fbe75f94b179e20441d";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    deepseq
+    ghc-prim
+    mmap
+    transformers
+    unliftio-core
+    vector
+  ];
+  testHaskellDepends = [
+    base
+    bytestring
+    directory
+    doctest
+    doctest-discover
+    exceptions
+    hedgehog
+    hspec
+    hw-hspec-hedgehog
+    mmap
+    QuickCheck
+    transformers
+    vector
+  ];
+  testToolDepends = [ doctest-discover hspec-discover ];
+  benchmarkHaskellDepends = [
+    base
+    bytestring
+    criterion
+    mmap
+    transformers
+    vector
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/haskell-works/hw-prim#readme";
+  description = "Primitive functions and data types";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/implicit-hie-cradle.nix b/pkgs/implicit-hie-cradle.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5817d17f91f212b5c2938e1d8b8b242059565640
--- /dev/null
+++ b/pkgs/implicit-hie-cradle.nix
@@ -0,0 +1,65 @@
+{ mkDerivation
+, base
+, base16-bytestring
+, bytestring
+, containers
+, directory
+, extra
+, filepath
+, hie-bios
+, hslogger
+, implicit-hie
+, lib
+, process
+, temporary
+, text
+, time
+, transformers
+, unix-compat
+, unordered-containers
+, vector
+, yaml
+}:
+mkDerivation {
+  pname = "implicit-hie-cradle";
+  version = "0.5.0.0";
+  sha256 = "3e6a8958052b95665932ed6f951e9e4c30c016b3f8aba1b7d7735f0a188ecc31";
+  revision = "1";
+  editedCabalFile = "0naa4dk7bgg8icx5xy38jpg7gxx9pirqz4gx0ggj5g2r787zcxj2";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    base16-bytestring
+    bytestring
+    containers
+    directory
+    extra
+    filepath
+    hie-bios
+    hslogger
+    implicit-hie
+    process
+    temporary
+    text
+    time
+    transformers
+    unix-compat
+    unordered-containers
+    vector
+    yaml
+  ];
+  testHaskellDepends = [ base ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Avi-D-coder/implicit-hie-cradle#readme";
+  description = "Auto generate hie-bios cradles";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/implicit-hie.nix b/pkgs/implicit-hie.nix
new file mode 100644
index 0000000000000000000000000000000000000000..12f4f7540372127d1c0b09d6035ef4e76dfab9ca
--- /dev/null
+++ b/pkgs/implicit-hie.nix
@@ -0,0 +1,64 @@
+{ mkDerivation
+, attoparsec
+, base
+, directory
+, filepath
+, filepattern
+, hspec
+, hspec-attoparsec
+, lib
+, text
+, transformers
+, yaml
+}:
+mkDerivation {
+  pname = "implicit-hie";
+  version = "0.1.4.0";
+  sha256 = "931814d6c1bb9f8f6d57161783eacb7b95e66398e1b20d652eca0759206def21";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    attoparsec
+    base
+    directory
+    filepath
+    filepattern
+    text
+    transformers
+    yaml
+  ];
+  executableHaskellDepends = [
+    attoparsec
+    base
+    directory
+    filepath
+    filepattern
+    text
+    transformers
+    yaml
+  ];
+  testHaskellDepends = [
+    attoparsec
+    base
+    directory
+    filepath
+    filepattern
+    hspec
+    hspec-attoparsec
+    text
+    transformers
+    yaml
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Avi-D-coder/implicit-hie#readme";
+  description = "Auto generate hie-bios cradles & hie.yaml";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/integration.nix b/pkgs/integration.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b8539858e51c21b9dc0ed18c6eb5531c47a5e32c
--- /dev/null
+++ b/pkgs/integration.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, parallel }:
+mkDerivation {
+  pname = "integration";
+  version = "0.2.1";
+  sha256 = "0c27385eadc10a580e78f7b7d4bc919c346b2c9b1e73aea7e7804d824d53582f";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base parallel ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ekmett/integration";
+  description = "Fast robust numeric integration via tanh-sinh quadrature";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/intervals.nix b/pkgs/intervals.nix
new file mode 100644
index 0000000000000000000000000000000000000000..77d53dc3f52edea433d34b85117bfb8e5ffb301d
--- /dev/null
+++ b/pkgs/intervals.nix
@@ -0,0 +1,29 @@
+{ mkDerivation
+, QuickCheck
+, array
+, base
+, distributive
+, ghc-prim
+, lib
+}:
+mkDerivation {
+  pname = "intervals";
+  version = "0.9.2";
+  sha256 = "9b421de662873e65e90380b9c5a0c7497afa581b3e0e65530f8653a4fddb2be2";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ array base distributive ghc-prim ];
+  testHaskellDepends = [ base QuickCheck ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/intervals";
+  description = "Interval Arithmetic";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/lsp-test.nix b/pkgs/lsp-test.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5dfbe53c4dfb7881ab0323fbfc02ce8878f56441
--- /dev/null
+++ b/pkgs/lsp-test.nix
@@ -0,0 +1,102 @@
+{ mkDerivation
+, Diff
+, Glob
+, aeson
+, aeson-pretty
+, ansi-terminal
+, async
+, base
+, bytestring
+, co-log-core
+, conduit
+, conduit-parse
+, containers
+, data-default
+, directory
+, exceptions
+, extra
+, filepath
+, hspec
+, lens
+, lib
+, lsp
+, lsp-types
+, mtl
+, parser-combinators
+, process
+, some
+, text
+, time
+, transformers
+, unix
+, unliftio
+, unordered-containers
+}:
+mkDerivation {
+  pname = "lsp-test";
+  version = "0.14.1.0";
+  sha256 = "e13ae2be422ae1344e8ab9f535f20432b97832be2d0f15a68e631660ffad6435";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    aeson-pretty
+    ansi-terminal
+    async
+    base
+    bytestring
+    co-log-core
+    conduit
+    conduit-parse
+    containers
+    data-default
+    Diff
+    directory
+    exceptions
+    filepath
+    Glob
+    lens
+    lsp
+    lsp-types
+    mtl
+    parser-combinators
+    process
+    some
+    text
+    time
+    transformers
+    unix
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    aeson
+    base
+    co-log-core
+    data-default
+    directory
+    filepath
+    hspec
+    lens
+    lsp
+    mtl
+    parser-combinators
+    process
+    text
+    unliftio
+    unordered-containers
+  ];
+  testToolDepends = [ lsp ];
+  benchmarkHaskellDepends = [ base extra lsp process ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/lsp/blob/master/lsp-test/README.md";
+  description = "Functional test framework for LSP servers";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/matrices.nix b/pkgs/matrices.nix
new file mode 100644
index 0000000000000000000000000000000000000000..eba5f6ed86e9f01e08e9f2152282c2d59a3aef7e
--- /dev/null
+++ b/pkgs/matrices.nix
@@ -0,0 +1,38 @@
+{ mkDerivation
+, base
+, criterion
+, deepseq
+, lib
+, primitive
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, vector
+}:
+mkDerivation {
+  pname = "matrices";
+  version = "0.5.0";
+  sha256 = "fd013f0b061f7fd006242340fb6bc936114c8fc7d255ba58bd54cd1d66391d4d";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq primitive vector ];
+  testHaskellDepends = [
+    base
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+    vector
+  ];
+  benchmarkHaskellDepends = [ base criterion vector ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "native matrix based on vector";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/mfsolve.nix b/pkgs/mfsolve.nix
new file mode 100644
index 0000000000000000000000000000000000000000..09823fc40f81c640a5f668628dd6c0af08b848ee
--- /dev/null
+++ b/pkgs/mfsolve.nix
@@ -0,0 +1,38 @@
+{ mkDerivation
+, base
+, hashable
+, lib
+, mtl
+, mtl-compat
+, tasty
+, tasty-hunit
+, unordered-containers
+}:
+mkDerivation {
+  pname = "mfsolve";
+  version = "0.3.2.1";
+  sha256 = "a225068707a71fdef595cdde77336c1b609b14527e023bf42ab2f86dd9d70da4";
+  revision = "1";
+  editedCabalFile = "0938ji6l1bx787lxcw6rzjwskm9vxm615cvx7hxpbwp0hbxrj5sa";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    hashable
+    mtl
+    mtl-compat
+    unordered-containers
+  ];
+  testHaskellDepends = [ base tasty tasty-hunit ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Equation solver and calculator à la metafont";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/mmap.nix b/pkgs/mmap.nix
new file mode 100644
index 0000000000000000000000000000000000000000..51fc8b4ea5bd4ef5705068647a4d608d4211b84a
--- /dev/null
+++ b/pkgs/mmap.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, bytestring, lib }:
+mkDerivation {
+  pname = "mmap";
+  version = "0.5.9";
+  sha256 = "58fcbb04e1cb8e7c36c05823b02dce2faaa989c53d745a7f36192de2fc98b5f8";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Memory mapped files for POSIX and Windows";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/monad-primitive.nix b/pkgs/monad-primitive.nix
new file mode 100644
index 0000000000000000000000000000000000000000..6b222747dd76909393b1a2f85debbf3d80c80434
--- /dev/null
+++ b/pkgs/monad-primitive.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib, primitive, transformers }:
+mkDerivation {
+  pname = "monad-primitive";
+  version = "0.1";
+  sha256 = "3dc032536e87ca77d9e802d581f036ebbf2e29064fb98a0ede05fb068b7926ee";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base primitive transformers ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://bitbucket.org/Shimuuar/monad-primitive";
+  description = "Type class for monad transformers stack with pirimitive base monad";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/monoid-extras.nix b/pkgs/monoid-extras.nix
new file mode 100644
index 0000000000000000000000000000000000000000..3a3ea2d33872853c6d6b407507b2d5510f514b08
--- /dev/null
+++ b/pkgs/monoid-extras.nix
@@ -0,0 +1,28 @@
+{ mkDerivation
+, base
+, criterion
+, groups
+, lib
+, semigroupoids
+, semigroups
+}:
+mkDerivation {
+  pname = "monoid-extras";
+  version = "0.6.2";
+  sha256 = "9ceec9125e4727c40bb1622319fb77f2d2fac39735f533afdb7f33e118b85de1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base groups semigroupoids ];
+  benchmarkHaskellDepends = [ base criterion semigroups ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Various extra monoid-related definitions and utilities";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/mwc-random-monad.nix b/pkgs/mwc-random-monad.nix
new file mode 100644
index 0000000000000000000000000000000000000000..92e5c8d502ad021f5c1a1b107ee1b8bb70dc2567
--- /dev/null
+++ b/pkgs/mwc-random-monad.nix
@@ -0,0 +1,35 @@
+{ mkDerivation
+, base
+, lib
+, monad-primitive
+, mwc-random
+, primitive
+, transformers
+, vector
+}:
+mkDerivation {
+  pname = "mwc-random-monad";
+  version = "0.7.3.1";
+  sha256 = "d0f37917e646c9610dcbee4173c4ac50e054418f62623a42f19e3c0c39979440";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    monad-primitive
+    mwc-random
+    primitive
+    transformers
+    vector
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Monadic interface for mwc-random";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/numeric-extras.nix b/pkgs/numeric-extras.nix
new file mode 100644
index 0000000000000000000000000000000000000000..8f2fd0c94e81b8025b8c6f59bb895a33d7af67c8
--- /dev/null
+++ b/pkgs/numeric-extras.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "numeric-extras";
+  version = "0.1";
+  sha256 = "c700711021d96334be43a21fbd80a5f7146fdd6706ef8656f1d287ff000b61d6";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/numeric-extras";
+  description = "Useful tools from the C standard library";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/opentelemetry.nix b/pkgs/opentelemetry.nix
new file mode 100644
index 0000000000000000000000000000000000000000..4574eeb015df652c59be7fa330b0bda2a5086cf1
--- /dev/null
+++ b/pkgs/opentelemetry.nix
@@ -0,0 +1,32 @@
+{ mkDerivation
+, base
+, bytestring
+, exceptions
+, ghc-trace-events
+, hashable
+, lib
+}:
+mkDerivation {
+  pname = "opentelemetry";
+  version = "0.8.0";
+  sha256 = "e9bf1c3876de1be12e0cb1d7eeb758527e863989ea6f088a7241b2cb0493e415";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    exceptions
+    ghc-trace-events
+    hashable
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/operational.nix b/pkgs/operational.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0876cb2a2c425a17495326f31921a038c204f3d2
--- /dev/null
+++ b/pkgs/operational.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib, mtl, random, transformers }:
+mkDerivation {
+  pname = "operational";
+  version = "0.2.4.2";
+  sha256 = "857da8b2b155a9f799c3f6eb34b158454ce7a0116a89f07d9fda05f1eadda6b7";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base mtl transformers ];
+  executableHaskellDepends = [ base mtl random ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://wiki.haskell.org/Operational";
+  description = "Implementation of difficult monads made easy with operational semantics";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/optparse-simple.nix b/pkgs/optparse-simple.nix
new file mode 100644
index 0000000000000000000000000000000000000000..088cb352ee60843e6e30efd0e03badba9fbae375
--- /dev/null
+++ b/pkgs/optparse-simple.nix
@@ -0,0 +1,39 @@
+{ mkDerivation
+, base
+, bytestring
+, directory
+, githash
+, lib
+, optparse-applicative
+, template-haskell
+, th-compat
+, transformers
+}:
+mkDerivation {
+  pname = "optparse-simple";
+  version = "0.1.1.4";
+  sha256 = "1d01d85c477b42e5a6ab6595def68c800d5bccbeff5a06ccf63c6a86967a7878";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    githash
+    optparse-applicative
+    template-haskell
+    th-compat
+    transformers
+  ];
+  testHaskellDepends = [ base bytestring directory ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/fpco/optparse-simple#readme";
+  description = "Simple interface to optparse-applicative";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/primitive-extras.nix b/pkgs/primitive-extras.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d88af70bdba6d9e5c4a47573cf44f864cb46e0cc
--- /dev/null
+++ b/pkgs/primitive-extras.nix
@@ -0,0 +1,64 @@
+{ mkDerivation
+, QuickCheck
+, base
+, bytestring
+, cereal
+, deferred-folds
+, focus
+, foldl
+, lib
+, list-t
+, primitive
+, primitive-unlifted
+, profunctors
+, quickcheck-instances
+, rerebase
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, vector
+}:
+mkDerivation {
+  pname = "primitive-extras";
+  version = "0.10.1.5";
+  sha256 = "5ae268716aa5beba45fe717e6f01f1b6c5ac13abc328805180496b8ad47eb176";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    cereal
+    deferred-folds
+    focus
+    foldl
+    list-t
+    primitive
+    primitive-unlifted
+    profunctors
+    vector
+  ];
+  testHaskellDepends = [
+    cereal
+    deferred-folds
+    focus
+    primitive
+    QuickCheck
+    quickcheck-instances
+    rerebase
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/metrix-ai/primitive-extras";
+  description = "Extras for the \"primitive\" library";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/primitive-unlifted.nix b/pkgs/primitive-unlifted.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a7f8afa7f364ec4b98bada6179a200dfa77cde2c
--- /dev/null
+++ b/pkgs/primitive-unlifted.nix
@@ -0,0 +1,29 @@
+{ mkDerivation
+, base
+, bytestring
+, lib
+, primitive
+, stm
+, text-short
+}:
+mkDerivation {
+  pname = "primitive-unlifted";
+  version = "0.1.3.1";
+  sha256 = "8b330e1a7b146333344304334d67b60481535bb506f1e53500e2ef4bd9fb34be";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base bytestring primitive text-short ];
+  testHaskellDepends = [ base primitive stm ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-primitive/primitive-unlifted";
+  description = "Primitive GHC types with unlifted types inside";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/random-fu.nix b/pkgs/random-fu.nix
new file mode 100644
index 0000000000000000000000000000000000000000..a600cf69ca327a04445f4cae5eaead9edc50040a
--- /dev/null
+++ b/pkgs/random-fu.nix
@@ -0,0 +1,48 @@
+{ mkDerivation
+, base
+, erf
+, lib
+, math-functions
+, monad-loops
+, mtl
+, random
+, random-shuffle
+, rvar
+, syb
+, template-haskell
+, transformers
+, vector
+}:
+mkDerivation {
+  pname = "random-fu";
+  version = "0.3.0.0";
+  sha256 = "a19d158d0f2b6df51d32c9e6df7cf6bbd94b7a1af81acfb4fe505f410e5ae4c7";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    erf
+    math-functions
+    monad-loops
+    mtl
+    random
+    random-shuffle
+    rvar
+    syb
+    template-haskell
+    transformers
+    vector
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/mokus0/random-fu";
+  description = "Random number generation";
+  license = lib.licenses.publicDomain;
+  broken = false;
+}
diff --git a/pkgs/retrie.nix b/pkgs/retrie.nix
new file mode 100644
index 0000000000000000000000000000000000000000..04a6eb0c1f2b1ba25d2716bca876fcbb4f612431
--- /dev/null
+++ b/pkgs/retrie.nix
@@ -0,0 +1,94 @@
+{ mkDerivation
+, HUnit
+, ansi-terminal
+, async
+, base
+, bytestring
+, containers
+, data-default
+, deepseq
+, directory
+, exceptions
+, filepath
+, ghc
+, ghc-exactprint
+, ghc-paths
+, haskell-src-exts
+, lib
+, list-t
+, mtl
+, optparse-applicative
+, process
+, random-shuffle
+, syb
+, tasty
+, tasty-hunit
+, temporary
+, text
+, transformers
+, unordered-containers
+}:
+mkDerivation {
+  pname = "retrie";
+  version = "1.2.1.1";
+  sha256 = "74abc7b1968df4455cd104338a81a38f3db89ac963c8fd918f5c5273db14bfab";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    ansi-terminal
+    async
+    base
+    bytestring
+    containers
+    data-default
+    directory
+    filepath
+    ghc
+    ghc-exactprint
+    list-t
+    mtl
+    optparse-applicative
+    process
+    random-shuffle
+    syb
+    text
+    transformers
+    unordered-containers
+  ];
+  executableHaskellDepends = [ base ghc-paths haskell-src-exts ];
+  testHaskellDepends = [
+    base
+    containers
+    data-default
+    deepseq
+    directory
+    exceptions
+    filepath
+    ghc
+    ghc-exactprint
+    ghc-paths
+    haskell-src-exts
+    HUnit
+    mtl
+    optparse-applicative
+    process
+    syb
+    tasty
+    tasty-hunit
+    temporary
+    text
+    unordered-containers
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/facebookincubator/retrie";
+  description = "A powerful, easy-to-use codemodding tool for Haskell";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/rvar.nix b/pkgs/rvar.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d8699bdb09409637afd5f19159db9f3bcd7bf315
--- /dev/null
+++ b/pkgs/rvar.nix
@@ -0,0 +1,36 @@
+{ mkDerivation
+, MonadPrompt
+, base
+, bytestring
+, lib
+, mtl
+, random
+, transformers
+}:
+mkDerivation {
+  pname = "rvar";
+  version = "0.3.0.1";
+  sha256 = "2529c11a7f22683a398b34a63d0d04beb75833d763777074513454a769b745f1";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    MonadPrompt
+    mtl
+    random
+    transformers
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-numerics/random-fu";
+  description = "Random Variables";
+  license = lib.licenses.publicDomain;
+  broken = false;
+}
diff --git a/pkgs/shake-bench.nix b/pkgs/shake-bench.nix
new file mode 100644
index 0000000000000000000000000000000000000000..bd016a4ed2ad337c6a70c7dbb80fa95f3f9d83c4
--- /dev/null
+++ b/pkgs/shake-bench.nix
@@ -0,0 +1,57 @@
+{ mkDerivation
+, Chart
+, Chart-diagrams
+, aeson
+, base
+, bytestring
+, diagrams-contrib
+, diagrams-core
+, diagrams-lib
+, diagrams-svg
+, directory
+, extra
+, filepath
+, lens
+, lens-aeson
+, lib
+, mtl
+, shake
+, text
+}:
+mkDerivation {
+  pname = "shake-bench";
+  version = "0.2.0.0";
+  sha256 = "21f159e881e3bc71406877a51fc40e1c9e7b553bbf376b0400087222f90ddd4b";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    bytestring
+    Chart
+    Chart-diagrams
+    diagrams-contrib
+    diagrams-core
+    diagrams-lib
+    diagrams-svg
+    directory
+    extra
+    filepath
+    lens
+    lens-aeson
+    mtl
+    shake
+    text
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Build rules for historical benchmarking";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/statestack.nix b/pkgs/statestack.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7cdab9c798f30c6465e6f6556374679bd343842d
--- /dev/null
+++ b/pkgs/statestack.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, lib, mtl, transformers }:
+mkDerivation {
+  pname = "statestack";
+  version = "0.3.1";
+  sha256 = "f9d2a2b7047a867c6eb3233db9528148fd773bdd0bdec29c13eb9f10dce71341";
+  revision = "1";
+  editedCabalFile = "1bvx9s7zssczqpwwgqw4cgmfdw1wjy0mwqlndjgnkjjn4nm31ml8";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base mtl transformers ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Simple State-like monad transformer with saveable and restorable state";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/stm-containers.nix b/pkgs/stm-containers.nix
new file mode 100644
index 0000000000000000000000000000000000000000..fe35bc597a235d218b1ab69b82bbd50b55dfc2ea
--- /dev/null
+++ b/pkgs/stm-containers.nix
@@ -0,0 +1,55 @@
+{ mkDerivation
+, HTF
+, QuickCheck
+, base
+, deferred-folds
+, focus
+, foldl
+, free
+, hashable
+, lib
+, list-t
+, quickcheck-text
+, rerebase
+, stm-hamt
+, transformers
+}:
+mkDerivation {
+  pname = "stm-containers";
+  version = "1.2";
+  sha256 = "6c4d98b6a3182fa0dd99235cea1aa95a3c876f8be5cbb78f7700a17d64b7177a";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    deferred-folds
+    focus
+    hashable
+    list-t
+    stm-hamt
+    transformers
+  ];
+  testHaskellDepends = [
+    deferred-folds
+    focus
+    foldl
+    free
+    HTF
+    list-t
+    QuickCheck
+    quickcheck-text
+    rerebase
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/nikita-volkov/stm-containers";
+  description = "Containers for STM";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/stm-hamt.nix b/pkgs/stm-hamt.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d03b67f646ccc40b3373ce0970bb2bb033fa7416
--- /dev/null
+++ b/pkgs/stm-hamt.nix
@@ -0,0 +1,72 @@
+{ mkDerivation
+, QuickCheck
+, async
+, base
+, criterion
+, deferred-folds
+, focus
+, free
+, hashable
+, lib
+, list-t
+, mwc-random
+, mwc-random-monad
+, primitive
+, primitive-extras
+, quickcheck-instances
+, rebase
+, rerebase
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+, transformers
+}:
+mkDerivation {
+  pname = "stm-hamt";
+  version = "1.2.0.8";
+  sha256 = "6c74d4ba2292d0be95fa1599c40180953a24d9dbb5d12cc27cba475dde9676dc";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    deferred-folds
+    focus
+    hashable
+    list-t
+    primitive
+    primitive-extras
+    transformers
+  ];
+  testHaskellDepends = [
+    deferred-folds
+    focus
+    QuickCheck
+    quickcheck-instances
+    rerebase
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  benchmarkHaskellDepends = [
+    async
+    criterion
+    focus
+    free
+    list-t
+    mwc-random
+    mwc-random-monad
+    rebase
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/nikita-volkov/stm-hamt";
+  description = "STM-specialised Hash Array Mapped Trie";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/svg-builder.nix b/pkgs/svg-builder.nix
new file mode 100644
index 0000000000000000000000000000000000000000..82e4bb96d8c5b13a5e59a70428c359626a25fb55
--- /dev/null
+++ b/pkgs/svg-builder.nix
@@ -0,0 +1,38 @@
+{ mkDerivation
+, base
+, blaze-builder
+, bytestring
+, hashable
+, lib
+, text
+, unordered-containers
+}:
+mkDerivation {
+  pname = "svg-builder";
+  version = "0.1.1";
+  sha256 = "4fd0e3f2cbc5601fc69e7eab41588cbfa1150dc508d9d86bf5f3d393880382cc";
+  revision = "6";
+  editedCabalFile = "1cprm8ya1rdid4pz1dk6692mv0kqkaxrsqaxg83bca5z4dkgqi2z";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    blaze-builder
+    bytestring
+    hashable
+    text
+    unordered-containers
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/diagrams/svg-builder.git";
+  description = "DSL for building SVG";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/tasty-rerun.nix b/pkgs/tasty-rerun.nix
new file mode 100644
index 0000000000000000000000000000000000000000..fa6786e594af96a0bb32a5814c978d51528c21ff
--- /dev/null
+++ b/pkgs/tasty-rerun.nix
@@ -0,0 +1,44 @@
+{ mkDerivation
+, base
+, containers
+, lib
+, mtl
+, optparse-applicative
+, split
+, stm
+, tagged
+, tasty
+, transformers
+}:
+mkDerivation {
+  pname = "tasty-rerun";
+  version = "1.1.18";
+  sha256 = "fa74ac10bc23fd3e443362427236a9c543f92b6aaf2e1bc8e959ecd47fb98c69";
+  revision = "4";
+  editedCabalFile = "1i2van23247h62sz94kjiyyb6xvz88z6kkjqqsbxi4m74pga27hn";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    containers
+    mtl
+    optparse-applicative
+    split
+    stm
+    tagged
+    tasty
+    transformers
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ocharles/tasty-rerun";
+  description = "Rerun only tests which failed in a previous test run";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/testing-feat.nix b/pkgs/testing-feat.nix
new file mode 100644
index 0000000000000000000000000000000000000000..c4d7ce033ebf53e948b113b52b5ecf34d90610dd
--- /dev/null
+++ b/pkgs/testing-feat.nix
@@ -0,0 +1,32 @@
+{ mkDerivation
+, QuickCheck
+, base
+, lib
+, size-based
+, testing-type-modifiers
+}:
+mkDerivation {
+  pname = "testing-feat";
+  version = "1.1.1.1";
+  sha256 = "c2c988b816b62c1e16ed611cccfbe7b1f4c53ab650b320bb193ccefc58a4a691";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    QuickCheck
+    size-based
+    testing-type-modifiers
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/size-based/testing-feat";
+  description = "Functional Enumeration of Algebraic Types";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/vector-space.nix b/pkgs/vector-space.nix
new file mode 100644
index 0000000000000000000000000000000000000000..b36a5913e8ec9d340b8ef55c1c9c4a836050c1b3
--- /dev/null
+++ b/pkgs/vector-space.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, Boolean, MemoTrie, NumInstances, base, lib }:
+mkDerivation {
+  pname = "vector-space";
+  version = "0.16";
+  sha256 = "0c0b2f1209f95045865b968c7aa0a25e155410b3e08cf98a6c8544e48436c79c";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base Boolean MemoTrie NumInstances ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Vector & affine spaces, linear maps, and derivatives";
+  license = lib.licenses.bsd3;
+  broken = false;
+}