diff --git a/README.md b/README.md
index d67217bbe3875a9906c32188886ef357f6dd9e84..c38d49fd0fbf23a72391afab14d243e140d1c45b 100644
--- a/README.md
+++ b/README.md
@@ -33,6 +33,28 @@ If you need to do additional manual overrides to the nix code, such as
 `addPkgconfigDepends`, edit the `configuration.nix` overlay, which is applied
 afterwards.
 
+## Programmmatic Updates
+
+The package set will be automatically loaded under the variable `hz`.
+
+```
+import Horizon.Spec.Utils
+
+let f = L.at "lens" L..~ Just (callHackage "lens" "5.1")
+
+:t f
+f :: (L.IxValue t ~ HaskellPackage, L.At t,
+      IsString (L.Index t)) =>
+     t -> t
+
+let hz' = f hz
+
+H.writeHorizonFile hz'
+
+```
+
+Then remember to delete `pkgs/lens.nix` and re-run `nix run .#horizon-gen-nix`
+as usual.~
 ## Package Set Policy
 
 This package set has the following policy.
diff --git a/feedback.yaml b/feedback.yaml
index c3d40cd23259b2da871e0ae346cb68a88b8239c9..b26d8e2f70a8b3107d252b5a18639d652a86e8ee 100644
--- a/feedback.yaml
+++ b/feedback.yaml
@@ -8,3 +8,5 @@ loops:
     command: nix run .#horizon-gen-nix
     filter:
       find: horizon.dhall
+  procex:
+    command: nix run .#procex -L
diff --git a/flake.lock b/flake.lock
index 261c2f6ec03616d138a5a385a4511e267ab23a7d..42199231e340458d67b184f3d9d7bf66942448a4 100644
--- a/flake.lock
+++ b/flake.lock
@@ -217,11 +217,11 @@
     "horizon-platform_2": {
       "flake": false,
       "locked": {
-        "lastModified": 1672428555,
-        "narHash": "sha256-+Aui0RtWnkWjSSbOrcg1zcnETuyD44YBj0WJ9fZsogI=",
+        "lastModified": 1677263150,
+        "narHash": "sha256-VS8RQKojTgHgPQQeL9WBIdS2C3nMZ1s7tL1slvm1qfA=",
         "ref": "refs/heads/master",
-        "rev": "e187fb1aff7b3aad3cd81f11c5df6963d65b67ed",
-        "revCount": 804,
+        "rev": "2e6a2ea4546bf344f1b7d671d3006e0cc6be1ca1",
+        "revCount": 947,
         "type": "git",
         "url": "https://gitlab.homotopic.tech/horizon/horizon-platform"
       },
diff --git a/horizon.dhall b/horizon.dhall
index 231ee171f47d3f0b58816255e7cf1a5becc486d9..5f76d31e575474c46d9fcfbc3d8d1c29ef062ce3 100644
--- a/horizon.dhall
+++ b/horizon.dhall
@@ -1,78 +1,30 @@
 let H =
       https://gitlab.homotopic.tech/horizon/horizon-spec/-/raw/0.6/dhall/package.dhall
-        sha256:9a80164572526dc5350f105c8db0790fdf36634629b4cf03402ba14fd173d121
-
-let callHorizonAdopted
-    : H.Name → H.Revision → H.HaskellPackage.Type
-    = λ(name : H.Name) →
-      λ(revision : H.Revision) →
-        H.callGit
-          ("https://gitlab.homotopic.tech/horizon/adopted/" ++ name)
-          revision
-          (None Text)
-
-let callGitBeam
-    : H.Subdir → H.HaskellPackage.Type
-    = λ(subdir : H.Subdir) →
-        H.callGit
-          "https://github.com/haskell-beam/beam"
-          "94461937c5ca8b89f1ff1a60bde5bffe207315b4"
-          (Some subdir)
-
-let callGitCabal
-    : H.Subdir → H.HaskellPackage.Type
-    = λ(subdir : H.Subdir) →
-        H.callGit
-          "https://gitlab.haskell.org/ghc/packages/Cabal"
-          "e9fdb85427ad1ef11a25c8b1f2286614c86a65ff"
-          (Some subdir)
-
-let callGitCursorDirforest
-    : H.Subdir → H.HaskellPackage.Type
-    = λ(subdir : H.Subdir) →
-        H.callGit
-          "https://github.com/NorfairKing/cursor-dirforest"
-          "6ad5b168e26eb4e647df9f007d812aaf59338d40"
-          (Some subdir)
-
-let callGitKvStoreEffectful
-    : H.Subdir → H.HaskellPackage.Type
-    = λ(subdir : H.Subdir) →
-        H.callGit
-          "https://github.com/haskell-effectful/kvstore-effectful"
-          "3502825423aea3a1af9384e9d751feea4599c60b"
-          (Some subdir)
-
-let callGitServant
-    : H.Subdir → H.HaskellPackage.Type
-    = λ(subdir : H.Subdir) →
-        H.callGit
-          "https://github.com/TeofilC/servant"
-          "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"
       , Cabal = H.callHackage "Cabal" "3.8.1.0"
-      , Cabal-QuickCheck = callGitCabal "Cabal-QuickCheck"
-      , Cabal-described = callGitCabal "Cabal-described"
-      , Cabal-syntax = callGitCabal "Cabal-syntax"
-      , Cabal-tree-diff = callGitCabal "Cabal-tree-diff"
+      , Cabal-QuickCheck =
+          H.callGit
+            "https://gitlab.haskell.org/ghc/packages/Cabal"
+            "e9fdb85427ad1ef11a25c8b1f2286614c86a65ff"
+            (Some "Cabal-QuickCheck/")
+      , Cabal-described =
+          H.callGit
+            "https://gitlab.haskell.org/ghc/packages/Cabal"
+            "e9fdb85427ad1ef11a25c8b1f2286614c86a65ff"
+            (Some "Cabal-described/")
+      , Cabal-syntax =
+          H.callGit
+            "https://gitlab.haskell.org/ghc/packages/Cabal"
+            "e9fdb85427ad1ef11a25c8b1f2286614c86a65ff"
+            (Some "Cabal-syntax/")
+      , Cabal-tree-diff =
+          H.callGit
+            "https://gitlab.haskell.org/ghc/packages/Cabal"
+            "e9fdb85427ad1ef11a25c8b1f2286614c86a65ff"
+            (Some "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"
@@ -83,14 +35,14 @@ let packages =
       , HTF = H.callHackage "HTF" "0.15.0.0"
       , HTTP = H.callHackage "HTTP" "4000.4.1"
       , HUnit = H.callHackage "HUnit" "1.6.2.0"
-      , HsOpenSSL = H.callHackage "HsOpenSSL" "0.11.7.2"
       , Hclip = H.callHackage "Hclip" "3.0.0.4"
+      , HsOpenSSL = H.callHackage "HsOpenSSL" "0.11.7.2"
       , HsYAML = H.callHackage "HsYAML" "0.2.1.1"
-      , ListLike = H.callHackage "ListLike" "4.7.7"
       , JuicyPixels = H.callHackage "JuicyPixels" "3.3.8"
+      , ListLike = H.callHackage "ListLike" "4.7.7"
       , MemoTrie = H.callHackage "MemoTrie" "0.6.10"
-      , MonadRandom = H.callHackage "MonadRandom" "0.5.3"
       , MonadPrompt = H.callHackage "MonadPrompt" "1.0.0.5"
+      , MonadRandom = H.callHackage "MonadRandom" "0.5.3"
       , NumInstances = H.callHackage "NumInstances" "1.4"
       , OneTuple = H.callHackage "OneTuple" "0.3.1"
       , Only = H.callHackage "Only" "0.1"
@@ -98,15 +50,16 @@ let packages =
       , PSQueue = H.callHackage "PSQueue" "1.1.1"
       , PyF = H.callHackage "PyF" "0.11.1.0"
       , QuickCheck = H.callHackage "QuickCheck" "2.14.2"
+      , RSA = H.callHackage "RSA" "2.4.1"
       , SHA = H.callHackage "SHA" "1.6.4.4"
+      , SVGFonts = H.callHackage "SVGFonts" "1.8.0.1"
       , 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"
+      , X11-xft = H.callHackage "X11-xft" "0.3.4"
       , abstract-deque = H.callHackage "abstract-deque" "0.3"
+      , abstract-deque-tests = H.callHackage "abstract-deque-tests" "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"
@@ -121,20 +74,20 @@ let packages =
       , 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"
+      , apecs = H.callHackage "apecs" "0.9.4"
       , 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"
       , asn1-types = H.callHackage "asn1-types" "0.3.4"
       , assoc = H.callHackage "assoc" "1.0.2"
-      , async-timer = H.callHackage "async-timer" "0.2.0.0"
       , async = H.callHackage "async" "2.2.4"
+      , async-timer = H.callHackage "async-timer" "0.2.0.0"
       , atomic-primops = H.callHackage "atomic-primops" "0.8.4"
       , atomic-write = H.callHackage "atomic-write" "0.2.0.7"
+      , attoparsec = H.callHackage "attoparsec" "0.14.4"
       , attoparsec-binary = H.callHackage "attoparsec-binary" "0.2"
       , attoparsec-iso8601 = H.callHackage "attoparsec-iso8601" "1.1.0.0"
-      , attoparsec = H.callHackage "attoparsec" "0.14.4"
       , authenticate-oauth = H.callHackage "authenticate-oauth" "1.7"
       , auto-update = H.callHackage "auto-update" "0.1.6"
       , autodocodec = H.callHackage "autodocodec" "0.2.0.1"
@@ -144,40 +97,56 @@ let packages =
       , autodocodec-yaml = H.callHackage "autodocodec-yaml" "0.2.0.2"
       , autoexporter = H.callHackage "autoexporter" "2.0.0.2"
       , barbies = H.callHackage "barbies" "2.0.3.1"
-      , base-prelude = H.callHackage "base-prelude" "1.6.1"
+      , base-compat = H.callHackage "base-compat" "0.12.2"
+      , base-compat-batteries = H.callHackage "base-compat-batteries" "0.12.2"
       , base-orphans = H.callHackage "base-orphans" "0.8.7"
-      , basement = H.callHackage "basement" "0.0.15"
+      , base-prelude = H.callHackage "base-prelude" "1.6.1"
       , base16-bytestring = H.callHackage "base16-bytestring" "1.0.2.0"
       , base58-bytestring = H.callHackage "base58-bytestring" "0.1.0"
-      , base64-bytestring-type = H.callHackage "base64-bytestring-type" "1.0.1"
-      , base64-bytestring = H.callHackage "base64-bytestring" "1.2.1.0"
       , base64 = H.callHackage "base64" "0.4.2.4"
-      , base-compat = H.callHackage "base-compat" "0.12.2"
-      , base-compat-batteries = H.callHackage "base-compat-batteries" "0.12.2"
-      , beam-core = callGitBeam "beam-core"
-      , beam-migrate = callGitBeam "beam-migrate"
-      , beam-postgres = callGitBeam "beam-postgres"
-      , beam-sqlite = callGitBeam "beam-sqlite"
+      , base64-bytestring = H.callHackage "base64-bytestring" "1.2.1.0"
+      , base64-bytestring-type = H.callHackage "base64-bytestring-type" "1.0.1"
+      , basement = H.callHackage "basement" "0.0.15"
+      , beam-core =
+          H.callGit
+            "https://github.com/haskell-beam/beam"
+            "94461937c5ca8b89f1ff1a60bde5bffe207315b4"
+            (Some "beam-core/")
+      , beam-migrate =
+          H.callGit
+            "https://github.com/haskell-beam/beam"
+            "94461937c5ca8b89f1ff1a60bde5bffe207315b4"
+            (Some "beam-migrate/")
+      , beam-postgres =
+          H.callGit
+            "https://github.com/haskell-beam/beam"
+            "94461937c5ca8b89f1ff1a60bde5bffe207315b4"
+            (Some "beam-postgres/")
+      , beam-sqlite =
+          H.callGit
+            "https://github.com/haskell-beam/beam"
+            "94461937c5ca8b89f1ff1a60bde5bffe207315b4"
+            (Some "beam-sqlite/")
       , bech32 = H.callHackage "bech32" "1.1.2"
       , bech32-th = H.callHackage "bech32-th" "1.1.1"
       , bifunctors = H.callHackage "bifunctors" "5.5.13"
       , bimap = H.callHackage "bimap" "0.5.0"
-      , binary-orphans = H.callHackage "binary-orphans" "1.0.3"
       , bin = H.callHackage "bin" "0.1.2"
+      , binary-orphans = H.callHackage "binary-orphans" "1.0.3"
       , bitvec = H.callHackage "bitvec" "1.1.3.0"
       , blaze-builder = H.callHackage "blaze-builder" "0.4.2.2"
       , 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"
+      , blaze-textual = H.callHackage "blaze-textual" "0.2.2.1"
       , boring = H.callHackage "boring" "0.2"
       , breakpoint = H.callHackage "breakpoint" "0.1.1.1"
       , brick = H.callHackage "brick" "1.3"
       , bsb-http-chunked = H.callHackage "bsb-http-chunked" "0.0.0.4"
       , byteable = H.callHackage "byteable" "0.1.1"
       , byteorder = H.callHackage "byteorder" "1.0.4"
-      , bytestring-builder = H.callHackage "bytestring-builder" "0.10.8.2.0"
       , bytes = H.callHackage "bytes" "0.17.2"
+      , bytestring-builder = H.callHackage "bytestring-builder" "0.10.8.2.0"
       , c2hs = H.callHackage "c2hs" "0.28.8"
       , cabal-doctest = H.callHackage "cabal-doctest" "1.0.9"
       , cabal-install = H.callHackage "cabal-install" "3.8.1.0"
@@ -192,13 +161,13 @@ let packages =
       , cassava-megaparsec = H.callHackage "cassava-megaparsec" "2.0.4"
       , cborg = H.callHackage "cborg" "0.2.8.0"
       , cborg-json = H.callHackage "cborg-json" "0.2.5.0"
-      , cereal-vector = H.callHackage "cereal-vector" "0.2.0.1"
       , cereal = H.callHackage "cereal" "0.5.8.3"
+      , cereal-vector = H.callHackage "cereal-vector" "0.2.0.1"
       , charset = H.callHackage "charset" "0.3.9"
       , cheapskate = H.callHackage "cheapskate" "0.1.1.2"
       , 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"
+      , chell-quickcheck = H.callHackage "chell-quickcheck" "0.2.5.3"
       , 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"
@@ -209,16 +178,16 @@ let packages =
       , code-page = H.callHackage "code-page" "0.2.1"
       , colour = H.callHackage "colour" "2.3.6"
       , colourista = H.callHackage "colourista" "0.1.0.1"
+      , commonmark = H.callHackage "commonmark" "0.2.2"
       , commonmark-extensions = H.callHackage "commonmark-extensions" "0.2.3.3"
       , commonmark-pandoc = H.callHackage "commonmark-pandoc" "0.2.1.2"
-      , commonmark = H.callHackage "commonmark" "0.2.2"
       , comonad = H.callHackage "comonad" "5.0.8"
+      , compact = H.callHackage "compact" "0.2.0.0"
       , compactable =
           H.callGit
             "https://gitlab.com/fresheyeball/Compactable"
             "f63927b1e438c267f0d12f36e5b3735cfaebeeb4"
-            (None Text)
-      , compact = H.callHackage "compact" "0.2.0.0"
+            (None H.Subdir)
       , composite-base = H.callHackage "composite-base" "0.8.1.0"
       , composite-cassava = H.callHackage "composite-cassava" "0.0.3.1"
       , composite-dhall = H.callHackage "composite-dhall" "0.1.0.1"
@@ -228,43 +197,59 @@ let packages =
       , concise = H.callHackage "concise" "0.1.0.1"
       , 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-combinators = H.callHackage "conduit-combinators" "1.3.0"
       , conduit-extra = H.callHackage "conduit-extra" "1.3.6"
+      , conduit-parse = H.callHackage "conduit-parse" "0.2.1.1"
       , config-ini = H.callHackage "config-ini" "0.2.5.0"
       , connection = H.callHackage "connection" "0.3.1"
-      , constraints-extras = H.callHackage "constraints-extras" "0.3.2.1"
       , constraints = H.callHackage "constraints" "0.13.4"
+      , constraints-extras = H.callHackage "constraints-extras" "0.3.2.1"
       , contravariant = H.callHackage "contravariant" "1.5.5"
       , control-monad-free = H.callHackage "control-monad-free" "0.6.2"
       , cookie = H.callHackage "cookie" "0.4.5"
       , cpphs = H.callHackage "cpphs" "1.20.9.1"
-      , criterion-measurement = H.callHackage "criterion-measurement" "0.2.0.0"
       , criterion = H.callHackage "criterion" "1.5.13.0"
+      , criterion-measurement = H.callHackage "criterion-measurement" "0.2.0.0"
+      , crypto-api = H.callHackage "crypto-api" "0.13.3"
+      , crypto-api-tests = H.callHackage "crypto-api-tests" "0.3"
+      , crypto-pubkey-types = H.callHackage "crypto-pubkey-types" "0.4.3"
+      , cryptohash = H.callHackage "cryptohash" "0.11.9"
+      , cryptohash-md5 = H.callHackage "cryptohash-md5" "0.11.101.0"
+      , cryptohash-sha1 = H.callHackage "cryptohash-sha1" "0.11.101.0"
+      , cryptohash-sha256 = H.callHackage "cryptohash-sha256" "0.11.102.1"
+      , cryptonite = H.callHackage "cryptonite" "0.30"
+      , cryptonite-conduit = H.callHackage "cryptonite-conduit" "0.2.2"
       , css-text = H.callHackage "css-text" "0.1.3.0"
       , csv =
-          callHorizonAdopted "csv" "d02b89bbad79136b52fd1197f087466cf51573dd"
+          H.callGit
+            "https://gitlab.homotopic.tech/horizon/adopted/csv"
+            "d02b89bbad79136b52fd1197f087466cf51573dd"
+            (None H.Subdir)
       , cubicbezier = H.callHackage "cubicbezier" "0.6.0.6"
+      , cursor = H.callHackage "cursor" "0.3.2.0"
       , cursor-brick = H.callHackage "cursor-brick" "0.1.0.1"
-      , cursor-dirforest = callGitCursorDirforest "cursor-dirforest"
-      , cursor-dirforest-brick = callGitCursorDirforest "cursor-dirforest-brick"
-      , cursor-dirforest-gen = callGitCursorDirforest "cursor-dirforest-gen"
+      , cursor-dirforest =
+          H.callGit
+            "https://github.com/NorfairKing/cursor-dirforest"
+            "6ad5b168e26eb4e647df9f007d812aaf59338d40"
+            (Some "cursor-dirforest/")
+      , cursor-dirforest-brick =
+          H.callGit
+            "https://github.com/NorfairKing/cursor-dirforest"
+            "6ad5b168e26eb4e647df9f007d812aaf59338d40"
+            (Some "cursor-dirforest-brick/")
+      , cursor-dirforest-gen =
+          H.callGit
+            "https://github.com/NorfairKing/cursor-dirforest"
+            "6ad5b168e26eb4e647df9f007d812aaf59338d40"
+            (Some "cursor-dirforest-gen/")
       , cursor-fuzzy-time = H.callHackage "cursor-fuzzy-time" "0.0.0.0"
       , cursor-gen = H.callHackage "cursor-gen" "0.4.0.0"
-      , cursor = H.callHackage "cursor" "0.3.2.0"
-      , cryptonite = H.callHackage "cryptonite" "0.30"
-      , cryptonite-conduit = H.callHackage "cryptonite-conduit" "0.2.2"
-      , cryptohash-md5 = H.callHackage "cryptohash-md5" "0.11.101.0"
-      , cryptohash-sha1 = H.callHackage "cryptohash-sha1" "0.11.101.0"
-      , cryptohash-sha256 = H.callHackage "cryptohash-sha256" "0.11.102.1"
-      , cryptohash = H.callHackage "cryptohash" "0.11.9"
-      , crypto-api-tests = H.callHackage "crypto-api-tests" "0.3"
-      , crypto-api = H.callHackage "crypto-api" "0.13.3"
-      , crypto-pubkey-types = H.callHackage "crypto-pubkey-types" "0.4.3"
       , daemons = H.callHackage "daemons" "0.3.0"
       , data-binary-ieee754 = H.callHackage "data-binary-ieee754" "0.4.4"
       , data-clist = H.callHackage "data-clist" "0.2"
+      , data-default = H.callHackage "data-default" "0.7.1.1"
       , data-default-class = H.callHackage "data-default-class" "0.1.2.0"
       , data-default-instances-containers =
           H.callHackage "data-default-instances-containers" "0.0.1"
@@ -272,7 +257,6 @@ let packages =
           H.callHackage "data-default-instances-dlist" "0.0.1"
       , data-default-instances-old-locale =
           H.callHackage "data-default-instances-old-locale" "0.0.1"
-      , data-default = H.callHackage "data-default" "0.7.1.1"
       , data-fix = H.callHackage "data-fix" "0.3.2"
       , data-ordlist = H.callHackage "data-ordlist" "0.4.7.0"
       , data-sketches = H.callHackage "data-sketches" "0.3.1.0"
@@ -283,13 +267,13 @@ let packages =
       , 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 = H.callHackage "dependent-sum" "0.7.1.0"
       , dependent-sum-template =
           H.callHackage "dependent-sum-template" "0.1.1.1"
-      , dependent-sum = H.callHackage "dependent-sum" "0.7.1.0"
       , deque = H.callHackage "deque" "0.4.4"
+      , deriving-aeson = H.callHackage "deriving-aeson" "0.2.8"
       , deriving-compat = H.callHackage "deriving-compat" "0.6.1"
       , derp = H.callHackage "derp" "0.1.6"
-      , 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"
@@ -306,21 +290,21 @@ let packages =
           H.callGit
             "https://github.com/NorfairKing/dirforest"
             "69e8ae036b047fae105c1fe990e175a7572a3eba"
-            (Some "dirforest")
+            (Some "dirforest/")
       , distribution-nixpkgs = H.callHackage "distribution-nixpkgs" "1.7.0"
       , distributive = H.callHackage "distributive" "0.6.2.1"
       , dlist = H.callHackage "dlist" "1.0"
       , dns = H.callHackage "dns" "4.1.0"
       , doclayout = H.callHackage "doclayout" "0.4"
-      , doctest-discover = H.callHackage "doctest-discover" "0.2.0.0"
-      , doctest-exitcode-stdio = H.callHackage "doctest-exitcode-stdio" "0.0"
-      , doctest-lib = H.callHackage "doctest-lib" "0.1"
+      , doctemplates = H.callHackage "doctemplates" "0.10.0.2"
       , doctest =
           H.callGit
             "https://github.com/sol/doctest"
             "4eb97c213acf7abe965a3a1b67397199ed155f3c"
-            (None Text)
-      , doctemplates = H.callHackage "doctemplates" "0.10.0.2"
+            (None H.Subdir)
+      , doctest-discover = H.callHackage "doctest-discover" "0.2.0.0"
+      , doctest-exitcode-stdio = H.callHackage "doctest-exitcode-stdio" "0.0"
+      , doctest-lib = H.callHackage "doctest-lib" "0.1"
       , doctest-parallel = H.callHackage "doctest-parallel" "0.2.5"
       , dom-lt = H.callHackage "dom-lt" "0.2.3"
       , dotgen = H.callHackage "dotgen" "0.4.3"
@@ -332,18 +316,17 @@ let packages =
           H.callGit
             "https://gitlab.homotopic.tech/horizon/adopted/ed25519"
             "faf8fe90aa1cd2492ea1e64c55f5c59fc0322210"
-            (None Text)
+            (None H.Subdir)
       , edit-distance = H.callHackage "edit-distance" "0.2.2.1"
-      , either = H.callHackage "either" "5.0.2"
-      , email-validate = H.callHackage "email-validate" "2.3.2.16"
+      , effectful = H.callHackage "effectful" "2.1.0.0"
       , effectful-cache =
           H.callGit
             "https://github.com/haskell-effectful/cache-effectful"
             "0a5581da7c21a05a9ab1762a6da6997090fe311d"
-            (None Text)
+            (None H.Subdir)
       , effectful-core = H.callHackage "effectful-core" "2.1.0.0"
       , effectful-th = H.callHackage "effectful-th" "1.0.0.0"
-      , effectful = H.callHackage "effectful" "2.1.0.0"
+      , either = H.callHackage "either" "5.0.2"
       , ekg = H.callHackage "ekg" "0.4.0.15"
       , ekg-core = H.callHackage "ekg-core" "0.1.1.7"
       , ekg-json =
@@ -353,41 +336,42 @@ let packages =
             (None H.Subdir)
       , ekg-statsd = H.callHackage "ekg-statsd" "0.2.5.0"
       , ekg-wai = H.callHackage "ekg-wai" "0.1.1.0"
+      , email-validate = H.callHackage "email-validate" "2.3.2.16"
       , emojis = H.callHackage "emojis" "0.1.2"
       , 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"
+      , envparse = H.callHackage "envparse" "0.5.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"
       , exact-pi = H.callHackage "exact-pi" "0.5.0.2"
+      , expiring-cache-map = H.callHackage "expiring-cache-map" "0.0.6.1"
       , extended-reals = H.callHackage "extended-reals" "0.2.4.0"
       , extensible-effects = H.callHackage "extensible-effects" "5.0.0.1"
       , extensible-exceptions = H.callHackage "extensible-exceptions" "0.1.1.4"
       , 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"
+      , fast-math = H.callHackage "fast-math" "1.0.2"
       , fcf-containers = H.callHackage "fcf-containers" "0.7.1"
       , feedback = H.callHackage "feedback" "0.1.0.1"
-      , file-embed-lzma = H.callHackage "file-embed-lzma" "0.0.1"
       , file-embed = H.callHackage "file-embed" "0.0.15.0"
+      , file-embed-lzma = H.callHackage "file-embed-lzma" "0.0.1"
       , filelock = H.callHackage "filelock" "0.1.1.5"
       , filemanip = H.callHackage "filemanip" "0.3.6.3"
       , filepattern = H.callHackage "filepattern" "0.1.3"
       , filtrable = H.callHackage "filtrable" "0.1.6.0"
+      , fin = H.callHackage "fin" "0.2.1"
+      , fingertree = H.callHackage "fingertree" "0.1.5.0"
       , fingertree-psqueue =
           H.callGit
             "https://gitlab.homotopic.tech/horizon/adopted/fingertree-psqueue"
             "d466b18e18d706dc1373ed2894c1e20ea2826329"
-            (None Text)
-      , fingertree = H.callHackage "fingertree" "0.1.5.0"
+            (None H.Subdir)
       , finite-field = H.callHackage "finite-field" "0.10.0"
       , finite-typelits = H.callHackage "finite-typelits" "0.1.6.0"
       , 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"
@@ -405,9 +389,8 @@ let packages =
       , 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"
+      , fuzzy-time-gen = H.callHackage "fuzzy-time-gen" "0.2.0.1"
       , generic-arbitrary = H.callHackage "generic-arbitrary" "1.0.1"
       , generic-data = H.callHackage "generic-data" "1.0.0.0"
       , generic-deriving = H.callHackage "generic-deriving" "1.14.2"
@@ -415,9 +398,10 @@ let packages =
       , generic-lens-core = H.callHackage "generic-lens-core" "2.2.1.0"
       , generic-lens-lite = H.callHackage "generic-lens-lite" "0.1"
       , generic-monoid = H.callHackage "generic-monoid" "0.1.0.1"
-      , generic-optics-lite = H.callHackage "generic-optics-lite" "0.1"
       , generic-optics = H.callHackage "generic-optics" "2.2.1.0"
+      , generic-optics-lite = H.callHackage "generic-optics-lite" "0.1"
       , generic-random = H.callHackage "generic-random" "1.5.0.1"
+      , generically = H.callHackage "generically" "0.1"
       , generics-sop = H.callHackage "generics-sop" "0.5.1.2"
       , genvalidity = H.callHackage "genvalidity" "1.1.0.0"
       , genvalidity-aeson = H.callHackage "genvalidity-aeson" "1.0.0.1"
@@ -432,7 +416,7 @@ let packages =
           H.callGit
             "https://github.com/NorfairKing/dirforest"
             "69e8ae036b047fae105c1fe990e175a7572a3eba"
-            (Some "genvalidity-dirforest")
+            (Some "genvalidity-dirforest/")
       , genvalidity-hspec = H.callHackage "genvalidity-hspec" "1.0.0.2"
       , genvalidity-hspec-aeson =
           H.callHackage "genvalidity-hspec-aeson" "1.0.0.0"
@@ -489,29 +473,38 @@ let packages =
       , hashing = H.callHackage "hashing" "0.1.0.1"
       , hashmap = H.callHackage "hashmap" "1.3.3"
       , hashtables = H.callHackage "hashtables" "1.3"
+      , haskell-language-server =
+          (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"
+          ]
       , haskell-lexer = H.callHackage "haskell-lexer" "1.1"
       , 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 = H.callHackage "hedgehog" "1.2"
       , hedgehog-extras = H.callHackage "hedgehog-extras" "0.3.0.3"
       , hedgehog-fn = H.callHackage "hedgehog-fn" "1.0"
       , hedgehog-golden =
           H.callGit
             "https://github.com/maybe-hedgehog-later/hedgehog-golden"
             "4ab2906b3f0be5e31ee5a8585e45d43392694246"
-            (None Text)
+            (None H.Subdir)
       , hedgehog-quickcheck = H.callHackage "hedgehog-quickcheck" "0.1.1"
-      , hedgehog = H.callHackage "hedgehog" "1.2"
       , heredoc = H.callHackage "heredoc" "0.2.0.0"
       , 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"
+      , hledger-lib = H.callHackage "hledger-lib" "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"
@@ -554,13 +547,14 @@ let packages =
       , 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"
+      , hpack-dhall = H.callHackage "hpack-dhall" "0.5.7"
       , hscolour = H.callHackage "hscolour" "1.24.4"
       , hslogger = H.callHackage "hslogger" "1.3.1.0"
+      , hslua = H.callHackage "hslua" "2.2.1"
       , 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"
+      , hslua-core = H.callHackage "hslua-core" "2.2.1"
       , hslua-marshalling = H.callHackage "hslua-marshalling" "2.2.1"
       , hslua-module-doclayout = H.callHackage "hslua-module-doclayout" "1.0.4"
       , hslua-module-path = H.callHackage "hslua-module-path" "1.0.3"
@@ -570,29 +564,27 @@ let packages =
       , hslua-objectorientation =
           H.callHackage "hslua-objectorientation" "2.2.1"
       , hslua-packaging = H.callHackage "hslua-packaging" "2.2.1"
-      , hslua = H.callHackage "hslua" "2.2.1"
+      , hspec = H.callHackage "hspec" "2.10.3"
       , 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"
+      , hspec-expectations = H.callHackage "hspec-expectations" "0.8.2"
       , hspec-expectations-lifted =
           H.callHackage "hspec-expectations-lifted" "0.10.0"
-      , hspec-expectations = H.callHackage "hspec-expectations" "0.8.2"
-      , hspec-golden-aeson = H.callHackage "hspec-golden-aeson" "0.9.0.0"
       , hspec-golden = H.callHackage "hspec-golden" "0.2.0.0"
+      , hspec-golden-aeson = H.callHackage "hspec-golden-aeson" "0.9.0.0"
       , hspec-hedgehog = H.callHackage "hspec-hedgehog" "0.0.1.2"
       , hspec-megaparsec = H.callHackage "hspec-megaparsec" "2.2.0"
       , hspec-meta = H.callHackage "hspec-meta" "2.9.3"
       , hspec-smallcheck = H.callHackage "hspec-smallcheck" "0.5.3"
       , hspec-wai = H.callHackage "hspec-wai" "0.11.1"
-      , hspec = H.callHackage "hspec" "2.10.3"
       , hsyslog = H.callHackage "hsyslog" "5.0.2"
-      , html-entities = H.callHackage "html-entities" "1.1.4.6"
       , html = H.callHackage "html" "1.0.1.2"
-      , httpd-shed = H.callHackage "httpd-shed" "0.4.1.1"
+      , html-entities = H.callHackage "html-entities" "1.1.4.6"
       , http-api-data = H.callHackage "http-api-data" "0.5"
-      , http-client-tls = H.callHackage "http-client-tls" "0.3.6.1"
       , http-client = H.callHackage "http-client" "0.7.13.1"
+      , http-client-tls = H.callHackage "http-client-tls" "0.3.6.1"
       , http-common = H.callHackage "http-common" "0.8.3.4"
       , http-conduit = H.callHackage "http-conduit" "2.3.8"
       , http-date = H.callHackage "http-date" "0.0.11"
@@ -600,6 +592,7 @@ let packages =
       , http-streams = H.callHackage "http-streams" "0.8.9.6"
       , http-types = H.callHackage "http-types" "0.12.3"
       , http2 = H.callHackage "http2" "3.0.3"
+      , httpd-shed = H.callHackage "httpd-shed" "0.4.1.1"
       , 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"
@@ -610,13 +603,15 @@ let packages =
       , hxt-regex-xmlschema = H.callHackage "hxt-regex-xmlschema" "9.2.0.7"
       , hxt-unicode = H.callHackage "hxt-unicode" "9.0.2.4"
       , ieee754 = H.callHackage "ieee754" "0.8.0"
+      , implicit-hie = H.callHackage "implicit-hie" "0.1.4.0"
+      , implicit-hie-cradle = H.callHackage "implicit-hie-cradle" "0.5.0.0"
       , incipit-base = H.callHackage "incipit-base" "0.3.0.0"
       , incipit-core = H.callHackage "incipit-core" "0.3.0.0"
       , indexed-list-literals = H.callHackage "indexed-list-literals" "0.2.1.3"
       , indexed-profunctors = H.callHackage "indexed-profunctors" "0.1.1"
+      , indexed-traversable = H.callHackage "indexed-traversable" "0.1.2"
       , indexed-traversable-instances =
           H.callHackage "indexed-traversable-instances" "0.1.1.1"
-      , indexed-traversable = H.callHackage "indexed-traversable" "0.1.2"
       , infer-license = H.callHackage "infer-license" "0.2.0"
       , ini = H.callHackage "ini" "0.4.2"
       , inline-c = H.callHackage "inline-c" "0.9.1.6"
@@ -625,17 +620,15 @@ 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"
+      , integration = H.callHackage "integration" "0.2.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"
+      , io-streams-haproxy = H.callHackage "io-streams-haproxy" "1.0.1.0"
       , iproute = H.callHackage "iproute" "1.7.12"
+      , ipynb = H.callHackage "ipynb" "0.2"
       , iso8601-time = H.callHackage "iso8601-time" "0.1.5"
       , iwlib = H.callHackage "iwlib" "0.1.2"
       , jira-wiki-markup = H.callHackage "jira-wiki-markup" "1.4.0"
@@ -647,26 +640,39 @@ let packages =
       , kan-extensions = H.callHackage "kan-extensions" "5.2.5"
       , katip = H.callHackage "katip" "0.8.7.2"
       , keys = H.callHackage "keys" "3.12.3"
-      , kvstore-effectful = callGitKvStoreEffectful "kvstore-effectful"
+      , kvstore-effectful =
+          H.callGit
+            "https://github.com/haskell-effectful/kvstore-effectful"
+            "3502825423aea3a1af9384e9d751feea4599c60b"
+            (Some "kvstore-effectful/")
       , kvstore-effectful-cache =
-          callGitKvStoreEffectful "kvstore-effectful-cache"
+          H.callGit
+            "https://github.com/haskell-effectful/kvstore-effectful"
+            "3502825423aea3a1af9384e9d751feea4599c60b"
+            (Some "kvstore-effectful-cache/")
       , kvstore-effectful-spec =
-          callGitKvStoreEffectful "kvstore-effectful-spec"
+          H.callGit
+            "https://github.com/haskell-effectful/kvstore-effectful"
+            "3502825423aea3a1af9384e9d751feea4599c60b"
+            (Some "kvstore-effectful-spec/")
       , kvstore-effectful-statemap =
-          callGitKvStoreEffectful "kvstore-effectful-statemap"
+          H.callGit
+            "https://github.com/haskell-effectful/kvstore-effectful"
+            "3502825423aea3a1af9384e9d751feea4599c60b"
+            (Some "kvstore-effectful-statemap/")
       , language-c = H.callHackage "language-c" "0.9.1"
       , language-haskell-extract =
           H.callGit
             "https://github.com/chessai/template-helper"
             "f654f1e7ef47c591bb5ea23f1234289f99d09d05"
-            (None Text)
+            (None H.Subdir)
       , language-nix = H.callHackage "language-nix" "2.2.0"
       , lazy-search = H.callHackage "lazy-search" "0.1.3.0"
       , lazysmallcheck = H.callHackage "lazysmallcheck" "0.6"
+      , lens = H.callHackage "lens" "5.2"
       , lens-aeson = H.callHackage "lens-aeson" "1.2.1"
       , lens-family-core = H.callHackage "lens-family-core" "2.1.2"
       , lens-family-th = H.callHackage "lens-family-th" "0.5.2.1"
-      , lens = H.callHackage "lens" "5.2"
       , libsodium = H.callHackage "libsodium" "1.0.18.2"
       , libsystemd-journal = H.callHackage "libsystemd-journal" "1.4.5"
       , libxml = H.callHackage "libxml" "0.1.1"
@@ -674,54 +680,54 @@ let packages =
       , lift-type = H.callHackage "lift-type" "0.1.0.1"
       , lifted-async = H.callHackage "lifted-async" "0.10.2.1"
       , lifted-base = H.callHackage "lifted-base" "0.2.3.12"
-      , linear-generics = H.callHackage "linear-generics" "0.2"
-      , linear-base = H.callHackage "linear-base" "0.3.0"
       , linear = H.callHackage "linear" "1.21.10"
-      , list-transformer = H.callHackage "list-transformer" "1.0.9"
+      , linear-base = H.callHackage "linear-base" "0.3.0"
+      , linear-generics = H.callHackage "linear-generics" "0.2"
       , list-t = H.callHackage "list-t" "1.0.5.3"
+      , list-transformer = H.callHackage "list-transformer" "1.0.9"
       , lockfree-queue = H.callHackage "lockfree-queue" "0.2.4"
-      , logging-facade = H.callHackage "logging-facade" "0.3.1"
-      , logict = H.callHackage "logict" "0.8.0.0"
       , log-base = H.callHackage "log-base" "0.12.0.0"
       , log-effectful =
           H.callGit
             "https://github.com/haskell-effectful/log-effectful/"
             "910c79e10d5ac3353f2a1551103a2b63229c3f57"
-            (None Text)
+            (None H.Subdir)
+      , logging-facade = H.callHackage "logging-facade" "0.3.1"
+      , logict = H.callHackage "logict" "0.8.0.0"
       , loop = H.callHackage "loop" "0.3.0"
       , 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"
+      , lsp-test = H.callHackage "lsp-test" "0.14.1.0"
+      , lsp-types = H.callHackage "lsp-types" "1.6.0.0"
       , lua = H.callHackage "lua" "2.2.1"
+      , lua-arbitrary = H.callHackage "lua-arbitrary" "1.0.1"
+      , lucid = H.callHackage "lucid" "2.11.1"
       , lucid-alpine = H.callHackage "lucid-alpine" "0.1.0.7"
       , lucid-aria = H.callHackage "lucid-aria" "0.1.0.1"
       , lucid-svg = H.callHackage "lucid-svg" "0.7.1"
-      , lucid = H.callHackage "lucid" "2.11.1"
       , lukko = H.callHackage "lukko" "0.1.1.3"
       , lzma = H.callHackage "lzma" "0.0.0.4"
       , managed = H.callHackage "managed" "1.0.9"
-      , markdown-unlit = H.callHackage "markdown-unlit" "0.5.1"
       , markdown = H.callHackage "markdown" "0.1.17.5"
+      , markdown-unlit = H.callHackage "markdown-unlit" "0.5.1"
       , 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"
+      , mersenne-random-pure64 =
+          H.callHackage "mersenne-random-pure64" "0.2.2.0"
       , mfsolve = H.callHackage "mfsolve" "0.3.2.1"
+      , microlens = H.callHackage "microlens" "0.4.13.0"
       , 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"
       , microlens-platform = H.callHackage "microlens-platform" "0.4.3.2"
       , microlens-th = H.callHackage "microlens-th" "0.4.3.10"
-      , microlens = H.callHackage "microlens" "0.4.13.0"
       , microspec = H.callHackage "microspec" "0.2.1.3"
       , microstache = H.callHackage "microstache" "1.0.2.2"
       , mime-mail = H.callHackage "mime-mail" "0.5.1"
@@ -730,20 +736,20 @@ let packages =
       , mmorph = H.callHackage "mmorph" "1.2.0"
       , mockery = H.callHackage "mockery" "0.3.5"
       , mod = H.callHackage "mod" "0.1.2.2"
-      , monads-tf = H.callHackage "monads-tf" "0.1.0.3"
       , monad-control = H.callHackage "monad-control" "1.0.3.1"
       , monad-logger = H.callHackage "monad-logger" "0.3.37"
       , monad-loops = H.callHackage "monad-loops" "0.4.3"
-      , monad-time = H.callHackage "monad-time" "0.4.0.0"
-      , monad-parallel = H.callHackage "monad-parallel" "0.8"
-      , monad-par-extras = H.callHackage "monad-par-extras" "0.3.3"
       , monad-par = H.callHackage "monad-par" "0.3.5"
+      , monad-par-extras = H.callHackage "monad-par-extras" "0.3.3"
+      , monad-parallel = H.callHackage "monad-parallel" "0.8"
       , monad-peel = H.callHackage "monad-peel" "0.2.1.2"
       , monad-primitive = H.callHackage "monad-primitive" "0.1"
+      , monad-time = H.callHackage "monad-time" "0.4.0.0"
+      , monads-tf = H.callHackage "monads-tf" "0.1.0.3"
       , 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"
+      , monoidal-containers = H.callHackage "monoidal-containers" "0.6.3.0"
       , 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"
@@ -755,15 +761,15 @@ let packages =
       , natural-transformation = H.callHackage "natural-transformation" "0.4"
       , neat-interpolation = H.callHackage "neat-interpolation" "0.5.1.3"
       , net-mqtt = H.callHackage "net-mqtt" "0.8.2.2"
+      , network = H.callHackage "network" "3.1.2.7"
       , network-bsd = H.callHackage "network-bsd" "2.8.1.0"
       , network-byte-order = H.callHackage "network-byte-order" "0.1.6"
       , network-conduit-tls = H.callHackage "network-conduit-tls" "1.3.2"
       , network-info = H.callHackage "network-info" "0.2.1"
       , network-run = H.callHackage "network-run" "0.2.4"
       , network-uri = H.callHackage "network-uri" "2.6.4.1"
-      , network = H.callHackage "network" "3.1.2.7"
-      , newtype-generics = H.callHackage "newtype-generics" "0.6.2"
       , newtype = H.callHackage "newtype" "0.2.2.0"
+      , newtype-generics = H.callHackage "newtype-generics" "0.6.2"
       , 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"
@@ -772,66 +778,67 @@ let packages =
           H.callGit
             "https://github.com/saurabhnanda/odd-jobs"
             "f6c7bbbcdb383d2eb487ad7fe427ec05a747c14f"
-            (None Text)
+            (None H.Subdir)
       , old-locale = H.callHackage "old-locale" "1.0.0.7"
       , old-time = H.callHackage "old-time" "1.1.0.3"
       , 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"
+      , operational = H.callHackage "operational" "0.2.4.2"
+      , optics = H.callHackage "optics" "0.4.2"
       , 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"
-      , optics = H.callHackage "optics" "0.4.2"
       , optional-args = H.callHackage "optional-args" "1.0.2"
       , 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 = H.callHackage "pandoc" "2.19.2"
       , pandoc-lua-marshal = H.callHackage "pandoc-lua-marshal" "0.1.7"
       , pandoc-types = H.callHackage "pandoc-types" "1.22.2.1"
-      , pandoc = H.callHackage "pandoc" "2.19.2"
       , parallel = H.callHackage "parallel" "3.2.2.0"
-      , partial-order = H.callHackage "partial-order" "0.2.0.0"
-      , parsec1 = H.callHackage "parsec1" "1.0.0.8"
+      , parsec = H.callHackage "parsec" "3.1.15.1"
       , parsec-class = H.callHackage "parsec-class" "1.0.0.0"
       , parsec-numbers = H.callHackage "parsec-numbers" "0.1.0"
-      , parsec = H.callHackage "parsec" "3.1.15.1"
-      , parsers-megaparsec = H.callHackage "parsers-megaparsec" "0.1.0.1"
-      , parsers = H.callHackage "parsers" "0.12.11"
+      , parsec1 = H.callHackage "parsec1" "1.0.0.8"
       , parser-combinators = H.callHackage "parser-combinators" "1.3.0"
-      , password-types = H.callHackage "password-types" "1.0.0.0"
+      , parsers = H.callHackage "parsers" "0.12.11"
+      , parsers-megaparsec = H.callHackage "parsers-megaparsec" "0.1.0.1"
+      , partial-order = H.callHackage "partial-order" "0.2.0.0"
       , password = H.callHackage "password" "3.0.2.0"
+      , password-types = H.callHackage "password-types" "1.0.0.0"
+      , path = H.callHackage "path" "0.9.2"
       , path-dhall-instance = H.callHackage "path-dhall-instance" "0.2.1.0"
-      , path-pieces = H.callHackage "path-pieces" "0.2.1"
       , path-io = H.callHackage "path-io" "1.7.0"
-      , path = H.callHackage "path" "0.9.2"
+      , path-pieces = H.callHackage "path-pieces" "0.2.1"
       , patience = H.callHackage "patience" "0.3"
       , pcg-random = H.callHackage "pcg-random" "0.1.3.7"
       , pcre-heavy = H.callHackage "pcre-heavy" "1.0.0.3"
       , pcre-light = H.callHackage "pcre-light" "0.4.1.0"
       , pcre2 = H.callHackage "pcre2" "2.2.1"
       , pem = H.callHackage "pem" "0.2.4"
+      , persistent = H.callHackage "persistent" "2.14.3.0"
       , persistent-postgresql = H.callHackage "persistent-postgresql" "2.13.5.0"
       , persistent-qq = H.callHackage "persistent-qq" "2.12.0.5"
       , persistent-sqlite = H.callHackage "persistent-sqlite" "2.13.1.0"
       , persistent-template = H.callHackage "persistent-template" "2.12.0.0"
       , persistent-test = H.callHackage "persistent-test" "2.13.1.3"
-      , persistent = H.callHackage "persistent" "2.14.3.0"
-      , pipes-safe = H.callHackage "pipes-safe" "2.3.4"
-      , pipes = H.callHackage "pipes" "4.3.16"
       , pg-entity = H.callHackage "pg-entity" "0.0.2.0"
       , pg-transact = H.callHackage "pg-transact" "0.3.2.0"
       , pg-transact-effectful =
           H.callGit
             "https://github.com/Kleidukos/pg-transact-effectful"
             "45730b124c7c21f1dcfd85667fda1c19b8ec9723"
-            (None Text)
+            (None H.Subdir)
       , pgp-wordlist = H.callHackage "pgp-wordlist" "0.1.0.3"
+      , pipes = H.callHackage "pipes" "4.3.16"
+      , pipes-safe = H.callHackage "pipes-safe" "2.3.4"
       , pointed = H.callHackage "pointed" "5.0.4"
       , polyparse = H.callHackage "polyparse" "1.13"
+      , polysemy = H.callHackage "polysemy" "1.7.1.0"
       , polysemy-extra = H.callHackage "polysemy-extra" "0.2.1.0"
       , polysemy-kvstore = H.callHackage "polysemy-kvstore" "0.1.3.0"
       , polysemy-methodology = H.callHackage "polysemy-methodology" "0.2.1.0"
@@ -840,51 +847,50 @@ let packages =
           H.callGit
             "https://github.com/locallycompact/polysemy"
             "bd944ca000c1ca69602d4723e3859af431b9d0c4"
-            (Some "polysemy-plugin")
+            (Some "polysemy-plugin/")
       , polysemy-several = H.callHackage "polysemy-several" "0.1.1.0"
       , polysemy-test = H.callHackage "polysemy-test" "0.6.0.0"
       , polysemy-time = H.callHackage "polysemy-time" "0.5.1.0"
       , polysemy-vinyl = H.callHackage "polysemy-vinyl" "0.1.5.0"
       , polysemy-zoo = H.callHackage "polysemy-zoo" "0.8.0.0"
-      , polysemy = H.callHackage "polysemy" "1.7.1.0"
       , port-utils = H.callHackage "port-utils" "0.2.1.0"
+      , postgres-options = H.callHackage "postgres-options" "0.2.0.0"
       , postgresql-libpq = H.callHackage "postgresql-libpq" "0.9.4.3"
       , postgresql-migration = H.callHackage "postgresql-migration" "0.2.1.4"
       , postgresql-simple = H.callHackage "postgresql-simple" "0.6.4"
       , postgresql-simple-migration =
           H.callHackage "postgresql-simple-migration" "0.1.15.0"
-      , postgres-options = H.callHackage "postgres-options" "0.2.0.0"
+      , pqueue = H.callHackage "pqueue" "1.4.3.0"
       , pretty-hex = H.callHackage "pretty-hex" "1.1"
       , pretty-relative-time = H.callHackage "pretty-relative-time" "0.3.0.0"
       , pretty-show = H.callHackage "pretty-show" "1.10"
       , pretty-simple = H.callHackage "pretty-simple" "4.1.1.0"
+      , prettyprinter = H.callHackage "prettyprinter" "1.7.1"
       , prettyprinter-ansi-terminal =
           H.callHackage "prettyprinter-ansi-terminal" "1.1.3"
-      , prettyprinter = H.callHackage "prettyprinter" "1.7.1"
       , 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"
+      , process-extras = H.callHackage "process-extras" "0.7.4"
       , procex = H.callHackage "procex" "0.3.3"
       , profunctors = H.callHackage "profunctors" "5.6.2"
       , prometheus-client = H.callHackage "prometheus-client" "1.1.0"
       , prometheus-metrics-ghc =
           H.callHackage "prometheus-metrics-ghc" "1.0.1.2"
       , prometheus-proc = H.callHackage "prometheus-proc" "0.1.4.0"
-      , process-extras = H.callHackage "process-extras" "0.7.4"
       , proteaaudio-sdl = H.callHackage "proteaaudio-sdl" "0.9.2"
       , protolude = H.callHackage "protolude" "0.3.2"
-      , pqueue = H.callHackage "pqueue" "1.4.3.0"
       , psqueues = H.callHackage "psqueues" "0.2.7.3"
       , pureMD5 = H.callHackage "pureMD5" "2.1.4"
       , quickcheck-arbitrary-adt =
           H.callHackage "quickcheck-arbitrary-adt" "0.3.1.0"
       , quickcheck-assertions = H.callHackage "quickcheck-assertions" "0.3.0"
+      , quickcheck-classes = H.callHackage "quickcheck-classes" "0.6.5.0"
       , quickcheck-classes-base =
           H.callHackage "quickcheck-classes-base" "0.6.2.0"
-      , quickcheck-classes = H.callHackage "quickcheck-classes" "0.6.5.0"
       , quickcheck-dynamic = H.callHackage "quickcheck-dynamic" "2.0.0"
       , quickcheck-instances = H.callHackage "quickcheck-instances" "0.3.28"
       , quickcheck-io = H.callHackage "quickcheck-io" "0.2.0"
@@ -892,10 +898,10 @@ let packages =
       , quickcheck-unicode = H.callHackage "quickcheck-unicode" "1.0.1.0"
       , quiet = H.callHackage "quiet" "0.2"
       , ral = H.callHackage "ral" "0.1"
+      , random = H.callHackage "random" "1.2.1.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"
       , raw-strings-qq = H.callHackage "raw-strings-qq" "1.1"
       , rdtsc = H.callHackage "rdtsc" "1.3.0.1"
@@ -903,42 +909,41 @@ let packages =
       , rebase = H.callHackage "rebase" "1.16"
       , recursion-schemes = H.callHackage "recursion-schemes" "5.2.2.2"
       , reducers = H.callHackage "reducers" "3.12.4"
-      , refact = H.callHackage "refact" "0.3.0.2"
       , ref-tf = H.callHackage "ref-tf" "0.5.0.1"
+      , refact = H.callHackage "refact" "0.3.0.2"
+      , refined = H.callHackage "refined" "0.8"
+      , reflection = H.callHackage "reflection" "2.1.6"
       , regex-applicative = H.callHackage "regex-applicative" "0.3.4"
       , regex-base = H.callHackage "regex-base" "0.94.0.2"
       , regex-compat = H.callHackage "regex-compat" "0.95.2.1"
       , regex-pcre-builtin = H.callHackage "regex-pcre-builtin" "0.95.2.3.8.44"
       , regex-posix = H.callHackage "regex-posix" "0.96.0.1"
       , regex-tdfa = H.callHackage "regex-tdfa" "1.3.2"
-      , refined = H.callHackage "refined" "0.8"
-      , reflection = H.callHackage "reflection" "2.1.6"
       , relude = H.callHackage "relude" "1.1.0.0"
       , replace-megaparsec = H.callHackage "replace-megaparsec" "1.4.5.0"
       , repline = H.callHackage "repline" "0.4.2.0"
-      , rerebase = H.callHackage "rerebase" "1.15.0.3"
       , rere = H.callHackage "rere" "0.2"
+      , rerebase = H.callHackage "rerebase" "1.15.0.3"
       , resolv = H.callHackage "resolv" "0.1.2.0"
       , 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"
+      , retry = H.callHackage "retry" "0.9.3.0"
       , 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 = H.callHackage "safe" "0.3.19"
+      , safe-coloured-text = H.callHackage "safe-coloured-text" "0.2.0.1"
       , safe-coloured-text-layout =
           H.callHackage "safe-coloured-text-layout" "0.0.0.0"
       , safe-coloured-text-terminfo =
           H.callHackage "safe-coloured-text-terminfo" "0.1.0.0"
-      , safe-coloured-text = H.callHackage "safe-coloured-text" "0.2.0.1"
       , safe-exceptions = H.callHackage "safe-exceptions" "0.1.7.3"
-      , safe = H.callHackage "safe" "0.3.19"
       , saltine = H.callHackage "saltine" "0.2.0.1"
       , sandwich = H.callHackage "sandwich" "0.1.1.2"
       , say = H.callHackage "say" "0.1.0.1"
-      , scotty = H.callHackage "scotty" "0.12"
       , scientific = H.callHackage "scientific" "0.3.7.0"
+      , scotty = H.callHackage "scotty" "0.12"
       , sdl2 = H.callHackage "sdl2" "2.5.3.3"
       , sdl2-gfx = H.callHackage "sdl2-gfx" "0.3.0.0"
       , sdl2-image = H.callHackage "sdl2-image" "2.1.0.0"
@@ -946,42 +951,62 @@ let packages =
       , sdl2-ttf = H.callHackage "sdl2-ttf" "2.1.3"
       , selective = H.callHackage "selective" "0.5"
       , semialign = H.callHackage "semialign" "1.2.0.1"
-      , semigroups = H.callHackage "semigroups" "0.20"
       , semigroupoids = H.callHackage "semigroupoids" "5.3.7"
+      , semigroups = H.callHackage "semigroups" "0.20"
       , semirings = H.callHackage "semirings" "0.6"
       , semver = H.callHackage "semver" "0.4.0.1"
       , serialise = H.callHackage "serialise" "0.2.6.0"
-      , servant = callGitServant "servant"
+      , servant =
+          H.callGit
+            "https://github.com/TeofilC/servant"
+            "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc"
+            (Some "servant/")
       , servant-auth = H.callHackage "servant-auth" "0.4.1.0"
       , servant-auth-client = H.callHackage "servant-auth-client" "0.4.1.0"
       , servant-auth-server = H.callHackage "servant-auth-server" "0.4.7.0"
       , servant-blaze = H.callHackage "servant-blaze" "0.9.1"
-      , servant-client-core = callGitServant "servant-client-core"
-      , servant-client = callGitServant "servant-client"
+      , servant-client =
+          H.callGit
+            "https://github.com/TeofilC/servant"
+            "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc"
+            (Some "servant-client/")
+      , servant-client-core =
+          H.callGit
+            "https://github.com/TeofilC/servant"
+            "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc"
+            (Some "servant-client-core/")
       , servant-docs = H.callHackage "servant-docs" "0.12"
       , servant-effectful =
           H.callGit
             "https://github.com/kleidukos/servant-effectful"
             "65e3041c6cfbc315b20ad22ca18f61dda104eec8"
-            (None Text)
-      , servant-foreign = callGitServant "servant-foreign"
+            (None H.Subdir)
+      , servant-foreign =
+          H.callGit
+            "https://github.com/TeofilC/servant"
+            "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc"
+            (Some "servant-foreign/")
       , servant-lucid = H.callHackage "servant-lucid" "0.9.0.5"
       , servant-multipart = H.callHackage "servant-multipart" "0.12.1"
       , servant-multipart-api = H.callHackage "servant-multipart-api" "0.12.1"
       , servant-openapi3 = H.callHackage "servant-openapi3" "2.0.1.5"
       , servant-polysemy = H.callHackage "servant-polysemy" "0.1.3"
-      , servant-server = callGitServant "servant-server"
+      , servant-server =
+          H.callGit
+            "https://github.com/TeofilC/servant"
+            "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc"
+            (Some "servant-server/")
+      , servant-static-th = H.callHackage "servant-static-th" "1.0.0.0"
       , servant-swagger = H.callHackage "servant-swagger" "1.1.11"
       , servant-swagger-ui = H.callHackage "servant-swagger-ui" "0.3.5.4.5.0"
       , servant-swagger-ui-core =
           H.callHackage "servant-swagger-ui-core" "0.3.5"
-      , servant-static-th = H.callHackage "servant-static-th" "1.0.0.0"
       , servant-websockets = H.callHackage "servant-websockets" "2.0.0"
       , setenv = H.callHackage "setenv" "0.1.1.3"
       , 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"
+      , shakespeare = H.callHackage "shakespeare" "2.0.30"
       , 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"
@@ -990,10 +1015,9 @@ let packages =
       , simple-reflect = H.callHackage "simple-reflect" "0.3.3"
       , simple-sendfile = H.callHackage "simple-sendfile" "0.2.30"
       , singleton-bool = H.callHackage "singleton-bool" "0.1.6"
-      , singletons-th = H.callHackage "singletons-th" "3.1.1"
       , singletons = H.callHackage "singletons" "3.0.2"
+      , singletons-th = H.callHackage "singletons-th" "3.1.1"
       , size-based = H.callHackage "size-based" "0.1.3.1"
-      , slugify = H.callHackage "slugify" "0.1.0.1"
       , skylighting = H.callHackage "skylighting" "0.13.1.1"
       , skylighting-core = H.callHackage "skylighting-core" "0.13.1.1"
       , skylighting-format-ansi = H.callHackage "skylighting-format-ansi" "0.1"
@@ -1001,6 +1025,7 @@ let packages =
           H.callHackage "skylighting-format-blaze-html" "0.1"
       , skylighting-format-latex =
           H.callHackage "skylighting-format-latex" "0.1"
+      , slugify = H.callHackage "slugify" "0.1.0.1"
       , smallcheck = H.callHackage "smallcheck" "1.2.1"
       , snap-core = H.callHackage "snap-core" "1.0.5.0"
       , snap-server = H.callHackage "snap-server" "1.1.2.0"
@@ -1010,30 +1035,30 @@ let packages =
       , sorted-list = H.callHackage "sorted-list" "0.2.1.0"
       , souffle-haskell = H.callHackage "souffle-haskell" "3.5.0"
       , special-values = H.callHackage "special-values" "0.1.0.0"
-      , splitmix = H.callHackage "splitmix" "0.1.0.4"
       , split = H.callHackage "split" "0.2.3.3"
+      , splitmix = H.callHackage "splitmix" "0.1.0.4"
       , 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"
+      , statistics-linreg = H.callHackage "statistics-linreg" "0.3"
       , 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"
+      , stm-hamt = H.callHackage "stm-hamt" "1.2.0.8"
+      , storable-record = H.callHackage "storable-record" "0.0.6"
       , storable-tuple = H.callHackage "storable-tuple" "0.0.3.3"
-      , store-core = H.callHackage "store-core" "0.4.4.4"
       , store = H.callHackage "store" "0.7.16"
-      , storable-record = H.callHackage "storable-record" "0.0.6"
+      , store-core = H.callHackage "store-core" "0.4.4.4"
+      , streaming = H.callHackage "streaming" "0.2.3.1"
       , streaming-binary = H.callHackage "streaming-binary" "0.3.0.1"
       , streaming-bytestring = H.callHackage "streaming-bytestring" "0.2.4"
+      , streaming-commons = H.callHackage "streaming-commons" "0.2.2.4"
+      , streamly = H.callHackage "streamly" "0.8.3"
       , strict = H.callHackage "strict" "0.4.0.1"
-      , string-conversions = H.callHackage "string-conversions" "0.4.0.1"
+      , strict-list = H.callHackage "strict-list" "0.1.7"
       , string-conv = H.callHackage "string-conv" "0.2.0"
+      , string-conversions = H.callHackage "string-conversions" "0.4.0.1"
       , string-interpolate = H.callHackage "string-interpolate" "0.3.1.2"
-      , strict-list = H.callHackage "strict-list" "0.1.7"
       , string-qq = H.callHackage "string-qq" "0.0.4"
       , stringbuilder = H.callHackage "stringbuilder" "0.5.1"
       , stringsearch = H.callHackage "stringsearch" "0.3.6.6"
@@ -1052,7 +1077,7 @@ let packages =
           H.callGit
             "https://github.com/locallycompact/tar"
             "107c0b78524acfd0e77e767b83073492008bea0c"
-            (None Text)
+            (None H.Subdir)
       , tasty = H.callHackage "tasty" "1.4.3"
       , tasty-bench = H.callHackage "tasty-bench" "0.3.2"
       , tasty-discover = H.callHackage "tasty-discover" "5.0.0"
@@ -1065,27 +1090,27 @@ let packages =
           H.callGit
             "https://github.com/UnkindPartition/tasty"
             "226c35f468be389536fbb9471904a113d1586da6"
-            (Some "hunit")
+            (Some "hunit/")
       , tasty-inspection-testing =
           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-quickcheck = H.callHackage "tasty-quickcheck" "0.10.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"
-      , tasty-quickcheck = H.callHackage "tasty-quickcheck" "0.10.2"
       , tasty-wai = H.callHackage "tasty-wai" "0.1.2.0"
       , tdigest = H.callHackage "tdigest" "0.2.1.1"
       , temporary = H.callHackage "temporary" "1.3"
       , terminal-size = H.callHackage "terminal-size" "0.3.3"
       , test-framework = H.callHackage "test-framework" "0.8.2.0"
       , test-framework-hunit = H.callHackage "test-framework-hunit" "0.3.0.2"
-      , test-framework-th = H.callHackage "test-framework-th" "0.2.4"
       , test-framework-quickcheck2 =
           H.callHackage "test-framework-quickcheck2" "0.3.0.5"
       , test-framework-smallcheck =
           H.callHackage "test-framework-smallcheck" "0.2"
+      , test-framework-th = H.callHackage "test-framework-th" "0.2.4"
       , testing-feat = H.callHackage "testing-feat" "1.1.1.1"
       , testing-type-modifiers =
           H.callHackage "testing-type-modifiers" "0.1.0.1"
@@ -1099,14 +1124,14 @@ let packages =
       , text-short = H.callHackage "text-short" "0.1.5"
       , text-zipper = H.callHackage "text-zipper" "0.12"
       , tf-random = H.callHackage "tf-random" "0.5"
-      , th-desugar = H.callHackage "th-desugar" "1.14"
       , th-abstraction = H.callHackage "th-abstraction" "0.4.5.0"
       , th-compat = H.callHackage "th-compat" "0.1.4"
+      , th-desugar = H.callHackage "th-desugar" "1.14"
       , th-env = H.callHackage "th-env" "0.1.1"
       , th-expand-syns = H.callHackage "th-expand-syns" "0.4.10.0"
       , th-extras = H.callHackage "th-extras" "0.0.0.6"
-      , th-lift-instances = H.callHackage "th-lift-instances" "0.1.20"
       , th-lift = H.callHackage "th-lift" "0.8.2"
+      , th-lift-instances = H.callHackage "th-lift-instances" "0.1.20"
       , th-orphans = H.callHackage "th-orphans" "0.13.14"
       , th-reify-many = H.callHackage "th-reify-many" "0.1.10"
       , th-utilities = H.callHackage "th-utilities" "0.2.5.0"
@@ -1119,14 +1144,14 @@ let packages =
           H.callGit
             "https://github.com/haskell-effectful/time-effectful"
             "e212239b685e1ecf7ee95dd1e944cc563351907f"
-            (None Text)
+            (None H.Subdir)
       , time-locale-compat = H.callHackage "time-locale-compat" "0.1.1.5"
       , time-manager = H.callHackage "time-manager" "0.0.0"
       , time-units = H.callHackage "time-units" "1.0.0"
       , timeit = H.callHackage "timeit" "2.0"
       , timing-convenience = H.callHackage "timing-convenience" "0.1"
-      , tls-session-manager = H.callHackage "tls-session-manager" "0.0.4"
       , tls = H.callHackage "tls" "1.6.0"
+      , tls-session-manager = H.callHackage "tls-session-manager" "0.0.4"
       , tmp-postgres = H.callHackage "tmp-postgres" "1.34.1.0"
       , torsor = H.callHackage "torsor" "0.1"
       , transformers-base = H.callHackage "transformers-base" "0.4.6"
@@ -1136,10 +1161,10 @@ let packages =
       , trifecta = H.callHackage "trifecta" "2.1.2"
       , tuple = H.callHackage "tuple" "0.3.0.2"
       , turtle = H.callHackage "turtle" "1.6.1"
-      , typed-process = H.callHackage "typed-process" "0.2.10.1"
-      , type-errors-pretty = H.callHackage "type-errors-pretty" "0.0.1.2"
-      , type-errors = H.callHackage "type-errors" "0.2.0.0"
       , type-equality = H.callHackage "type-equality" "1"
+      , type-errors = H.callHackage "type-errors" "0.2.0.0"
+      , type-errors-pretty = H.callHackage "type-errors-pretty" "0.0.1.2"
+      , typed-process = H.callHackage "typed-process" "0.2.10.1"
       , typerep-map = H.callHackage "typerep-map" "0.6.0.0"
       , uglymemo = H.callHackage "uglymemo" "0.1.0.1"
       , unagi-chan = H.callHackage "unagi-chan" "0.4.1.4"
@@ -1155,15 +1180,15 @@ let packages =
       , unix-compat = H.callHackage "unix-compat" "0.6"
       , unix-memory = H.callHackage "unix-memory" "0.1.2"
       , unix-time = H.callHackage "unix-time" "0.4.8"
-      , unliftio-core = H.callHackage "unliftio-core" "0.2.0.1"
       , unliftio = H.callHackage "unliftio" "0.2.23.0"
+      , unliftio-core = H.callHackage "unliftio-core" "0.2.0.1"
       , unordered-containers = H.callHackage "unordered-containers" "0.2.19.1"
       , uri-bytestring = H.callHackage "uri-bytestring" "0.3.3.1"
       , uri-encode = H.callHackage "uri-encode" "1.5.0.7"
       , utf8-string = H.callHackage "utf8-string" "1.0.2"
       , utility-ht = H.callHackage "utility-ht" "0.0.16"
-      , uuid-types = H.callHackage "uuid-types" "1.0.5"
       , uuid = H.callHackage "uuid" "1.3.15"
+      , uuid-types = H.callHackage "uuid-types" "1.0.5"
       , validation-selective = H.callHackage "validation-selective" "0.1.0.2"
       , validity = H.callHackage "validity" "0.12.0.1"
       , validity-aeson = H.callHackage "validity-aeson" "0.2.0.5"
@@ -1182,6 +1207,7 @@ let packages =
       , validity-uuid = H.callHackage "validity-uuid" "0.1.0.3"
       , validity-vector = H.callHackage "validity-vector" "0.2.0.3"
       , vault = H.callHackage "vault" "0.3.1.5"
+      , vec = H.callHackage "vec" "0.4.1"
       , vector = H.callHackage "vector" "0.13.0.0"
       , vector-algorithms = H.callHackage "vector-algorithms" "0.9.0.1"
       , vector-binary-instances =
@@ -1191,59 +1217,58 @@ let packages =
       , 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"
       , vinyl = H.callHackage "vinyl" "0.14.3"
       , void = H.callHackage "void" "0.7.3"
       , vty = H.callHackage "vty" "5.37"
+      , wai = H.callHackage "wai" "3.2.3"
       , wai-app-static = H.callHackage "wai-app-static" "3.1.7.4"
       , wai-conduit = H.callHackage "wai-conduit" "3.0.0.4"
       , wai-extra = H.callHackage "wai-extra" "3.1.13.0"
+      , wai-log = H.callHackage "wai-log" "0.4.0.1"
+      , wai-logger = H.callHackage "wai-logger" "2.4.0"
       , wai-middleware-heartbeat =
           H.callGit
             "https://github.com/flora-pm/wai-middleware-heartbeat"
             "bd7dbbe83d25c00fcd2cf5c77736af904910c596"
-            (None Text)
-      , wai-log = H.callHackage "wai-log" "0.4.0.1"
-      , wai-logger = H.callHackage "wai-logger" "2.4.0"
+            (None H.Subdir)
       , wai-middleware-prometheus =
           H.callHackage "wai-middleware-prometheus" "1.0.0.1"
       , wai-middleware-static = H.callHackage "wai-middleware-static" "0.9.2"
       , wai-websockets = H.callHackage "wai-websockets" "3.0.1.2"
-      , wai = H.callHackage "wai" "3.2.3"
       , warp = H.callHackage "warp" "3.3.22"
       , warp-tls = H.callHackage "warp-tls" "3.3.3"
       , websockets = H.callHackage "websockets" "0.12.7.3"
       , weigh = H.callHackage "weigh" "0.0.16"
-      , witherable = H.callHackage "witherable" "0.4.2"
+      , wide-word = H.callHackage "wide-word" "0.1.3.0"
       , with-utf8 = H.callHackage "with-utf8" "1.0.2.3"
+      , witherable = H.callHackage "witherable" "0.4.2"
       , wizards = H.callHackage "wizards" "1.0.3"
       , wl-pprint-annotated = H.callHackage "wl-pprint-annotated" "0.1.0.1"
-      , wide-word = H.callHackage "wide-word" "0.1.3.0"
       , word-compat = H.callHackage "word-compat" "0.0.6"
       , word-wrap = H.callHackage "word-wrap" "0.5"
       , word8 = H.callHackage "word8" "0.1.3"
       , wreq = H.callHackage "wreq" "0.5.3.3"
       , wuss = H.callHackage "wuss" "2.0.0.2"
+      , x509 = H.callHackage "x509" "1.7.7"
       , x509-store = H.callHackage "x509-store" "1.6.9"
       , x509-system = H.callHackage "x509-system" "1.6.7"
       , x509-validation = H.callHackage "x509-validation" "1.6.12"
-      , x509 = H.callHackage "x509" "1.7.7"
-      , xml-conduit-writer = H.callHackage "xml-conduit-writer" "0.1.1.2"
+      , xml = H.callHackage "xml" "1.3.14"
       , xml-conduit = H.callHackage "xml-conduit" "1.9.1.1"
+      , xml-conduit-writer = H.callHackage "xml-conduit-writer" "0.1.1.2"
       , xml-types = H.callHackage "xml-types" "0.3.8"
       , xmlgen = H.callHackage "xmlgen" "0.6.2.2"
-      , xml = H.callHackage "xml" "1.3.14"
-      , xmonad-contrib = H.callHackage "xmonad-contrib" "0.17.1"
       , xmonad = H.callHackage "xmonad" "0.17.1"
+      , xmonad-contrib = H.callHackage "xmonad-contrib" "0.17.1"
       , xss-sanitize = H.callHackage "xss-sanitize" "0.3.7.1"
       , yaml = H.callHackage "yaml" "0.11.8.0"
       , zip-archive = H.callHackage "zip-archive" "0.4.2.2"
-      , zlib-bindings = H.callHackage "zlib-bindings" "0.1.1.5"
       , zlib = H.callHackage "zlib" "0.6.3.0"
+      , zlib-bindings = H.callHackage "zlib-bindings" "0.1.1.5"
       }
 
 in  H.HorizonExport.MakePackageSet
-      { packagesDir = "pkgs"
-      , packageSetFile = "initial-packages.nix"
+      { packageSetFile = "initial-packages.nix"
+      , packagesDir = "pkgs/"
       , packageSet = { compiler = "ghc-9.4.4", packages = toMap packages }
       }
diff --git a/pkgs/haskell-language-server.nix b/pkgs/haskell-language-server.nix
index e2ab81151a431f7a9b3a7ee1e0a6c031f1ef9e63..478780aa00fc5915387aa7bdac9f5899b5e51b1f 100644
--- a/pkgs/haskell-language-server.nix
+++ b/pkgs/haskell-language-server.nix
@@ -17,6 +17,7 @@
 , ghc-boot-th
 , ghc-paths
 , ghcide
+, ghcide-bench
 , ghcide-test-utils
 , githash
 , gitrev
@@ -46,8 +47,10 @@
 , hls-retrie-plugin
 , hls-splice-plugin
 , hls-test-utils
+, hp2pretty
 , hslogger
 , hspec-expectations
+, implicit-hie
 , lens
 , lens-aeson
 , lib
@@ -61,6 +64,8 @@
 , process
 , regex-tdfa
 , safe-exceptions
+, shake
+, shake-bench
 , sqlite-simple
 , stm
 , temporary
@@ -69,6 +74,7 @@
 , unix
 , unliftio-core
 , unordered-containers
+, yaml
 }:
 mkDerivation {
   pname = "haskell-language-server";
@@ -207,8 +213,27 @@ mkDerivation {
     unordered-containers
   ];
   testToolDepends = [ ghcide ];
-  enableLibraryProfiling = false;
-  enableExecutableProfiling = false;
+  benchmarkHaskellDepends = [
+    aeson
+    base
+    containers
+    data-default
+    directory
+    extra
+    filepath
+    ghcide-bench
+    hls-plugin-api
+    lens
+    lens-aeson
+    optparse-applicative
+    shake
+    shake-bench
+    text
+    yaml
+  ];
+  benchmarkToolDepends = [ ghcide-bench hp2pretty implicit-hie ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
   doHaddock = false;
   jailbreak = true;
   doCheck = false;
diff --git a/shell/ShellRC.hs b/shell/ShellRC.hs
index 1df234c6e3ae3eb9b65b229d7f7163f472dfa2a6..d86ff8605e3e096ac92e2c600a51b3e26e1668c6 100644
--- a/shell/ShellRC.hs
+++ b/shell/ShellRC.hs
@@ -1,27 +1,60 @@
+{-# LANGUAGE AllowAmbiguousTypes       #-}
+{-# LANGUAGE DerivingStrategies        #-}
+{-# LANGUAGE LambdaCase                #-}
 {-# LANGUAGE NoMonomorphismRestriction #-}
+{-# LANGUAGE OverloadedLists           #-}
+{-# LANGUAGE OverloadedStrings         #-}
+{-# LANGUAGE TemplateHaskell           #-}
+{-# LANGUAGE TypeFamilies              #-}
 {-# OPTIONS_GHC -Wno-missing-signatures #-}
 {-# OPTIONS_GHC -Wno-unused-imports #-}
+{-# OPTIONS_GHC -fplugin=Polysemy.Plugin #-}
 
 module ShellRC where
 
+import qualified Brick
+import           Brick.Widgets.Border
+import qualified Brick.Widgets.List        as Brick
+import           Brick.Widgets.Table       (Table, renderTable, table)
+import qualified Brick.Widgets.Table       as Brick
 import qualified Control.Lens              as L
+import           Control.Monad             (forM, void)
+import           Control.Monad.IO.Class
+import           Cursor.List.NonEmpty
 import qualified Data.Aeson                as A
 import qualified Data.Aeson.Key            as A
 import qualified Data.Aeson.KeyMap         as A
 import qualified Data.Aeson.Lens           as L
-import qualified Data.ByteString.Lazy      as B
+import qualified Data.ByteString           as B
 import           Data.ByteString.Lazy.UTF8 as BLU
 import qualified Data.ByteString.Lazy.UTF8 as BU
+import           Data.Kind                 (Type)
+import qualified Data.List
+import           Data.List.NonEmpty        (NonEmpty ((:|)))
 import qualified Data.Map                  as Map
+import           Data.Maybe                (fromMaybe)
+import           Data.Monoid
 import           Data.Text                 (Text)
 import qualified Data.Text                 as T
 import qualified Data.Text.Encoding        as T
+import qualified Data.Text.Encoding.Error  as T
 import qualified Data.Vector               as V
 import qualified Data.Yaml                 as Y
 import qualified Data.Yaml.Pretty          as Y
+import qualified Dhall
+import           Dhall.Core
+import qualified Dhall.Map                 as DMap
+import           Dhall.Src
+import           GHC.Exts
+import           Graphics.Vty.Attributes
+import           Graphics.Vty.Input.Events
 import           Horizon.Spec
+import qualified Horizon.Spec.Lens         as L
+import qualified Horizon.Spec.Pretty       as H
 import           Network.HTTP.Simple
 import           Path
+import           Polysemy
+import           Polysemy.State
 import           Procex.Prelude
 import           Procex.Shell              hiding (promptFunction)
 import           System.Directory
@@ -52,3 +85,6 @@ runAllFeedback = do
   t <- getEnv "TERM"
   let y = Map.keys . A.toMapText . L.view (L._Right . L._Object . L.ix "loops" . L._Object) $ x
   mapM_ (captureLazyNoThrow . mq t "--command" "nix" "run" "github:NorfairKing/feedback" "--" . T.unpack) y
+
+loadHorizon :: IO HorizonExport
+loadHorizon = Dhall.inputFile @HorizonExport Dhall.auto "horizon.dhall"
diff --git a/shell/default.nix b/shell/default.nix
index 96ef3efa3590e465260fcc045b557f558c256da0..c13393b5eb4759a4670908aedc2f228732f3f410 100644
--- a/shell/default.nix
+++ b/shell/default.nix
@@ -9,15 +9,21 @@ let
   shellrcModulePath = builtins.replaceStrings [ "." ] [ "/" ] shellrcModule + ".hs";
 
   ghc = haskellPackages.ghcWithPackages (p: with p; [
+    brick
     bytestring
     containers
+    cursor
     dhall
     http-conduit
     horizon-gen-nix
     horizon-spec
+    horizon-spec-lens
+    horizon-spec-pretty
     lens
     lens-aeson
     path
+    polysemy-plugin
+    polysemy
     procex
     text
     vector
@@ -50,6 +56,8 @@ let
       :set prompt-function promptFunction
 
       _init
+
+      hz <- loadHorizon
     END
     grep -E '^import .*$' < ${shellrcSrc}/${shellrcModulePath} >> $out
   '';