From 40bb1056810de7c0baa114a11e76959c5f582e58 Mon Sep 17 00:00:00 2001
From: Daniel Firth <dan.firth@homotopic.tech>
Date: Mon, 10 Oct 2022 20:17:08 +0100
Subject: [PATCH] Replace manual nix code with horizon-gen-nix

---
 README.md                                 |  21 +
 configuration.nix                         |   9 +
 flake.lock                                | 263 +++++++++++--
 flake.nix                                 | 110 +-----
 manifest.dhall                            | 344 ++++++++++++++++
 overlay.nix                               | 456 +++++++++++-----------
 pkgs/Cabal-QuickCheck.nix                 |  23 ++
 pkgs/Cabal-described.nix                  |  25 ++
 pkgs/Cabal-syntax.nix                     |  26 ++
 pkgs/Cabal-tree-diff.nix                  |  20 +
 pkgs/Cabal.nix                            |  21 +
 pkgs/ChasingBottoms.nix                   |  20 +
 pkgs/HTTP.nix                             |  26 ++
 pkgs/JuicyPixels.nix                      |  19 +
 pkgs/OneTuple.nix                         |  16 +
 pkgs/OpenGLRaw.nix                        |  19 +
 pkgs/aeson.nix                            |  41 ++
 pkgs/ansi-terminal.nix                    |  16 +
 pkgs/apecs.nix                            |  22 ++
 pkgs/assoc.nix                            |  15 +
 pkgs/async.nix                            |  23 ++
 pkgs/autodocodec-yaml.nix                 |  21 +
 pkgs/base-compat-batteries.nix            |  17 +
 pkgs/base-compat.nix                      |  13 +
 pkgs/base64.nix                           |  29 ++
 pkgs/basement.nix                         |  14 +
 pkgs/bimap.nix                            |  19 +
 pkgs/binary-orphans.nix                   |  20 +
 pkgs/blaze-markup.nix                     |  22 ++
 pkgs/boring.nix                           |  16 +
 pkgs/brick.nix                            |  29 ++
 pkgs/bsb-http-chunked.nix                 |  26 ++
 pkgs/bytes.nix                            |  23 ++
 pkgs/cabal-doctest.nix                    |  16 +
 pkgs/cabal-install-solver.nix             |  23 ++
 pkgs/cabal-install.nix                    |  49 +++
 pkgs/cborg-json.nix                       |  24 ++
 pkgs/cborg.nix                            |  25 ++
 pkgs/cereal.nix                           |  22 ++
 pkgs/citeproc.nix                         |  28 ++
 pkgs/co-log-core.nix                      |  15 +
 pkgs/comonad.nix                          |  21 +
 pkgs/compact.nix                          |  19 +
 pkgs/compactable.nix                      |  28 ++
 pkgs/composite-base.nix                   |  26 ++
 pkgs/composite-cassava.nix                |  21 +
 pkgs/composite-dhall.nix                  |  18 +
 pkgs/composite-lens-extra.nix             |  13 +
 pkgs/composite-tuple.nix                  |  15 +
 pkgs/conduit-extra.nix                    |  32 ++
 pkgs/conduit.nix                          |  31 ++
 pkgs/config-ini.nix                       |  21 +
 pkgs/constraints.nix                      |  22 ++
 pkgs/cryptohash-sha1.nix                  |  23 ++
 pkgs/cryptonite.nix                       |  25 ++
 pkgs/data-fix.nix                         |  16 +
 pkgs/dec.nix                              |  14 +
 pkgs/dhall.nix                            |  86 ++++
 pkgs/dimensional.nix                      |  24 ++
 pkgs/doctest.nix                          |  39 ++
 pkgs/double-conversion.nix                |  28 ++
 pkgs/ed25519.nix                          |  25 ++
 pkgs/effectful-cache.nix                  |  23 ++
 pkgs/effectful-core.nix                   |  18 +
 pkgs/effectful-th.nix                     |  21 +
 pkgs/effectful.nix                        |  26 ++
 pkgs/ema.nix                              |  41 ++
 pkgs/email-validate.nix                   |  19 +
 pkgs/extra.nix                            |  21 +
 pkgs/fcf-containers.nix                   |  22 ++
 pkgs/finite-field.nix                     |  22 ++
 pkgs/first-class-families.nix             |  17 +
 pkgs/foldl.nix                            |  25 ++
 pkgs/foundation.nix                       |  16 +
 pkgs/fourmolu.nix                         |  37 ++
 pkgs/generic-lens-core.nix                |  16 +
 pkgs/generic-lens-lite.nix                |  17 +
 pkgs/generic-optics-lite.nix              |  17 +
 pkgs/generic-optics.nix                   |  23 ++
 pkgs/generics-sop.nix                     |  23 ++
 pkgs/genvalidity-aeson.nix                |  29 ++
 pkgs/genvalidity-bytestring.nix           |  28 ++
 pkgs/genvalidity-hspec.nix                |  22 ++
 pkgs/genvalidity-scientific.nix           |  21 +
 pkgs/genvalidity-sydtest-aeson.nix        |  25 ++
 pkgs/genvalidity-text.nix                 |  26 ++
 pkgs/genvalidity-unordered-containers.nix |  24 ++
 pkgs/genvalidity-vector.nix               |  21 +
 pkgs/ghc-byteorder.nix                    |  16 +
 pkgs/ghc-check.nix                        |  19 +
 pkgs/ghc-exactprint.nix                   |  27 ++
 pkgs/ghc-lib-parser-ex.nix                |  22 ++
 pkgs/ghc-lib-parser.nix                   |  23 ++
 pkgs/ghc-paths.nix                        |  16 +
 pkgs/ghc-tcplugins-extra.nix              |  14 +
 pkgs/hackage-security.nix                 |  32 ++
 pkgs/hashable.nix                         |  23 ++
 pkgs/hashing.nix                          |  27 ++
 pkgs/hashtables.nix                       |  24 ++
 pkgs/haskell-src-meta.nix                 |  21 +
 pkgs/hedgehog-golden.nix                  |  26 ++
 pkgs/hedgehog.nix                         |  28 ++
 pkgs/hie-compat.nix                       |  19 +
 pkgs/hiedb.nix                            |  29 ++
 pkgs/hlint.nix                            |  31 ++
 pkgs/hnix.nix                             |  64 +++
 pkgs/hourglass.nix                        |  22 ++
 pkgs/hslua-aeson.nix                      |  26 ++
 pkgs/hspec-core.nix                       |  31 ++
 pkgs/hspec-discover.nix                   |  24 ++
 pkgs/hspec-meta.nix                       |  29 ++
 pkgs/hspec.nix                            |  18 +
 pkgs/http-client.nix                      |  31 ++
 pkgs/http-date.nix                        |  18 +
 pkgs/http-types.nix                       |  21 +
 pkgs/http2.nix                            |  37 ++
 pkgs/incipit-base.nix                     |  18 +
 pkgs/incipit-core.nix                     |  14 +
 pkgs/indexed-traversable-instances.nix    |  24 ++
 pkgs/indexed-traversable.nix              |  15 +
 pkgs/integer-logarithms.nix               |  23 ++
 pkgs/invariant.nix                        |  27 ++
 pkgs/iproute.nix                          |  22 ++
 pkgs/lens-aeson.nix                       |  21 +
 pkgs/lens-family-th.nix                   |  15 +
 pkgs/lens.nix                             |  41 ++
 pkgs/lifted-async.nix                     |  24 ++
 pkgs/linear.nix                           |  30 ++
 pkgs/lsp-types.nix                        |  28 ++
 pkgs/lsp.nix                              |  32 ++
 pkgs/lucid.nix                            |  28 ++
 pkgs/memory.nix                           |  19 +
 pkgs/monoid-subclasses.nix                |  25 ++
 pkgs/net-mqtt.nix                         |  36 ++
 pkgs/network-byte-order.nix               |  16 +
 pkgs/newtype-generics.nix                 |  20 +
 pkgs/nothunks.nix                         |  21 +
 pkgs/optics-core.nix                      |  20 +
 pkgs/optics-extra.nix                     |  22 ++
 pkgs/optics-th.nix                        |  21 +
 pkgs/optics.nix                           |  30 ++
 pkgs/pandoc.nix                           |  64 +++
 pkgs/parallel.nix                         |  15 +
 pkgs/pcg-random.nix                       |  20 +
 pkgs/polysemy-extra.nix                   |  16 +
 pkgs/polysemy-kvstore.nix                 |  13 +
 pkgs/polysemy-methodology.nix             |  19 +
 pkgs/polysemy-path.nix                    |  15 +
 pkgs/polysemy-plugin.nix                  |  32 ++
 pkgs/polysemy-several.nix                 |  13 +
 pkgs/polysemy-time.nix                    |  21 +
 pkgs/polysemy-vinyl.nix                   |  19 +
 pkgs/polysemy-zoo.nix                     |  27 ++
 pkgs/polysemy.nix                         |  34 ++
 pkgs/postgresql-libpq.nix                 |  19 +
 pkgs/postgresql-simple.nix                |  32 ++
 pkgs/pretty-simple.nix                    |  30 ++
 pkgs/prettyprinter-ansi-terminal.nix      |  21 +
 pkgs/primitive.nix                        |  27 ++
 pkgs/proteaaudio-sdl.nix                  |  18 +
 pkgs/quickcheck-dynamic.nix               |  14 +
 pkgs/quickcheck-instances.nix             |  29 ++
 pkgs/rebase.nix                           |  26 ++
 pkgs/relude.nix                           |  26 ++
 pkgs/rerebase.nix                         |  14 +
 pkgs/retry.nix                            |  24 ++
 pkgs/rope-utf16-splay.nix                 |  19 +
 pkgs/safe-coloured-text.nix               |  18 +
 pkgs/saltine.nix                          |  21 +
 pkgs/scientific.nix                       |  28 ++
 pkgs/scotty.nix                           |  36 ++
 pkgs/sdl2-gfx.nix                         |  25 ++
 pkgs/sdl2-image.nix                       |  25 ++
 pkgs/sdl2-mixer.nix                       |  26 ++
 pkgs/sdl2-ttf.nix                         |  21 +
 pkgs/sdl2.nix                             |  23 ++
 pkgs/semialign.nix                        |  23 ++
 pkgs/serialise.nix                        |  33 ++
 pkgs/servant-client-core.nix              |  32 ++
 pkgs/servant-client.nix                   |  39 ++
 pkgs/servant-foreign.nix                  |  26 ++
 pkgs/servant-lucid.nix                    |  17 +
 pkgs/servant-multipart-api.nix            |  19 +
 pkgs/servant-multipart.nix                |  28 ++
 pkgs/servant.nix                          |  36 ++
 pkgs/shake.nix                            |  37 ++
 pkgs/shelly.nix                           |  30 ++
 pkgs/singleton-bool.nix                   |  16 +
 pkgs/singletons.nix                       |  15 +
 pkgs/some.nix                             |  17 +
 pkgs/sop-core.nix                         |  15 +
 pkgs/split.nix                            |  16 +
 pkgs/streaming-commons.nix                |  25 ++
 pkgs/string-interpolate.nix               |  34 ++
 pkgs/string-qq.nix                        |  14 +
 pkgs/stylish-haskell.nix                  |  37 ++
 pkgs/syb.nix                              |  15 +
 pkgs/sydtest-discover.nix                 |  22 ++
 pkgs/sydtest.nix                          |  30 ++
 pkgs/tasty-discover.nix                   |  33 ++
 pkgs/tasty-hedgehog.nix                   |  24 ++
 pkgs/tasty-hunit.nix                      |  20 +
 pkgs/tasty-wai.nix                        |  18 +
 pkgs/tasty.nix                            |  25 ++
 pkgs/text-zipper.nix                      |  17 +
 pkgs/th-extras.nix                        |  18 +
 pkgs/th-lift-instances.nix                |  22 ++
 pkgs/these.nix                            |  16 +
 pkgs/tidal.nix                            |  29 ++
 pkgs/time-compat.nix                      |  25 ++
 pkgs/type-equality.nix                    |  16 +
 pkgs/type-errors-pretty.nix               |  15 +
 pkgs/type-errors.nix                      |  24 ++
 pkgs/unicode-collation.nix                |  30 ++
 pkgs/unicode-data.nix                     |  21 +
 pkgs/unicode-transforms.nix               |  29 ++
 pkgs/unordered-containers.nix             |  28 ++
 pkgs/vault.nix                            |  20 +
 pkgs/vector-algorithms.nix                |  24 ++
 pkgs/vector.nix                           |  26 ++
 pkgs/vinyl.nix                            |  24 ++
 pkgs/vty.nix                              |  38 ++
 pkgs/wai-middleware-static.nix            |  30 ++
 pkgs/warp-tls.nix                         |  20 +
 pkgs/warp.nix                             |  38 ++
 pkgs/with-utf8.nix                        |  28 ++
 pkgs/witherable.nix                       |  28 ++
 pkgs/xml-conduit.nix                      |  29 ++
 228 files changed, 6207 insertions(+), 357 deletions(-)
 create mode 100644 README.md
 create mode 100644 configuration.nix
 create mode 100644 manifest.dhall
 create mode 100644 pkgs/Cabal-QuickCheck.nix
 create mode 100644 pkgs/Cabal-described.nix
 create mode 100644 pkgs/Cabal-syntax.nix
 create mode 100644 pkgs/Cabal-tree-diff.nix
 create mode 100644 pkgs/Cabal.nix
 create mode 100644 pkgs/ChasingBottoms.nix
 create mode 100644 pkgs/HTTP.nix
 create mode 100644 pkgs/JuicyPixels.nix
 create mode 100644 pkgs/OneTuple.nix
 create mode 100644 pkgs/OpenGLRaw.nix
 create mode 100644 pkgs/aeson.nix
 create mode 100644 pkgs/ansi-terminal.nix
 create mode 100644 pkgs/apecs.nix
 create mode 100644 pkgs/assoc.nix
 create mode 100644 pkgs/async.nix
 create mode 100644 pkgs/autodocodec-yaml.nix
 create mode 100644 pkgs/base-compat-batteries.nix
 create mode 100644 pkgs/base-compat.nix
 create mode 100644 pkgs/base64.nix
 create mode 100644 pkgs/basement.nix
 create mode 100644 pkgs/bimap.nix
 create mode 100644 pkgs/binary-orphans.nix
 create mode 100644 pkgs/blaze-markup.nix
 create mode 100644 pkgs/boring.nix
 create mode 100644 pkgs/brick.nix
 create mode 100644 pkgs/bsb-http-chunked.nix
 create mode 100644 pkgs/bytes.nix
 create mode 100644 pkgs/cabal-doctest.nix
 create mode 100644 pkgs/cabal-install-solver.nix
 create mode 100644 pkgs/cabal-install.nix
 create mode 100644 pkgs/cborg-json.nix
 create mode 100644 pkgs/cborg.nix
 create mode 100644 pkgs/cereal.nix
 create mode 100644 pkgs/citeproc.nix
 create mode 100644 pkgs/co-log-core.nix
 create mode 100644 pkgs/comonad.nix
 create mode 100644 pkgs/compact.nix
 create mode 100644 pkgs/compactable.nix
 create mode 100644 pkgs/composite-base.nix
 create mode 100644 pkgs/composite-cassava.nix
 create mode 100644 pkgs/composite-dhall.nix
 create mode 100644 pkgs/composite-lens-extra.nix
 create mode 100644 pkgs/composite-tuple.nix
 create mode 100644 pkgs/conduit-extra.nix
 create mode 100644 pkgs/conduit.nix
 create mode 100644 pkgs/config-ini.nix
 create mode 100644 pkgs/constraints.nix
 create mode 100644 pkgs/cryptohash-sha1.nix
 create mode 100644 pkgs/cryptonite.nix
 create mode 100644 pkgs/data-fix.nix
 create mode 100644 pkgs/dec.nix
 create mode 100644 pkgs/dhall.nix
 create mode 100644 pkgs/dimensional.nix
 create mode 100644 pkgs/doctest.nix
 create mode 100644 pkgs/double-conversion.nix
 create mode 100644 pkgs/ed25519.nix
 create mode 100644 pkgs/effectful-cache.nix
 create mode 100644 pkgs/effectful-core.nix
 create mode 100644 pkgs/effectful-th.nix
 create mode 100644 pkgs/effectful.nix
 create mode 100644 pkgs/ema.nix
 create mode 100644 pkgs/email-validate.nix
 create mode 100644 pkgs/extra.nix
 create mode 100644 pkgs/fcf-containers.nix
 create mode 100644 pkgs/finite-field.nix
 create mode 100644 pkgs/first-class-families.nix
 create mode 100644 pkgs/foldl.nix
 create mode 100644 pkgs/foundation.nix
 create mode 100644 pkgs/fourmolu.nix
 create mode 100644 pkgs/generic-lens-core.nix
 create mode 100644 pkgs/generic-lens-lite.nix
 create mode 100644 pkgs/generic-optics-lite.nix
 create mode 100644 pkgs/generic-optics.nix
 create mode 100644 pkgs/generics-sop.nix
 create mode 100644 pkgs/genvalidity-aeson.nix
 create mode 100644 pkgs/genvalidity-bytestring.nix
 create mode 100644 pkgs/genvalidity-hspec.nix
 create mode 100644 pkgs/genvalidity-scientific.nix
 create mode 100644 pkgs/genvalidity-sydtest-aeson.nix
 create mode 100644 pkgs/genvalidity-text.nix
 create mode 100644 pkgs/genvalidity-unordered-containers.nix
 create mode 100644 pkgs/genvalidity-vector.nix
 create mode 100644 pkgs/ghc-byteorder.nix
 create mode 100644 pkgs/ghc-check.nix
 create mode 100644 pkgs/ghc-exactprint.nix
 create mode 100644 pkgs/ghc-lib-parser-ex.nix
 create mode 100644 pkgs/ghc-lib-parser.nix
 create mode 100644 pkgs/ghc-paths.nix
 create mode 100644 pkgs/ghc-tcplugins-extra.nix
 create mode 100644 pkgs/hackage-security.nix
 create mode 100644 pkgs/hashable.nix
 create mode 100644 pkgs/hashing.nix
 create mode 100644 pkgs/hashtables.nix
 create mode 100644 pkgs/haskell-src-meta.nix
 create mode 100644 pkgs/hedgehog-golden.nix
 create mode 100644 pkgs/hedgehog.nix
 create mode 100644 pkgs/hie-compat.nix
 create mode 100644 pkgs/hiedb.nix
 create mode 100644 pkgs/hlint.nix
 create mode 100644 pkgs/hnix.nix
 create mode 100644 pkgs/hourglass.nix
 create mode 100644 pkgs/hslua-aeson.nix
 create mode 100644 pkgs/hspec-core.nix
 create mode 100644 pkgs/hspec-discover.nix
 create mode 100644 pkgs/hspec-meta.nix
 create mode 100644 pkgs/hspec.nix
 create mode 100644 pkgs/http-client.nix
 create mode 100644 pkgs/http-date.nix
 create mode 100644 pkgs/http-types.nix
 create mode 100644 pkgs/http2.nix
 create mode 100644 pkgs/incipit-base.nix
 create mode 100644 pkgs/incipit-core.nix
 create mode 100644 pkgs/indexed-traversable-instances.nix
 create mode 100644 pkgs/indexed-traversable.nix
 create mode 100644 pkgs/integer-logarithms.nix
 create mode 100644 pkgs/invariant.nix
 create mode 100644 pkgs/iproute.nix
 create mode 100644 pkgs/lens-aeson.nix
 create mode 100644 pkgs/lens-family-th.nix
 create mode 100644 pkgs/lens.nix
 create mode 100644 pkgs/lifted-async.nix
 create mode 100644 pkgs/linear.nix
 create mode 100644 pkgs/lsp-types.nix
 create mode 100644 pkgs/lsp.nix
 create mode 100644 pkgs/lucid.nix
 create mode 100644 pkgs/memory.nix
 create mode 100644 pkgs/monoid-subclasses.nix
 create mode 100644 pkgs/net-mqtt.nix
 create mode 100644 pkgs/network-byte-order.nix
 create mode 100644 pkgs/newtype-generics.nix
 create mode 100644 pkgs/nothunks.nix
 create mode 100644 pkgs/optics-core.nix
 create mode 100644 pkgs/optics-extra.nix
 create mode 100644 pkgs/optics-th.nix
 create mode 100644 pkgs/optics.nix
 create mode 100644 pkgs/pandoc.nix
 create mode 100644 pkgs/parallel.nix
 create mode 100644 pkgs/pcg-random.nix
 create mode 100644 pkgs/polysemy-extra.nix
 create mode 100644 pkgs/polysemy-kvstore.nix
 create mode 100644 pkgs/polysemy-methodology.nix
 create mode 100644 pkgs/polysemy-path.nix
 create mode 100644 pkgs/polysemy-plugin.nix
 create mode 100644 pkgs/polysemy-several.nix
 create mode 100644 pkgs/polysemy-time.nix
 create mode 100644 pkgs/polysemy-vinyl.nix
 create mode 100644 pkgs/polysemy-zoo.nix
 create mode 100644 pkgs/polysemy.nix
 create mode 100644 pkgs/postgresql-libpq.nix
 create mode 100644 pkgs/postgresql-simple.nix
 create mode 100644 pkgs/pretty-simple.nix
 create mode 100644 pkgs/prettyprinter-ansi-terminal.nix
 create mode 100644 pkgs/primitive.nix
 create mode 100644 pkgs/proteaaudio-sdl.nix
 create mode 100644 pkgs/quickcheck-dynamic.nix
 create mode 100644 pkgs/quickcheck-instances.nix
 create mode 100644 pkgs/rebase.nix
 create mode 100644 pkgs/relude.nix
 create mode 100644 pkgs/rerebase.nix
 create mode 100644 pkgs/retry.nix
 create mode 100644 pkgs/rope-utf16-splay.nix
 create mode 100644 pkgs/safe-coloured-text.nix
 create mode 100644 pkgs/saltine.nix
 create mode 100644 pkgs/scientific.nix
 create mode 100644 pkgs/scotty.nix
 create mode 100644 pkgs/sdl2-gfx.nix
 create mode 100644 pkgs/sdl2-image.nix
 create mode 100644 pkgs/sdl2-mixer.nix
 create mode 100644 pkgs/sdl2-ttf.nix
 create mode 100644 pkgs/sdl2.nix
 create mode 100644 pkgs/semialign.nix
 create mode 100644 pkgs/serialise.nix
 create mode 100644 pkgs/servant-client-core.nix
 create mode 100644 pkgs/servant-client.nix
 create mode 100644 pkgs/servant-foreign.nix
 create mode 100644 pkgs/servant-lucid.nix
 create mode 100644 pkgs/servant-multipart-api.nix
 create mode 100644 pkgs/servant-multipart.nix
 create mode 100644 pkgs/servant.nix
 create mode 100644 pkgs/shake.nix
 create mode 100644 pkgs/shelly.nix
 create mode 100644 pkgs/singleton-bool.nix
 create mode 100644 pkgs/singletons.nix
 create mode 100644 pkgs/some.nix
 create mode 100644 pkgs/sop-core.nix
 create mode 100644 pkgs/split.nix
 create mode 100644 pkgs/streaming-commons.nix
 create mode 100644 pkgs/string-interpolate.nix
 create mode 100644 pkgs/string-qq.nix
 create mode 100644 pkgs/stylish-haskell.nix
 create mode 100644 pkgs/syb.nix
 create mode 100644 pkgs/sydtest-discover.nix
 create mode 100644 pkgs/sydtest.nix
 create mode 100644 pkgs/tasty-discover.nix
 create mode 100644 pkgs/tasty-hedgehog.nix
 create mode 100644 pkgs/tasty-hunit.nix
 create mode 100644 pkgs/tasty-wai.nix
 create mode 100644 pkgs/tasty.nix
 create mode 100644 pkgs/text-zipper.nix
 create mode 100644 pkgs/th-extras.nix
 create mode 100644 pkgs/th-lift-instances.nix
 create mode 100644 pkgs/these.nix
 create mode 100644 pkgs/tidal.nix
 create mode 100644 pkgs/time-compat.nix
 create mode 100644 pkgs/type-equality.nix
 create mode 100644 pkgs/type-errors-pretty.nix
 create mode 100644 pkgs/type-errors.nix
 create mode 100644 pkgs/unicode-collation.nix
 create mode 100644 pkgs/unicode-data.nix
 create mode 100644 pkgs/unicode-transforms.nix
 create mode 100644 pkgs/unordered-containers.nix
 create mode 100644 pkgs/vault.nix
 create mode 100644 pkgs/vector-algorithms.nix
 create mode 100644 pkgs/vector.nix
 create mode 100644 pkgs/vinyl.nix
 create mode 100644 pkgs/vty.nix
 create mode 100644 pkgs/wai-middleware-static.nix
 create mode 100644 pkgs/warp-tls.nix
 create mode 100644 pkgs/warp.nix
 create mode 100644 pkgs/with-utf8.nix
 create mode 100644 pkgs/witherable.nix
 create mode 100644 pkgs/xml-conduit.nix

diff --git a/README.md b/README.md
new file mode 100644
index 00000000..b22e72de
--- /dev/null
+++ b/README.md
@@ -0,0 +1,21 @@
+# Haskell Horizon Platform
+
+[horizon-haskell.net](https://horizon-haskell.net).
+
+Horizon is a haskell package set targetting new builds of GHC.
+
+## Updating the package set
+
+The package set is generated from the `manifest.dhall` using the following command:
+
+```
+nix run .#horizon-gen-nix
+```
+
+This will generate both the `pkgs` folder and the `overlay.nix`. If you want to
+regenerate a particular package in `pkgs`, delete that file from `pkgs`. To
+regenerate the entire package set from scratch, delete the `pkgs` folder.
+
+If you need to do additional manual overrides to the nix code, such as
+`addPkgconfigDepends`, edit the `configuration.nix` overlay, which is applied
+after `overlay.nix`.
diff --git a/configuration.nix b/configuration.nix
new file mode 100644
index 00000000..24205ebc
--- /dev/null
+++ b/configuration.nix
@@ -0,0 +1,9 @@
+{ pkgs, ... }:
+
+with pkgs.haskell.lib;
+
+final: prev: {
+
+  saltine = addPkgconfigDepend prev.saltine pkgs.libsodium;
+
+}
diff --git a/flake.lock b/flake.lock
index 4dc80c1f..60539b07 100644
--- a/flake.lock
+++ b/flake.lock
@@ -33,6 +33,22 @@
         "type": "github"
       }
     },
+    "cabal2nix": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1665402713,
+        "narHash": "sha256-eUk0m/24UaYi75mg9C36WK7PVnosKbMEIafkRa6npno=",
+        "owner": "NixOS",
+        "repo": "cabal2nix",
+        "rev": "b3ae6f9240d07ba103f1eb7ab22f6055e9cdb7dc",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "repo": "cabal2nix",
+        "type": "github"
+      }
+    },
     "cache-effectful": {
       "flake": false,
       "locked": {
@@ -167,6 +183,8 @@
     "flake-parts": {
       "inputs": {
         "nixpkgs": [
+          "horizon-gen-nix",
+          "horizon-platform",
           "nixpkgs"
         ]
       },
@@ -199,6 +217,65 @@
       }
     },
     "flake-utils_2": {
+      "locked": {
+        "lastModified": 1659877975,
+        "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
+        "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=",
@@ -296,9 +373,75 @@
         "type": "github"
       }
     },
-    "lint-utils": {
+    "horizon-gen-nix": {
       "inputs": {
+        "cabal2nix": "cabal2nix",
         "flake-utils": "flake-utils_2",
+        "horizon-platform": "horizon-platform",
+        "lint-utils": "lint-utils_2",
+        "nixpkgs": "nixpkgs_3"
+      },
+      "locked": {
+        "lastModified": 1665673695,
+        "narHash": "sha256-NMhaJU6hKNmWsoQWb36wH7q4hZToJLNDw1+hd3ltPcE=",
+        "ref": "refs/heads/master",
+        "rev": "f5c7fcd862ee0a7eb1f0cd1a7f00d424541629cf",
+        "revCount": 9,
+        "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": {
+        "Cabal": "Cabal",
+        "all-cabal-hashes": "all-cabal-hashes",
+        "cache-effectful": "cache-effectful",
+        "cborg": "cborg",
+        "compactable": "compactable",
+        "cryptohash-sha1": "cryptohash-sha1",
+        "doctest": "doctest",
+        "double-conversion": "double-conversion",
+        "ed25519": "ed25519",
+        "ema": "ema",
+        "flake-parts": "flake-parts",
+        "flake-utils": "flake-utils_3",
+        "ghc-exactprint": "ghc-exactprint",
+        "haskell-src-meta": "haskell-src-meta",
+        "hedgehog-golden": "hedgehog-golden",
+        "hlint": "hlint",
+        "hnix": "hnix",
+        "lint-utils": "lint-utils",
+        "memory": "memory",
+        "nixpkgs": "nixpkgs_2",
+        "polysemy": "polysemy",
+        "quickcheck-dynamic": "quickcheck-dynamic",
+        "servant": "servant",
+        "sydtest": "sydtest",
+        "tasty": "tasty",
+        "tasty-hedgehog": "tasty-hedgehog",
+        "unicode-data": "unicode-data"
+      },
+      "locked": {
+        "lastModified": 1665142826,
+        "narHash": "sha256-KizqMUsjDrL7OhG41XVtKN4abWbaAPGT4cZxovgJIZ4=",
+        "ref": "refs/heads/master",
+        "rev": "bfde994492bcbbb732223051be69cca2311ef79d",
+        "revCount": 122,
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/horizon/horizon-platform"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://gitlab.homotopic.tech/horizon/horizon-platform"
+      }
+    },
+    "lint-utils": {
+      "inputs": {
+        "flake-utils": "flake-utils_4",
         "nixpkgs": "nixpkgs"
       },
       "locked": {
@@ -315,6 +458,47 @@
         "url": "https://gitlab.homotopic.tech/nix/lint-utils"
       }
     },
+    "lint-utils_2": {
+      "inputs": {
+        "flake-utils": "flake-utils_5",
+        "nixpkgs": [
+          "horizon-gen-nix",
+          "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_3": {
+      "inputs": {
+        "flake-utils": "flake-utils_6",
+        "nixpkgs": "nixpkgs_4"
+      },
+      "locked": {
+        "lastModified": 1655192403,
+        "narHash": "sha256-XyKDvRGDh8VXA6zN8DUTnDaTMrk0MxMKg70MaAX1A2Y=",
+        "ref": "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"
+      }
+    },
     "memory": {
       "flake": false,
       "locked": {
@@ -364,6 +548,54 @@
         "type": "github"
       }
     },
+    "nixpkgs_3": {
+      "locked": {
+        "lastModified": 1665197809,
+        "narHash": "sha256-dRUzv/zNYV2EYtnxFG31pPBk0nErT+MBTu6ZJHm1o2A=",
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "rev": "7b06206fa24198912cea58de690aa4943f238fbf",
+        "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": 1664556388,
+        "narHash": "sha256-04xEtpc0AqLhgDtJ/kT+aZGPrXOI+1a3obf6iWrJQXs=",
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "rev": "511213e0ece88be30a4bd73488f7d1cd85879654",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nixos",
+        "ref": "nixpkgs-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
     "polysemy": {
       "flake": false,
       "locked": {
@@ -399,33 +631,10 @@
     },
     "root": {
       "inputs": {
-        "Cabal": "Cabal",
-        "all-cabal-hashes": "all-cabal-hashes",
-        "cache-effectful": "cache-effectful",
-        "cborg": "cborg",
-        "compactable": "compactable",
-        "cryptohash-sha1": "cryptohash-sha1",
-        "doctest": "doctest",
-        "double-conversion": "double-conversion",
-        "ed25519": "ed25519",
-        "ema": "ema",
-        "flake-parts": "flake-parts",
         "flake-utils": "flake-utils",
-        "ghc-exactprint": "ghc-exactprint",
-        "haskell-src-meta": "haskell-src-meta",
-        "hedgehog-golden": "hedgehog-golden",
-        "hlint": "hlint",
-        "hnix": "hnix",
-        "lint-utils": "lint-utils",
-        "memory": "memory",
-        "nixpkgs": "nixpkgs_2",
-        "polysemy": "polysemy",
-        "quickcheck-dynamic": "quickcheck-dynamic",
-        "servant": "servant",
-        "sydtest": "sydtest",
-        "tasty": "tasty",
-        "tasty-hedgehog": "tasty-hedgehog",
-        "unicode-data": "unicode-data"
+        "horizon-gen-nix": "horizon-gen-nix",
+        "lint-utils": "lint-utils_3",
+        "nixpkgs": "nixpkgs_5"
       }
     },
     "servant": {
diff --git a/flake.nix b/flake.nix
index 607fa893..39c83c33 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,110 +1,17 @@
 {
   inputs = {
-    Cabal = {
-      url = "git+https://gitlab.haskell.org/ghc/packages/Cabal";
-      flake = false;
-    };
-    all-cabal-hashes = {
-      url = "github:commercialhaskell/all-cabal-hashes?ref=hackage";
-      flake = false;
-    };
-    cache-effectful = {
-      url = "github:haskell-effectful/cache-effectful";
-      flake = false;
-    };
-    cborg = {
-      url = "github:parsonsmatt/cborg/05ca2063ff631667699bffbeee3a4a076943b905";
-      flake = false;
-    };
-    compactable = {
-      url = "gitlab:fresheyeball/Compactable/master";
-      flake = false;
-    };
-    cryptohash-sha1 = {
-      url = "github:haskell-hvr/cryptohash-sha1";
-      flake = false;
-    };
-    doctest = {
-      url = "github:sol/doctest/4eb97c213acf7abe965a3a1b67397199ed155f3c";
-      flake = false;
-    };
-    double-conversion = {
-      url = "github:haskell/double-conversion";
-      flake = false;
-    };
-    ed25519 = {
-      url = "git+https://gitlab.homotopic.tech/horizon/adopted/ed25519";
-      flake = false;
-    };
-    ema = {
-      url = "github:EmaApps/ema";
-      flake = false;
-    };
-    flake-parts.url = "github:hercules-ci/flake-parts";
-    flake-parts.inputs.nixpkgs.follows = "nixpkgs";
-    ghc-exactprint = {
-      url = "github:alanz/ghc-exactprint?ref=ghc-9.4";
-      flake = false;
-    };
-    haskell-src-meta = {
-      url = "github:parsonsmatt/haskell-src-meta?ref=matt/support-new-th";
-      flake = false;
-    };
-    hedgehog-golden = {
-      url = "github:maybe-hedgehog-later/hedgehog-golden";
-      flake = false;
-    };
-    hlint = {
-      url = "github:ndmitchell/hlint";
-      flake = false;
-    };
-    hnix = {
-      url = "github:milloni/hnix?ref=milloni/horizon";
-      flake = false;
-    };
     lint-utils.url = "git+https://gitlab.homotopic.tech/nix/lint-utils";
-    memory = {
-      url = "github:parsonsmatt/hs-memory/0f760c8ba0b7d5aacf04a7294e87e5e4fff53f40";
-      flake = false;
-    };
     nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
-    polysemy = {
-      url = "github:locallycompact/polysemy?ref=ghc-942";
-      flake = false;
-    };
-    quickcheck-dynamic = {
-      url = "github:input-output-hk/quickcheck-dynamic";
-      flake = false;
-    };
-    servant = {
-      url = "github:TeofilC/servant?ref=ghc-9.4";
-      flake = false;
-    };
-    sydtest = {
-      url = "github:NorfairKing/sydtest";
-      flake = false;
-    };
-    tasty = {
-      url = "github:UnkindPartition/tasty";
-      flake = false;
-    };
-    tasty-hedgehog = {
-      url = "github:locallycompact/tasty-hedgehog";
-      flake = false;
-    };
-    unicode-data = {
-      url = "github:composewell/unicode-data";
-      flake = false;
-    };
+    horizon-gen-nix.url = "git+https://gitlab.homotopic.tech/horizon/horizon-gen-nix";
   };
-  outputs = inputs@{ self, nixpkgs, flake-utils, lint-utils, ... }:
+  outputs = inputs@{ self, nixpkgs, flake-utils, horizon-gen-nix, lint-utils, ... }:
     flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
       let
-        overlay-ach = final: prev: { all-cabal-hashes = inputs.all-cabal-hashes; };
-        pkgs = import nixpkgs { inherit system; overlays = [ overlay-ach ]; };
+        pkgs = import nixpkgs { inherit system; };
         overrides-hp = import ./overlay.nix { inherit inputs pkgs; };
+        configuration = import ./configuration.nix { inherit inputs pkgs; };
         hp = pkgs.haskell.packages.ghc942.override {
-          overrides = overrides-hp;
+          overrides = pkgs.lib.composeManyExtensions [overrides-hp configuration];
         };
         hp' = pkgs.lib.filterAttrs
           (n: v: v != null
@@ -115,7 +22,14 @@
           hp;
       in
       {
+        apps = {
+          horizon-gen-nix = {
+            type = "app";
+            program = "${horizon-gen-nix.outputs.packages.x86_64-linux.default}/bin/horizon-gen-nix";
+          };
+        };
         checks = {
+          dhall-format = lint-utils.outputs.linters.x86_64-linux.dhall-format ./.;
           nixpkgs-fmt = lint-utils.outputs.linters.x86_64-linux.nixpkgs-fmt ./.;
         };
         overrides.ghc942 = overrides-hp;
diff --git a/manifest.dhall b/manifest.dhall
new file mode 100644
index 00000000..88cbe07b
--- /dev/null
+++ b/manifest.dhall
@@ -0,0 +1,344 @@
+let HsSrc =
+      < FromHackage : { name : Text, version : Text }
+      | FromGit :
+          { url : Text, revision : Optional Text, subdir : Optional Text }
+      >
+
+let Modifiers =
+      { Type = { doJailbreak : Bool, doCheck : Bool }
+      , default = { doJailbreak = True, doCheck = False }
+      }
+
+let Attr = λ(a : Type) → { mapKey : Text, mapValue : a }
+
+let HsPkg =
+      { Type = { source : HsSrc, modifiers : Modifiers.Type }
+      , default.modifiers = Modifiers.default
+      }
+
+let callHackage
+    : ∀(name : Text) → ∀(version : Text) → Attr HsPkg.Type
+    = λ(name : Text) →
+      λ(version : Text) →
+        { mapKey = name
+        , mapValue = HsPkg::{ source = HsSrc.FromHackage { name, version } }
+        }
+
+let callCabal2nix
+    : ∀(name : Text) →
+      ∀(url : Text) →
+      ∀(revision : Optional Text) →
+      ∀(subdir : Optional Text) →
+        Attr HsPkg.Type
+    = λ(name : Text) →
+      λ(url : Text) →
+      λ(revision : Optional Text) →
+      λ(subdir : Optional Text) →
+        { mapKey = name
+        , mapValue = HsPkg::{ source = HsSrc.FromGit { url, revision, subdir } }
+        }
+
+in  [ callHackage "Cabal" "3.8.1.0"
+    , callCabal2nix
+        "Cabal-QuickCheck"
+        "https://gitlab.haskell.org/ghc/packages/Cabal"
+        (None Text)
+        (Some "Cabal-QuickCheck")
+    , callCabal2nix
+        "Cabal-described"
+        "https://gitlab.haskell.org/ghc/packages/Cabal"
+        (None Text)
+        (Some "Cabal-described")
+    , callCabal2nix
+        "Cabal-syntax"
+        "https://gitlab.haskell.org/ghc/packages/Cabal"
+        (None Text)
+        (Some "Cabal-syntax")
+    , callCabal2nix
+        "Cabal-syntax"
+        "https://gitlab.haskell.org/ghc/packages/Cabal"
+        (None Text)
+        (Some "Cabal-syntax")
+    , callCabal2nix
+        "Cabal-tree-diff"
+        "https://gitlab.haskell.org/ghc/packages/Cabal"
+        (None Text)
+        (Some "Cabal-tree-diff")
+    , callHackage "ChasingBottoms" "1.3.1.12"
+    , callHackage "HTTP" "4000.4.1"
+    , callHackage "JuicyPixels" "3.3.8"
+    , callHackage "OneTuple" "0.3.1"
+    , callHackage "OpenGLRaw" "3.3.4.1"
+    , callHackage "aeson" "2.1.0.0"
+    , callHackage "ansi-terminal" "0.11.3"
+    , callHackage "apecs" "0.9.4"
+    , callHackage "assoc" "1.0.2"
+    , callHackage "async" "2.2.4"
+    , callHackage "autodocodec-yaml" "0.2.0.2"
+    , callHackage "basement" "0.0.15"
+    , callHackage "base64" "0.4.2.4"
+    , callHackage "base-compat" "0.12.2"
+    , callHackage "base-compat-batteries" "0.12.2"
+    , callHackage "bimap" "0.5.0"
+    , callHackage "binary-orphans" "1.0.3"
+    , callHackage "blaze-markup" "0.8.2.8"
+    , callHackage "boring" "0.2"
+    , callHackage "bsb-http-chunked" "0.0.0.4"
+    , callHackage "brick" "1.3"
+    , callHackage "bytes" "0.17.2"
+    , callHackage "cabal-doctest" "1.0.9"
+    , callHackage "cabal-install" "3.8.1.0"
+    , callHackage "cabal-install-solver" "3.8.1.0"
+    , callHackage "cereal" "0.5.8.3"
+    , callHackage "cborg" "0.2.8.0"
+    , callHackage "cborg-json" "0.2.5.0"
+    , callHackage "citeproc" "0.8.0.1"
+    , callHackage "co-log-core" "0.3.1.0"
+    , callHackage "comonad" "5.0.8"
+    , callHackage "compact" "0.2.0.0"
+    , callHackage "compactable" "0.2.0.0"
+    , callHackage "composite-base" "0.8.1.0"
+    , callHackage "composite-cassava" "0.0.3.1"
+    , callHackage "composite-dhall" "0.1.0.1"
+    , callHackage "composite-lens-extra" "0.1.0.0"
+    , callHackage "composite-tuple" "0.1.2.0"
+    , callHackage "conduit" "1.3.4.2"
+    , callHackage "conduit-extra" "1.3.6"
+    , callHackage "config-ini" "0.2.5.0"
+    , callHackage "constraints" "0.13.4"
+    , callHackage "cryptonite" "0.30"
+    , callHackage "cryptohash-sha1" "0.11.101.0"
+    , callHackage "data-fix" "0.3.2"
+    , callHackage "dec" "0.0.5"
+    , callHackage "dhall" "1.41.2"
+    , callHackage "dimensional" "1.5"
+    , callCabal2nix
+        "doctest"
+        "https://github.com/sol/doctest"
+        (Some "4eb97c213acf7abe965a3a1b67397199ed155f3c")
+        (None Text)
+    , callCabal2nix
+        "double-conversion"
+        "https://github.com/haskell/double-conversion"
+        (None Text)
+        (None Text)
+    , callCabal2nix
+        "ed25519"
+        "https://gitlab.homotopic.tech/horizon/adopted/ed25519"
+        (None Text)
+        (None Text)
+    , callHackage "email-validate" "2.3.2.16"
+    , callCabal2nix
+        "ema"
+        "https://github.com/EmaApps/ema"
+        (None Text)
+        (None Text)
+    , callCabal2nix
+        "effectful-cache"
+        "https://github.com/haskell-effectful/cache-effectful"
+        (None Text)
+        (None Text)
+    , callHackage "effectful-core" "2.1.0.0"
+    , callHackage "effectful-th" "1.0.0.0"
+    , callHackage "effectful" "2.1.0.0"
+    , callHackage "extra" "1.7.12"
+    , callHackage "fcf-containers" "0.7.1"
+    , callHackage "finite-field" "0.10.0"
+    , callHackage "first-class-families" "0.8.0.1"
+    , callHackage "foldl" "1.4.12"
+    , callHackage "fourmolu" "0.8.2.0"
+    , callHackage "foundation" "0.0.29"
+    , callHackage "generic-lens-core" "2.2.1.0"
+    , callHackage "generic-lens-lite" "0.1"
+    , callHackage "generic-optics-lite" "0.1"
+    , callHackage "generic-optics" "2.2.1.0"
+    , callHackage "generics-sop" "0.5.1.2"
+    , callHackage "genvalidity-aeson" "1.0.0.1"
+    , callHackage "genvalidity-bytestring" "1.0.0.1"
+    , callHackage "genvalidity-hspec" "1.0.0.2"
+    , callHackage "genvalidity-scientific" "1.0.0.0"
+    , callHackage "genvalidity-sydtest-aeson" "1.0.0.0"
+    , callHackage "genvalidity-text" "1.0.0.1"
+    , callHackage "genvalidity-unordered-containers" "1.0.0.0"
+    , callHackage "genvalidity-vector" "1.0.0.0"
+    , callHackage "ghc-byteorder" "4.11.0.0.10"
+    , callHackage "ghc-check" "0.5.0.8"
+    , callHackage "ghc-exactprint" "1.6.0"
+    , callHackage "ghc-lib-parser" "9.4.2.20220822"
+    , callHackage "ghc-lib-parser-ex" "9.4.0.0"
+    , callHackage "ghc-paths" "0.1.0.12"
+    , callHackage "ghc-tcplugins-extra" "0.4.3"
+    , callHackage "hackage-security" "0.6.2.2"
+    , callHackage "hashable" "1.4.1.0"
+    , callHackage "hashing" "0.1.0.1"
+    , callHackage "hashtables" "1.3"
+    , callHackage "haskell-src-meta" "0.8.11"
+    , callHackage "hedgehog" "1.2"
+    , callCabal2nix
+        "hedgehog-golden"
+        "https://github.com/maybe-hedgehog-later/hedgehog-golden"
+        (None Text)
+        (None Text)
+    , callHackage "hie-compat" "0.3.0.0"
+    , callHackage "hiedb" "0.4.2.0"
+    , callHackage "hlint" "3.5"
+    , callHackage "hourglass" "0.2.12"
+    , callCabal2nix
+        "hnix"
+        "https://github.com/milloni/hnix"
+        (Some "005568ee024eabee129d9cf4ca331c6da260610b")
+        (None Text)
+    , callHackage "hslua-aeson" "2.2.1"
+    , callHackage "hspec" "2.10.3"
+    , callHackage "hspec-core" "2.10.0.1"
+    , callHackage "hspec-discover" "2.10.0.1"
+    , callHackage "hspec-meta" "2.9.3"
+    , callHackage "http-client" "0.7.13.1"
+    , callHackage "http-date" "0.0.11"
+    , callHackage "http-types" "0.12.3"
+    , callHackage "http2" "3.0.3"
+    , callHackage "incipit-base" "0.3.0.0"
+    , callHackage "incipit-core" "0.3.0.0"
+    , callHackage "indexed-traversable" "0.1.2"
+    , callHackage "indexed-traversable-instances" "0.1.1.1"
+    , callHackage "integer-logarithms" "1.0.3.1"
+    , callHackage "invariant" "0.6"
+    , callHackage "iproute" "1.7.12"
+    , callHackage "lens" "5.2"
+    , callHackage "lens-aeson" "1.2.1"
+    , callHackage "lens-family-th" "0.5.2.1"
+    , callHackage "lifted-async" "0.10.2.1"
+    , callHackage "linear" "1.21.10"
+    , callHackage "lsp-types" "1.6.0.0"
+    , callHackage "lsp" "1.6.0.0"
+    , callHackage "lucid" "2.11.1"
+    , callHackage "net-mqtt" "0.8.2.2"
+    , callHackage "memory" "0.18.0"
+    , callHackage "monoid-subclasses" "1.1.3"
+    , callHackage "network-byte-order" "0.1.6"
+    , callHackage "newtype-generics" "0.6.2"
+    , callHackage "nothunks" "0.1.3"
+    , callHackage "optics-core" "0.4.1"
+    , callHackage "optics-extra" "0.4.2.1"
+    , callHackage "optics-th" "0.4.1"
+    , callHackage "optics" "0.4.2"
+    , callHackage "pandoc" "2.19.2"
+    , callHackage "parallel" "3.2.2.0"
+    , callHackage "pcg-random" "0.1.3.7"
+    , callHackage "polysemy" "1.7.1.0"
+    , callHackage "polysemy-extra" "0.2.1.0"
+    , callHackage "polysemy-kvstore" "0.1.3.0"
+    , callHackage "polysemy-methodology" "0.2.1.0"
+    , callHackage "polysemy-path" "0.2.1.0"
+    , callCabal2nix
+        "polysemy-plugin"
+        "https://github.com/locallycompact/polysemy"
+        (Some "5942a398ef02bbbe94bedd68f8628390ed223107")
+        (Some "polysemy-plugin")
+    , callHackage "polysemy-several" "0.1.1.0"
+    , callHackage "polysemy-time" "0.5.1.0"
+    , callHackage "polysemy-vinyl" "0.1.5.0"
+    , callHackage "polysemy-zoo" "0.8.0.0"
+    , callHackage "postgresql-libpq" "0.9.4.3"
+    , callHackage "postgresql-simple" "0.6.4"
+    , callHackage "pretty-simple" "4.1.1.0"
+    , callHackage "prettyprinter-ansi-terminal" "1.1.3"
+    , callHackage "primitive" "0.7.4.0"
+    , callHackage "proteaaudio-sdl" "0.9.2"
+    , callHackage "quickcheck-dynamic" "2.0.0"
+    , callHackage "quickcheck-instances" "0.3.28"
+    , callHackage "rebase" "1.16"
+    , callHackage "rerebase" "1.15.0.3"
+    , callHackage "relude" "1.1.0.0"
+    , callHackage "retry" "0.9.3.0"
+    , callHackage "rope-utf16-splay" "0.4.0.0"
+    , callHackage "safe-coloured-text" "0.2.0.1"
+    , callHackage "saltine" "0.1.1.1"
+    , callHackage "scotty" "0.12"
+    , callHackage "scientific" "0.3.7.0"
+    , callHackage "sdl2" "2.5.3.3"
+    , callHackage "sdl2-gfx" "0.3.0.0"
+    , callHackage "sdl2-image" "2.1.0.0"
+    , callHackage "sdl2-mixer" "1.2.0.0"
+    , callHackage "sdl2-ttf" "2.1.3"
+    , callHackage "semialign" "1.2.0.1"
+    , callHackage "serialise" "0.2.6.0"
+    , callCabal2nix
+        "servant"
+        "https://github.com/TeofilC/servant"
+        (Some "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc")
+        (Some "servant")
+    , callCabal2nix
+        "servant-client-core"
+        "https://github.com/TeofilC/servant"
+        (Some "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc")
+        (Some "servant-client-core")
+    , callCabal2nix
+        "servant-client"
+        "https://github.com/TeofilC/servant"
+        (Some "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc")
+        (Some "servant-client")
+    , callCabal2nix
+        "servant-foreign"
+        "https://github.com/TeofilC/servant"
+        (Some "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc")
+        (Some "servant-foreign")
+    , callHackage "servant-lucid" "0.9.0.5"
+    , callHackage "servant-multipart" "0.12.1"
+    , callHackage "servant-multipart-api" "0.12.1"
+    , callHackage "shake" "0.19.6"
+    , callHackage "shelly" "1.10.0"
+    , callHackage "singleton-bool" "0.1.6"
+    , callHackage "singletons" "3.0.2"
+    , callHackage "some" "1.0.4"
+    , callHackage "sop-core" "0.5.0.1"
+    , callHackage "split" "0.2.3.3"
+    , callHackage "streaming-commons" "0.2.2.4"
+    , callHackage "string-interpolate" "0.3.1.2"
+    , callHackage "string-qq" "0.0.4"
+    , callHackage "stylish-haskell" "0.14.2.0"
+    , callHackage "syb" "0.7.2.1"
+    , callHackage "sydtest" "0.12.0.1"
+    , callHackage "sydtest-discover" "0.0.0.2"
+    , callCabal2nix
+        "tasty"
+        "https://github.com/UnkindPartition/tasty"
+        (None Text)
+        (Some "core")
+    , callHackage "tasty-discover" "5.0.0"
+    , callCabal2nix
+        "tasty-hedgehog"
+        "https://github.com/locallycompact/tasty-hedgehog"
+        (None Text)
+        (None Text)
+    , callCabal2nix
+        "tasty-hunit"
+        "https://github.com/UnkindPartition/tasty"
+        (None Text)
+        (Some "hunit")
+    , callHackage "tasty-wai" "0.1.2.0"
+    , callHackage "text-zipper" "0.12"
+    , callHackage "these" "1.1.1.1"
+    , callHackage "th-extras" "0.0.0.6"
+    , callHackage "th-lift-instances" "0.1.20"
+    , callHackage "tidal" "1.8.1"
+    , callHackage "time-compat" "1.9.6.1"
+    , callHackage "type-errors-pretty" "0.0.1.2"
+    , callHackage "type-errors" "0.2.0.0"
+    , callHackage "type-equality" "1"
+    , callHackage "unicode-collation" "0.1.3.2"
+    , callHackage "unicode-data" "0.4.0"
+    , callHackage "unicode-transforms" "0.4.0.1"
+    , callHackage "unordered-containers" "0.2.19.1"
+    , callHackage "vault" "0.3.1.5"
+    , callHackage "vector" "0.13.0.0"
+    , callHackage "vector-algorithms" "0.9.0.1"
+    , callHackage "vinyl" "0.14.3"
+    , callHackage "vty" "5.37"
+    , callHackage "wai-middleware-static" "0.9.2"
+    , callHackage "warp" "3.3.22"
+    , callHackage "warp-tls" "3.3.3"
+    , callHackage "witherable" "0.4.2"
+    , callHackage "with-utf8" "1.0.2.3"
+    , callHackage "xml-conduit" "1.9.1.1"
+    ]
diff --git a/overlay.nix b/overlay.nix
index 4d5417a8..7ca97ea6 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -1,456 +1,448 @@
-{ inputs, pkgs }:
-final: prev: with pkgs.haskell.lib; {
-
-  Cabal = prev.callHackage "Cabal" "3.8.1.0" { };
-
-  Cabal-QuickCheck = prev.callCabal2nix "Cabal-QuickCheck" (inputs.Cabal + /Cabal-QuickCheck) { };
+{pkgs, ...}:
 
-  Cabal-described = prev.callCabal2nix "Cabal-described" (inputs.Cabal + /Cabal-described) { };
-
-  Cabal-syntax = prev.callHackage "Cabal-syntax" "3.8.1.0" { };
+final: prev: with pkgs.haskell.lib; {
+    Cabal = prev.callPackage (./pkgs/Cabal.nix) { };
 
-  Cabal-tree-diff = prev.callCabal2nix "Cabal-tree-diff" (inputs.Cabal + /Cabal-tree-diff) { };
+    Cabal-QuickCheck = prev.callPackage (./pkgs/Cabal-QuickCheck.nix) { };
 
-  ChasingBottoms = prev.callHackage "ChasingBottoms" "1.3.1.12" { };
+    Cabal-described = prev.callPackage (./pkgs/Cabal-described.nix) { };
 
-  HTTP = dontCheck (prev.callHackage "HTTP" "4000.4.1" { });
+    Cabal-syntax = prev.callPackage (./pkgs/Cabal-syntax.nix) { };
 
-  JuicyPixels = prev.callHackage "JuicyPixels" "3.3.8" { };
+    Cabal-tree-diff = prev.callPackage (./pkgs/Cabal-tree-diff.nix) { };
 
-  OneTuple = prev.callHackage "OneTuple" "0.3.1" { };
+    ChasingBottoms = prev.callPackage (./pkgs/ChasingBottoms.nix) { };
 
-  OpenGLRaw = prev.callHackage "OpenGLRaw" "3.3.4.1" { };
+    HTTP = prev.callPackage (./pkgs/HTTP.nix) { };
 
-  aeson = prev.callHackage "aeson" "2.1.0.0" { };
+    JuicyPixels = prev.callPackage (./pkgs/JuicyPixels.nix) { };
 
-  ansi-terminal = prev.callHackage "ansi-terminal" "0.11.3" { };
+    OneTuple = prev.callPackage (./pkgs/OneTuple.nix) { };
 
-  apecs = prev.callHackage "apecs" "0.9.4" { };
+    OpenGLRaw = prev.callPackage (./pkgs/OpenGLRaw.nix) { };
 
-  assoc = prev.callHackage "assoc" "1.0.2" { };
+    aeson = prev.callPackage (./pkgs/aeson.nix) { };
 
-  async = prev.callHackage "async" "2.2.4" { };
+    ansi-terminal = prev.callPackage (./pkgs/ansi-terminal.nix) { };
 
-  autodocodec-yaml = prev.callHackage "autodocodec-yaml" "0.2.0.2" { };
+    apecs = prev.callPackage (./pkgs/apecs.nix) { };
 
-  basement = prev.callHackage "basement" "0.0.15" { };
+    assoc = prev.callPackage (./pkgs/assoc.nix) { };
 
-  base64 = dontCheck (doJailbreak (prev.callHackage "base64" "0.4.2.4" { }));
+    async = prev.callPackage (./pkgs/async.nix) { };
 
-  base-compat = prev.callHackage "base-compat" "0.12.2" { };
+    autodocodec-yaml = prev.callPackage (./pkgs/autodocodec-yaml.nix) { };
 
-  base-compat-batteries = prev.callHackage "base-compat-batteries" "0.12.2" { };
+    base-compat = prev.callPackage (./pkgs/base-compat.nix) { };
 
-  base-orphans = prev.callHackage "base-orphans" "0.8.7" { };
+    base-compat-batteries = prev.callPackage (./pkgs/base-compat-batteries.nix) { };
 
-  bimap = prev.callHackage "bimap" "0.5.0" { };
+    base64 = prev.callPackage (./pkgs/base64.nix) { };
 
-  binary-orphans = prev.callHackage "binary-orphans" "1.0.3" { };
+    basement = prev.callPackage (./pkgs/basement.nix) { };
 
-  blaze-markup = prev.callHackage "blaze-markup" "0.8.2.8" { };
+    bimap = prev.callPackage (./pkgs/bimap.nix) { };
 
-  boring = doJailbreak (prev.callHackage "boring" "0.2" { });
+    binary-orphans = prev.callPackage (./pkgs/binary-orphans.nix) { };
 
-  bsb-http-chunked = dontCheck (prev.callHackage "bsb-http-chunked" "0.0.0.4" { });
+    blaze-markup = prev.callPackage (./pkgs/blaze-markup.nix) { };
 
-  brick = prev.callHackage "brick" "1.3" { };
+    boring = prev.callPackage (./pkgs/boring.nix) { };
 
-  bytes = prev.callHackage "bytes" "0.17.2" { };
+    brick = prev.callPackage (./pkgs/brick.nix) { };
 
-  cabal-doctest = prev.callHackage "cabal-doctest" "1.0.9" { };
+    bsb-http-chunked = prev.callPackage (./pkgs/bsb-http-chunked.nix) { };
 
-  cabal-install = doJailbreak (dontCheck (prev.callHackage "cabal-install" "3.8.1.0" { }));
+    bytes = prev.callPackage (./pkgs/bytes.nix) { };
 
-  cabal-install-solver = doJailbreak (prev.callHackage "cabal-install-solver" "3.8.1.0" { });
+    cabal-doctest = prev.callPackage (./pkgs/cabal-doctest.nix) { };
 
-  cborg = doJailbreak (prev.callCabal2nix "cborg" (inputs.cborg + /cborg) { });
+    cabal-install = prev.callPackage (./pkgs/cabal-install.nix) { };
 
-  cborg-json = doJailbreak (prev.callCabal2nix "cborg-json" (inputs.cborg + /cborg-json) { });
+    cabal-install-solver = prev.callPackage (./pkgs/cabal-install-solver.nix) { };
 
-  cereal = prev.callHackage "cereal" "0.5.8.3" { };
+    cborg = prev.callPackage (./pkgs/cborg.nix) { };
 
-  citeproc = prev.callHackage "citeproc" "0.8.0.1" { };
+    cborg-json = prev.callPackage (./pkgs/cborg-json.nix) { };
 
-  co-log-core = doJailbreak (dontCheck (prev.callHackage "co-log-core" "0.3.1.0" { }));
+    cereal = prev.callPackage (./pkgs/cereal.nix) { };
 
-  comonad = prev.callHackage "comonad" "5.0.8" { };
+    citeproc = prev.callPackage (./pkgs/citeproc.nix) { };
 
-  compactable = doJailbreak (dontCheck (prev.callCabal2nix "compactable" inputs.compactable { }));
+    co-log-core = prev.callPackage (./pkgs/co-log-core.nix) { };
 
-  compact = doJailbreak (prev.callHackage "compact" "0.2.0.0" { });
+    comonad = prev.callPackage (./pkgs/comonad.nix) { };
 
-  composite-cassava = doJailbreak (prev.callHackage "composite-cassava" "0.0.3.1" { });
+    compact = prev.callPackage (./pkgs/compact.nix) { };
 
-  composite-base = doJailbreak (prev.callHackage "composite-base" "0.8.1.0" { });
+    compactable = prev.callPackage (./pkgs/compactable.nix) { };
 
-  composite-dhall = prev.callHackage "composite-dhall" "0.1.0.1" { };
+    composite-base = prev.callPackage (./pkgs/composite-base.nix) { };
 
-  composite-lens-extra = prev.callHackage "composite-lens-extra" "0.1.0.0" { };
+    composite-cassava = prev.callPackage (./pkgs/composite-cassava.nix) { };
 
-  composite-tuple = prev.callHackage "composite-tuple" "0.1.2.0" { };
+    composite-dhall = prev.callPackage (./pkgs/composite-dhall.nix) { };
 
-  conduit = dontCheck (prev.callHackage "conduit" "1.3.4.2" { });
+    composite-lens-extra = prev.callPackage (./pkgs/composite-lens-extra.nix) { };
 
-  conduit-extra = dontCheck (prev.callHackage "conduit-extra" "1.3.6" { });
+    composite-tuple = prev.callPackage (./pkgs/composite-tuple.nix) { };
 
-  config-ini = prev.callHackage "config-ini" "0.2.5.0" { };
+    conduit = prev.callPackage (./pkgs/conduit.nix) { };
 
-  constraints = doJailbreak (prev.callHackage "constraints" "0.13.4" { });
+    conduit-extra = prev.callPackage (./pkgs/conduit-extra.nix) { };
 
-  cryptohash-sha1 = prev.callCabal2nix "cryptohash-sha1" inputs.cryptohash-sha1 { };
+    config-ini = prev.callPackage (./pkgs/config-ini.nix) { };
 
-  cryptonite = prev.callHackage "cryptonite" "0.30" { };
+    constraints = prev.callPackage (./pkgs/constraints.nix) { };
 
-  data-fix = doJailbreak (prev.callHackage "data-fix" "0.3.2" { });
+    cryptohash-sha1 = prev.callPackage (./pkgs/cryptohash-sha1.nix) { };
 
-  dec = doJailbreak (prev.callHackage "dec" "0.0.5" { });
+    cryptonite = prev.callPackage (./pkgs/cryptonite.nix) { };
 
-  dhall = doJailbreak (prev.callHackage "dhall" "1.41.2" { });
+    data-fix = prev.callPackage (./pkgs/data-fix.nix) { };
 
-  dimensional = dontCheck (prev.callHackage "dimensional" "1.5" { });
+    dec = prev.callPackage (./pkgs/dec.nix) { };
 
-  doctest = dontCheck (prev.callCabal2nix "doctest" inputs.doctest { });
+    dhall = prev.callPackage (./pkgs/dhall.nix) { };
 
-  double-conversion = prev.callCabal2nix "double-conversion" inputs.double-conversion { };
+    dimensional = prev.callPackage (./pkgs/dimensional.nix) { };
 
-  ed25519 = dontCheck (prev.callCabal2nix "ed25519" inputs.ed25519 { });
+    doctest = prev.callPackage (./pkgs/doctest.nix) { };
 
-  email-validate = doJailbreak (dontCheck (prev.callHackage "email-validate" "2.3.2.16" { }));
+    double-conversion = prev.callPackage (./pkgs/double-conversion.nix) { };
 
-  ema = prev.callCabal2nix "ema" inputs.ema { };
+    ed25519 = prev.callPackage (./pkgs/ed25519.nix) { };
 
-  effectful-cache = doJailbreak (prev.callCabal2nix "effectful-cache" inputs.cache-effectful { });
+    effectful = prev.callPackage (./pkgs/effectful.nix) { };
 
-  effectful-core = prev.callHackage "effectful-core" "2.1.0.0" { };
+    effectful-cache = prev.callPackage (./pkgs/effectful-cache.nix) { };
 
-  effectful-th = prev.callHackage "effectful-th" "1.0.0.0" { };
+    effectful-core = prev.callPackage (./pkgs/effectful-core.nix) { };
 
-  effectful = prev.callHackage "effectful" "2.1.0.0" { };
+    effectful-th = prev.callPackage (./pkgs/effectful-th.nix) { };
 
-  extra = dontCheck (prev.callHackage "extra" "1.7.12" { });
+    ema = prev.callPackage (./pkgs/ema.nix) { };
 
-  fcf-containers = dontCheck (prev.callHackage "fcf-containers" "0.7.1" { });
+    email-validate = prev.callPackage (./pkgs/email-validate.nix) { };
 
-  finite-field = dontCheck (prev.callHackage "finite-field" "0.10.0" { });
+    extra = prev.callPackage (./pkgs/extra.nix) { };
 
-  first-class-families = doJailbreak (dontCheck (prev.callHackage "first-class-families" "0.8.0.1" { }));
+    fcf-containers = prev.callPackage (./pkgs/fcf-containers.nix) { };
 
-  foldl = dontCheck (prev.callHackage "foldl" "1.4.12" { });
+    finite-field = prev.callPackage (./pkgs/finite-field.nix) { };
 
-  fourmolu = doJailbreak (prev.callHackage "fourmolu" "0.8.2.0" { });
+    first-class-families = prev.callPackage (./pkgs/first-class-families.nix) { };
 
-  foundation = prev.callHackage "foundation" "0.0.29" { };
+    foldl = prev.callPackage (./pkgs/foldl.nix) { };
 
-  generic-lens-core = prev.callHackage "generic-lens-core" "2.2.1.0" { };
+    foundation = prev.callPackage (./pkgs/foundation.nix) { };
 
-  generic-lens-lite = doJailbreak (prev.callHackage "generic-lens-lite" "0.1" { });
+    fourmolu = prev.callPackage (./pkgs/fourmolu.nix) { };
 
-  generic-optics-lite = doJailbreak (prev.callHackage "generic-optics-lite" "0.1" { });
+    generic-lens-core = prev.callPackage (./pkgs/generic-lens-core.nix) { };
 
-  generic-optics = dontCheck (doJailbreak (prev.callHackage "generic-optics" "2.2.1.0" { }));
+    generic-lens-lite = prev.callPackage (./pkgs/generic-lens-lite.nix) { };
 
-  generics-sop = prev.callHackage "generics-sop" "0.5.1.2" { };
+    generic-optics = prev.callPackage (./pkgs/generic-optics.nix) { };
 
-  genvalidity-aeson = prev.callHackage "genvalidity-aeson" "1.0.0.1" { };
+    generic-optics-lite = prev.callPackage (./pkgs/generic-optics-lite.nix) { };
 
-  genvalidity-bytestring = prev.callHackage "genvalidity-bytestring" "1.0.0.1" { };
+    generics-sop = prev.callPackage (./pkgs/generics-sop.nix) { };
 
-  genvalidity-hspec = prev.callHackage "genvalidity-hspec" "1.0.0.2" { };
+    genvalidity-aeson = prev.callPackage (./pkgs/genvalidity-aeson.nix) { };
 
-  genvalidity-scientific = prev.callHackage "genvalidity-scientific" "1.0.0.0" { };
+    genvalidity-bytestring = prev.callPackage (./pkgs/genvalidity-bytestring.nix) { };
 
-  genvalidity-sydtest-aeson = prev.callHackage "genvalidity-sydtest-aeson" "1.0.0.0" { };
+    genvalidity-hspec = prev.callPackage (./pkgs/genvalidity-hspec.nix) { };
 
-  genvalidity-text = prev.callHackage "genvalidity-text" "1.0.0.1" { };
+    genvalidity-scientific = prev.callPackage (./pkgs/genvalidity-scientific.nix) { };
 
-  genvalidity-unordered-containers = prev.callHackage "genvalidity-unordered-containers" "1.0.0.0" { };
+    genvalidity-sydtest-aeson = prev.callPackage (./pkgs/genvalidity-sydtest-aeson.nix) { };
 
-  genvalidity-vector = prev.callHackage "genvalidity-vector" "1.0.0.0" { };
+    genvalidity-text = prev.callPackage (./pkgs/genvalidity-text.nix) { };
 
-  ghc-check = dontHaddock (prev.callHackage "ghc-check" "0.5.0.8" { });
+    genvalidity-unordered-containers = prev.callPackage (./pkgs/genvalidity-unordered-containers.nix) { };
 
-  ghc-byteorder = doJailbreak (prev.callHackage "ghc-byteorder" "4.11.0.0.10" { });
+    genvalidity-vector = prev.callPackage (./pkgs/genvalidity-vector.nix) { };
 
-  ghc-exactprint = prev.callCabal2nix "ghc-exactprint" inputs.ghc-exactprint { };
+    ghc-byteorder = prev.callPackage (./pkgs/ghc-byteorder.nix) { };
 
-  ghc-lib-parser = doJailbreak (prev.callHackage "ghc-lib-parser" "9.4.2.20220822" { });
+    ghc-check = prev.callPackage (./pkgs/ghc-check.nix) { };
 
-  ghc-lib-parser-ex = doJailbreak (prev.callHackage "ghc-lib-parser-ex" "9.4.0.0" { });
+    ghc-exactprint = prev.callPackage (./pkgs/ghc-exactprint.nix) { };
 
-  ghc-paths = prev.callHackage "ghc-paths" "0.1.0.12" { };
+    ghc-lib-parser = prev.callPackage (./pkgs/ghc-lib-parser.nix) { };
 
-  ghc-tcplugins-extra = prev.callHackage "ghc-tcplugins-extra" "0.4.3" { };
+    ghc-lib-parser-ex = prev.callPackage (./pkgs/ghc-lib-parser-ex.nix) { };
 
-  hackage-security = doJailbreak (prev.callHackage "hackage-security" "0.6.2.2" { });
+    ghc-paths = prev.callPackage (./pkgs/ghc-paths.nix) { };
 
-  hashable = prev.callHackage "hashable" "1.4.1.0" { };
+    ghc-tcplugins-extra = prev.callPackage (./pkgs/ghc-tcplugins-extra.nix) { };
 
-  haskell-src-meta = prev.callCabal2nix "haskell-src-meta" (inputs.haskell-src-meta + /haskell-src-meta) { };
+    hackage-security = prev.callPackage (./pkgs/hackage-security.nix) { };
 
-  hashing = doJailbreak (prev.callHackage "hashing" "0.1.0.1" { });
+    hashable = prev.callPackage (./pkgs/hashable.nix) { };
 
-  hashtables = doJailbreak (prev.callHackage "hashtables" "1.3" { });
+    hashing = prev.callPackage (./pkgs/hashing.nix) { };
 
-  hedgehog = dontHaddock (prev.callHackage "hedgehog" "1.2" { });
+    hashtables = prev.callPackage (./pkgs/hashtables.nix) { };
 
-  hedgehog-golden = dontHaddock (prev.callCabal2nix "hedgehog-golden" inputs.hedgehog-golden { });
+    haskell-src-meta = prev.callPackage (./pkgs/haskell-src-meta.nix) { };
 
-  hedgehog-quickcheck = doJailbreak (prev.callHackage "hedgehog-quickcheck" "0.1.1" { });
+    hedgehog = prev.callPackage (./pkgs/hedgehog.nix) { };
 
-  hie-compat = prev.callHackage "hie-compat" "0.3.0.0" { };
+    hedgehog-golden = prev.callPackage (./pkgs/hedgehog-golden.nix) { };
 
-  hiedb = dontCheck (doJailbreak (prev.callHackage "hiedb" "0.4.2.0" { }));
+    hie-compat = prev.callPackage (./pkgs/hie-compat.nix) { };
 
-  hlint = prev.callCabal2nix "hlint" inputs.hlint { };
+    hiedb = prev.callPackage (./pkgs/hiedb.nix) { };
 
-  hnix = doJailbreak (dontCheck (prev.callCabal2nix "hnix" inputs.hnix { }));
+    hlint = prev.callPackage (./pkgs/hlint.nix) { };
 
-  hourglass = dontCheck (prev.callHackage "hourglass" "0.2.12" { });
+    hnix = prev.callPackage (./pkgs/hnix.nix) { };
 
-  hslua-aeson = doJailbreak (prev.callHackage "hslua-aeson" "2.2.1" { });
+    hourglass = prev.callPackage (./pkgs/hourglass.nix) { };
 
-  hspec = doJailbreak (prev.callHackage "hspec" "2.10.3" { });
+    hslua-aeson = prev.callPackage (./pkgs/hslua-aeson.nix) { };
 
-  hspec-core = dontCheck (prev.callHackage "hspec-core" "2.10.0.1" { });
+    hspec = prev.callPackage (./pkgs/hspec.nix) { };
 
-  hspec-discover = dontCheck (prev.callHackage "hspec-discover" "2.10.0.1" { });
+    hspec-core = prev.callPackage (./pkgs/hspec-core.nix) { };
 
-  hspec-meta = dontCheck (prev.callHackage "hspec-meta" "2.9.3" { });
+    hspec-discover = prev.callPackage (./pkgs/hspec-discover.nix) { };
 
-  http-client = dontCheck (prev.callHackage "http-client" "0.7.13.1" { });
+    hspec-meta = prev.callPackage (./pkgs/hspec-meta.nix) { };
 
-  http-date = dontCheck (prev.callHackage "http-date" "0.0.11" {});
+    http-client = prev.callPackage (./pkgs/http-client.nix) { };
 
-  http-types = dontCheck (prev.callHackage "http-types" "0.12.3" { });
+    http-date = prev.callPackage (./pkgs/http-date.nix) { };
 
-  http2 = dontCheck (prev.callHackage "http2" "3.0.3" { });
+    http-types = prev.callPackage (./pkgs/http-types.nix) { };
 
-  incipit-base = doJailbreak (prev.callHackage "incipit-base" "0.3.0.0" { });
+    http2 = prev.callPackage (./pkgs/http2.nix) { };
 
-  incipit-core = doJailbreak (prev.callHackage "incipit-core" "0.3.0.0" { });
+    incipit-base = prev.callPackage (./pkgs/incipit-base.nix) { };
 
-  indexed-traversable = doJailbreak (final.callHackage "indexed-traversable" "0.1.2" { });
+    incipit-core = prev.callPackage (./pkgs/incipit-core.nix) { };
 
-  indexed-traversable-instances = doJailbreak (dontCheck (prev.callHackage "indexed-traversable-instances" "0.1.1.1" { }));
+    indexed-traversable = prev.callPackage (./pkgs/indexed-traversable.nix) { };
 
-  integer-logarithms = final.callHackage "integer-logarithms" "1.0.3.1" { };
+    indexed-traversable-instances = prev.callPackage (./pkgs/indexed-traversable-instances.nix) { };
 
-  invariant = doJailbreak (prev.callHackage "invariant" "0.6" { });
+    integer-logarithms = prev.callPackage (./pkgs/integer-logarithms.nix) { };
 
-  iproute = dontCheck (prev.callHackage "iproute" "1.7.12" { });
+    invariant = prev.callPackage (./pkgs/invariant.nix) { };
 
-  lens = doJailbreak (prev.callHackage "lens" "5.2" { });
+    iproute = prev.callPackage (./pkgs/iproute.nix) { };
 
-  lens-aeson = prev.callHackage "lens-aeson" "1.2.1" { };
+    lens = prev.callPackage (./pkgs/lens.nix) { };
 
-  lens-family-th = doJailbreak (prev.callHackage "lens-family-th" "0.5.2.1" { });
+    lens-aeson = prev.callPackage (./pkgs/lens-aeson.nix) { };
 
-  lifted-async = doJailbreak (prev.callHackage "lifted-async" "0.10.2.1" { });
+    lens-family-th = prev.callPackage (./pkgs/lens-family-th.nix) { };
 
-  linear = doJailbreak (prev.callHackage "linear" "1.21.10" { });
+    lifted-async = prev.callPackage (./pkgs/lifted-async.nix) { };
 
-  lsp-types = prev.callHackage "lsp-types" "1.6.0.0" { };
+    linear = prev.callPackage (./pkgs/linear.nix) { };
 
-  lsp = prev.callHackage "lsp" "1.6.0.0" { };
+    lsp = prev.callPackage (./pkgs/lsp.nix) { };
 
-  lucid = doJailbreak (prev.callHackage "lucid" "2.11.1" { });
+    lsp-types = prev.callPackage (./pkgs/lsp-types.nix) { };
 
-  memory = prev.callCabal2nix "memory" inputs.memory { };
+    lucid = prev.callPackage (./pkgs/lucid.nix) { };
 
-  net-mqtt = doJailbreak (prev.callHackage "net-mqtt" "0.8.2.2" { });
+    memory = prev.callPackage (./pkgs/memory.nix) { };
 
-  monoid-subclasses = doJailbreak (prev.callHackage "monoid-subclasses" "1.1.3" { });
+    monoid-subclasses = prev.callPackage (./pkgs/monoid-subclasses.nix) { };
 
-  network-byte-order = dontCheck (prev.callHackage "network-byte-order" "0.1.6" { });
+    net-mqtt = prev.callPackage (./pkgs/net-mqtt.nix) { };
 
-  newtype-generics = doJailbreak (prev.callHackage "newtype-generics" "0.6.2" { });
+    network-byte-order = prev.callPackage (./pkgs/network-byte-order.nix) { };
 
-  nothunks = dontCheck (prev.callHackage "nothunks" "0.1.3" { });
+    newtype-generics = prev.callPackage (./pkgs/newtype-generics.nix) { };
 
-  optics-core = prev.callHackage "optics-core" "0.4.1" { };
+    nothunks = prev.callPackage (./pkgs/nothunks.nix) { };
 
-  optics-extra = doJailbreak (prev.callHackage "optics-extra" "0.4.2.1" { });
+    optics = prev.callPackage (./pkgs/optics.nix) { };
 
-  optics-th = prev.callHackage "optics-th" "0.4.1" { };
+    optics-core = prev.callPackage (./pkgs/optics-core.nix) { };
 
-  optics = doJailbreak (dontCheck (prev.callHackage "optics" "0.4.2" { }));
+    optics-extra = prev.callPackage (./pkgs/optics-extra.nix) { };
 
-  pandoc = doJailbreak (prev.callHackage "pandoc" "2.19.2" { });
+    optics-th = prev.callPackage (./pkgs/optics-th.nix) { };
 
-  parallel = doJailbreak (final.callHackage "parallel" "3.2.2.0" { });
+    pandoc = prev.callPackage (./pkgs/pandoc.nix) { };
 
-  pcg-random = dontCheck (prev.callHackage "pcg-random" "0.1.3.7" { });
+    parallel = prev.callPackage (./pkgs/parallel.nix) { };
 
-  polysemy = dontCheck (prev.callHackage "polysemy" "1.7.1.0" { });
+    pcg-random = prev.callPackage (./pkgs/pcg-random.nix) { };
 
-  polysemy-extra = prev.callHackage "polysemy-extra" "0.2.1.0" { };
+    polysemy = prev.callPackage (./pkgs/polysemy.nix) { };
 
-  polysemy-kvstore = prev.callHackage "polysemy-kvstore" "0.1.3.0" { };
+    polysemy-extra = prev.callPackage (./pkgs/polysemy-extra.nix) { };
 
-  polysemy-methodology = doJailbreak (prev.callHackage "polysemy-methodology" "0.2.1.0" { });
+    polysemy-kvstore = prev.callPackage (./pkgs/polysemy-kvstore.nix) { };
 
-  polysemy-path = doJailbreak (prev.callHackage "polysemy-path" "0.2.1.0" { });
+    polysemy-methodology = prev.callPackage (./pkgs/polysemy-methodology.nix) { };
 
-  polysemy-plugin = dontCheck (doJailbreak (prev.callCabal2nix "polysemy-plugin" (inputs.polysemy + /polysemy-plugin) { }));
+    polysemy-path = prev.callPackage (./pkgs/polysemy-path.nix) { };
 
-  polysemy-several = prev.callHackage "polysemy-several" "0.1.1.0" { };
+    polysemy-plugin = prev.callPackage (./pkgs/polysemy-plugin.nix) { };
 
-  polysemy-time = dontCheck (prev.callHackage "polysemy-time" "0.5.1.0" { });
+    polysemy-several = prev.callPackage (./pkgs/polysemy-several.nix) { };
 
-  polysemy-vinyl = doJailbreak (prev.callHackage "polysemy-vinyl" "0.1.5.0" { });
+    polysemy-time = prev.callPackage (./pkgs/polysemy-time.nix) { };
 
-  polysemy-zoo = doJailbreak (dontCheck (prev.callHackage "polysemy-zoo" "0.8.0.0" { }));
+    polysemy-vinyl = prev.callPackage (./pkgs/polysemy-vinyl.nix) { };
 
-  postgresql-libpq = doJailbreak (prev.callHackage "postgresql-libpq" "0.9.4.3" { });
+    polysemy-zoo = prev.callPackage (./pkgs/polysemy-zoo.nix) { };
 
-  postgresql-simple = doJailbreak (prev.callHackage "postgresql-simple" "0.6.4" { });
+    postgresql-libpq = prev.callPackage (./pkgs/postgresql-libpq.nix) { };
 
-  pretty-simple = dontCheck (prev.callHackage "pretty-simple" "4.1.1.0" { });
+    postgresql-simple = prev.callPackage (./pkgs/postgresql-simple.nix) { };
 
-  prettyprinter-ansi-terminal = dontCheck (prev.callHackage "prettyprinter-ansi-terminal" "1.1.3" { });
+    pretty-simple = prev.callPackage (./pkgs/pretty-simple.nix) { };
 
-  primitive = dontCheck (prev.callHackage "primitive" "0.7.4.0" { });
+    prettyprinter-ansi-terminal = prev.callPackage (./pkgs/prettyprinter-ansi-terminal.nix) { };
 
-  proteaaudio-sdl = doJailbreak (prev.callHackage "proteaaudio-sdl" "0.9.2" { });
+    primitive = prev.callPackage (./pkgs/primitive.nix) { };
 
-  quickcheck-dynamic = prev.callCabal2nix "quickcheck-dynamic" (inputs.quickcheck-dynamic + /quickcheck-dynamic) { };
+    proteaaudio-sdl = prev.callPackage (./pkgs/proteaaudio-sdl.nix) { };
 
-  quickcheck-instances = doJailbreak (prev.callHackage "quickcheck-instances" "0.3.28" { });
+    quickcheck-dynamic = prev.callPackage (./pkgs/quickcheck-dynamic.nix) { };
 
-  rebase = doJailbreak (prev.callHackage "rebase" "1.16" { });
+    quickcheck-instances = prev.callPackage (./pkgs/quickcheck-instances.nix) { };
 
-  rerebase = doJailbreak (prev.callHackage "rerebase" "1.15.0.3" { });
+    rebase = prev.callPackage (./pkgs/rebase.nix) { };
 
-  relude = doJailbreak (dontCheck (prev.callHackage "relude" "1.1.0.0" { }));
+    relude = prev.callPackage (./pkgs/relude.nix) { };
 
-  retry = dontCheck (prev.callHackage "retry" "0.9.3.0" { });
+    rerebase = prev.callPackage (./pkgs/rerebase.nix) { };
 
-  rope-utf16-splay = prev.callHackage "rope-utf16-splay" "0.4.0.0" { };
+    retry = prev.callPackage (./pkgs/retry.nix) { };
 
-  safe-coloured-text = prev.callHackage "safe-coloured-text" "0.2.0.1" { };
+    rope-utf16-splay = prev.callPackage (./pkgs/rope-utf16-splay.nix) { };
 
-  saltine = addPkgconfigDepend (doJailbreak (prev.callHackage "saltine" "0.1.1.1" { })) pkgs.libsodium;
+    safe-coloured-text = prev.callPackage (./pkgs/safe-coloured-text.nix) { };
 
-  scotty = doJailbreak (prev.callHackage "scotty" "0.12" { });
+    saltine = prev.callPackage (./pkgs/saltine.nix) { };
 
-  scientific = prev.callHackage "scientific" "0.3.7.0" { };
+    scientific = prev.callPackage (./pkgs/scientific.nix) { };
 
-  sdl2 = doJailbreak (dontCheck (final.callHackage "sdl2" "2.5.3.3" { }));
+    scotty = prev.callPackage (./pkgs/scotty.nix) { };
 
-  sdl2-gfx = prev.callHackage "sdl2-gfx" "0.3.0.0" { };
+    sdl2 = prev.callPackage (./pkgs/sdl2.nix) { };
 
-  sdl2-image = prev.callHackage "sdl2-image" "2.1.0.0" { };
+    sdl2-gfx = prev.callPackage (./pkgs/sdl2-gfx.nix) { };
 
-  sdl2-mixer = prev.callHackage "sdl2-mixer" "1.2.0.0" { };
+    sdl2-image = prev.callPackage (./pkgs/sdl2-image.nix) { };
 
-  sdl2-ttf = prev.callHackage "sdl2-ttf" "2.1.3" { };
+    sdl2-mixer = prev.callPackage (./pkgs/sdl2-mixer.nix) { };
 
-  semialign = doJailbreak (prev.callHackage "semialign" "1.2.0.1" { });
+    sdl2-ttf = prev.callPackage (./pkgs/sdl2-ttf.nix) { };
 
-  servant = doJailbreak (prev.callCabal2nix "servant" (inputs.servant + /servant) { });
+    semialign = prev.callPackage (./pkgs/semialign.nix) { };
 
-  servant-server = doJailbreak (prev.callCabal2nix "servant-server" (inputs.servant + /servant-server) { });
+    serialise = prev.callPackage (./pkgs/serialise.nix) { };
 
-  servant-client-core = doJailbreak (prev.callCabal2nix "servant-client-core" (inputs.servant + /servant-client-core) { });
+    servant = prev.callPackage (./pkgs/servant.nix) { };
 
-  servant-client = doJailbreak (prev.callCabal2nix "servant-client" (inputs.servant + /servant-client) { });
+    servant-client = prev.callPackage (./pkgs/servant-client.nix) { };
 
-  servant-foreign = doJailbreak (prev.callCabal2nix "servant-foreign" (inputs.servant + /servant-foreign) { });
+    servant-client-core = prev.callPackage (./pkgs/servant-client-core.nix) { };
 
-  servant-lucid = doJailbreak (prev.callHackage "servant-lucid" "0.9.0.5" { });
+    servant-foreign = prev.callPackage (./pkgs/servant-foreign.nix) { };
 
-  servant-multipart = doJailbreak (prev.callHackage "servant-multipart" "0.12.1" { });
+    servant-lucid = prev.callPackage (./pkgs/servant-lucid.nix) { };
 
-  servant-multipart-api = doJailbreak (prev.callHackage "servant-multipart-api" "0.12.1" { });
+    servant-multipart = prev.callPackage (./pkgs/servant-multipart.nix) { };
 
-  serialise = doJailbreak (prev.callCabal2nix "serialise" (inputs.cborg + /serialise) { });
+    servant-multipart-api = prev.callPackage (./pkgs/servant-multipart-api.nix) { };
 
-  shake = dontCheck (prev.callHackage "shake" "0.19.6" { });
+    shake = prev.callPackage (./pkgs/shake.nix) { };
 
-  shelly = dontCheck (prev.callHackage "shelly" "1.10.0" { });
+    shelly = prev.callPackage (./pkgs/shelly.nix) { };
 
-  singleton-bool = doJailbreak (prev.callHackage "singleton-bool" "0.1.6" { });
+    singleton-bool = prev.callPackage (./pkgs/singleton-bool.nix) { };
 
-  singletons = prev.callHackage "singletons" "3.0.2" { };
+    singletons = prev.callPackage (./pkgs/singletons.nix) { };
 
-  some = doJailbreak (prev.callHackage "some" "1.0.4" { });
+    some = prev.callPackage (./pkgs/some.nix) { };
 
-  sop-core = doJailbreak (prev.callHackage "sop-core" "0.5.0.1" { });
+    sop-core = prev.callPackage (./pkgs/sop-core.nix) { };
 
-  split = doJailbreak (prev.callHackage "split" "0.2.3.3" { });
+    split = prev.callPackage (./pkgs/split.nix) { };
 
-  splitmix = doJailbreak (dontCheck (prev.splitmix));
+    streaming-commons = prev.callPackage (./pkgs/streaming-commons.nix) { };
 
-  streaming-commons = dontCheck (prev.callHackage "streaming-commons" "0.2.2.4" { });
+    string-interpolate = prev.callPackage (./pkgs/string-interpolate.nix) { };
 
-  string-interpolate = prev.callHackage "string-interpolate" "0.3.1.2" { };
+    string-qq = prev.callPackage (./pkgs/string-qq.nix) { };
 
-  string-qq = doJailbreak (prev.callHackage "string-qq" "0.0.4" { });
+    stylish-haskell = prev.callPackage (./pkgs/stylish-haskell.nix) { };
 
-  stylish-haskell = doJailbreak (prev.callHackage "stylish-haskell" "0.14.2.0" { });
+    syb = prev.callPackage (./pkgs/syb.nix) { };
 
-  syb = dontCheck (prev.callHackage "syb" "0.7.2.1" { });
+    sydtest = prev.callPackage (./pkgs/sydtest.nix) { };
 
-  sydtest = dontCheck (prev.callCabal2nix "sydtest" (inputs.sydtest + /sydtest) { });
+    sydtest-discover = prev.callPackage (./pkgs/sydtest-discover.nix) { };
 
-  sydtest-discover = prev.callCabal2nix "sydtest-discover" (inputs.sydtest + /sydtest-discover) { };
+    tasty = prev.callPackage (./pkgs/tasty.nix) { };
 
-  tasty = doJailbreak (prev.callCabal2nix "tasty" (inputs.tasty + /core) { });
+    tasty-discover = prev.callPackage (./pkgs/tasty-discover.nix) { };
 
-  tasty-discover = doJailbreak (prev.callHackage "tasty-discover" "5.0.0" { });
+    tasty-hedgehog = prev.callPackage (./pkgs/tasty-hedgehog.nix) { };
 
-  tasty-hedgehog = doJailbreak (prev.callCabal2nix "tasty-hedgehog" inputs.tasty-hedgehog { });
+    tasty-hunit = prev.callPackage (./pkgs/tasty-hunit.nix) { };
 
-  tasty-hunit = doJailbreak (prev.callCabal2nix "tasty" (inputs.tasty + /hunit) { });
+    tasty-wai = prev.callPackage (./pkgs/tasty-wai.nix) { };
 
-  tasty-wai = doJailbreak (prev.callHackage "tasty-wai" "0.1.2.0" { });
+    text-zipper = prev.callPackage (./pkgs/text-zipper.nix) { };
 
-  text-zipper = prev.callHackage "text-zipper" "0.12" { };
+    th-extras = prev.callPackage (./pkgs/th-extras.nix) { };
 
-  these = doJailbreak (prev.callHackage "these" "1.1.1.1" { });
+    th-lift-instances = prev.callPackage (./pkgs/th-lift-instances.nix) { };
 
-  th-extras = doJailbreak (prev.callHackage "th-extras" "0.0.0.6" { });
+    these = prev.callPackage (./pkgs/these.nix) { };
 
-  th-lift-instances = prev.callHackage "th-lift-instances" "0.1.20" { };
+    tidal = prev.callPackage (./pkgs/tidal.nix) { };
 
-  tidal = doJailbreak (prev.callHackage "tidal" "1.8.1" { });
+    time-compat = prev.callPackage (./pkgs/time-compat.nix) { };
 
-  time-compat = doJailbreak (prev.callHackage "time-compat" "1.9.6.1" { });
+    type-equality = prev.callPackage (./pkgs/type-equality.nix) { };
 
-  type-errors-pretty = dontCheck (doJailbreak (prev.callHackage "type-errors-pretty" "0.0.1.2" { }));
+    type-errors = prev.callPackage (./pkgs/type-errors.nix) { };
 
-  type-errors = dontCheck (doJailbreak (prev.callHackage "type-errors" "0.2.0.0" { }));
+    type-errors-pretty = prev.callPackage (./pkgs/type-errors-pretty.nix) { };
 
-  type-equality = doJailbreak (prev.callHackage "type-equality" "1" { });
+    unicode-collation = prev.callPackage (./pkgs/unicode-collation.nix) { };
 
-  unicode-data = dontCheck (prev.callCabal2nix "unicode-data" (inputs.unicode-data + /unicode-data) { });
+    unicode-data = prev.callPackage (./pkgs/unicode-data.nix) { };
 
-  unicode-collation = doJailbreak (prev.callHackage "unicode-collation" "0.1.3.2" { });
+    unicode-transforms = prev.callPackage (./pkgs/unicode-transforms.nix) { };
 
-  unicode-transforms = doJailbreak (dontCheck (prev.callHackage "unicode-transforms" "0.4.0.1" { }));
+    unordered-containers = prev.callPackage (./pkgs/unordered-containers.nix) { };
 
-  unordered-containers = doJailbreak (prev.callHackage "unordered-containers" "0.2.19.1" { });
+    vault = prev.callPackage (./pkgs/vault.nix) { };
 
-  vault = doJailbreak (prev.callHackage "vault" "0.3.1.5" { });
+    vector = prev.callPackage (./pkgs/vector.nix) { };
 
-  vector = dontCheck (prev.callHackage "vector" "0.13.0.0" { });
+    vector-algorithms = prev.callPackage (./pkgs/vector-algorithms.nix) { };
 
-  vector-algorithms = prev.callHackage "vector-algorithms" "0.9.0.1" { };
+    vinyl = prev.callPackage (./pkgs/vinyl.nix) { };
 
-  vinyl = final.callHackage "vinyl" "0.14.3" { };
+    vty = prev.callPackage (./pkgs/vty.nix) { };
 
-  vty = prev.callHackage "vty" "5.37" { };
+    wai-middleware-static = prev.callPackage (./pkgs/wai-middleware-static.nix) { };
 
-  wai-middleware-static = prev.callHackage "wai-middleware-static" "0.9.2" { };
+    warp = prev.callPackage (./pkgs/warp.nix) { };
 
-  warp = dontCheck (prev.callHackage "warp" "3.3.22" { });
+    warp-tls = prev.callPackage (./pkgs/warp-tls.nix) { };
 
-  warp-tls = dontCheck (prev.callHackage "warp-tls" "3.3.3" { });
+    with-utf8 = prev.callPackage (./pkgs/with-utf8.nix) { };
 
-  witherable = dontCheck (prev.callHackage "witherable" "0.4.2" { });
-  
-  with-utf8 = doJailbreak (prev.callHackage "with-utf8" "1.0.2.3" { });
+    witherable = prev.callPackage (./pkgs/witherable.nix) { };
 
-  xml-conduit = dontCheck (prev.callHackage "xml-conduit" "1.9.1.1" { });
+    xml-conduit = prev.callPackage (./pkgs/xml-conduit.nix) { };
 
 }
diff --git a/pkgs/Cabal-QuickCheck.nix b/pkgs/Cabal-QuickCheck.nix
new file mode 100644
index 00000000..50b1ba0d
--- /dev/null
+++ b/pkgs/Cabal-QuickCheck.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, bytestring, Cabal, Cabal-syntax, fetchgit
+, lib, QuickCheck
+}:
+mkDerivation {
+  pname = "Cabal-QuickCheck";
+  version = "3.9.0.0";
+  src = fetchgit {
+    url = "https://gitlab.haskell.org/ghc/packages/Cabal";
+    sha256 = "1h6bzv5zdbjhmrnqa3n14s1zybjxvspiqq228ksqcm2jfs4mbf96";
+    rev = "06cbab69946768e766447b66a7ea168469a2c1a9";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/Cabal-QuickCheck/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    base bytestring Cabal Cabal-syntax QuickCheck
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "QuickCheck instances for types in Cabal";
+  license = "unknown";
+}
\ No newline at end of file
diff --git a/pkgs/Cabal-described.nix b/pkgs/Cabal-described.nix
new file mode 100644
index 00000000..d153d031
--- /dev/null
+++ b/pkgs/Cabal-described.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, base, Cabal, Cabal-syntax, containers, fetchgit
+, lib, pretty, QuickCheck, rere, tasty, tasty-quickcheck
+, transformers
+}:
+mkDerivation {
+  pname = "Cabal-described";
+  version = "3.9.0.0";
+  src = fetchgit {
+    url = "https://gitlab.haskell.org/ghc/packages/Cabal";
+    sha256 = "1h6bzv5zdbjhmrnqa3n14s1zybjxvspiqq228ksqcm2jfs4mbf96";
+    rev = "06cbab69946768e766447b66a7ea168469a2c1a9";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/Cabal-described/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    base Cabal Cabal-syntax containers pretty QuickCheck rere tasty
+    tasty-quickcheck transformers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Described functionality for types in Cabal";
+  license = "unknown";
+}
\ No newline at end of file
diff --git a/pkgs/Cabal-syntax.nix b/pkgs/Cabal-syntax.nix
new file mode 100644
index 00000000..41ae128d
--- /dev/null
+++ b/pkgs/Cabal-syntax.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, array, base, binary, bytestring, containers
+, deepseq, directory, fetchgit, filepath, lib, mtl, parsec, pretty
+, text, time, transformers, unix
+}:
+mkDerivation {
+  pname = "Cabal-syntax";
+  version = "3.9.0.0";
+  src = fetchgit {
+    url = "https://gitlab.haskell.org/ghc/packages/Cabal";
+    sha256 = "1h6bzv5zdbjhmrnqa3n14s1zybjxvspiqq228ksqcm2jfs4mbf96";
+    rev = "06cbab69946768e766447b66a7ea168469a2c1a9";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/Cabal-syntax/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    array base binary bytestring containers deepseq directory filepath
+    mtl parsec pretty text time transformers unix
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://www.haskell.org/cabal/";
+  description = "A library for working with .cabal files";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/Cabal-tree-diff.nix b/pkgs/Cabal-tree-diff.nix
new file mode 100644
index 00000000..8a9d1397
--- /dev/null
+++ b/pkgs/Cabal-tree-diff.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, Cabal, Cabal-syntax, fetchgit, lib, tree-diff
+}:
+mkDerivation {
+  pname = "Cabal-tree-diff";
+  version = "3.9.0.0";
+  src = fetchgit {
+    url = "https://gitlab.haskell.org/ghc/packages/Cabal";
+    sha256 = "1h6bzv5zdbjhmrnqa3n14s1zybjxvspiqq228ksqcm2jfs4mbf96";
+    rev = "06cbab69946768e766447b66a7ea168469a2c1a9";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/Cabal-tree-diff/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [ base Cabal Cabal-syntax tree-diff ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "QuickCheck instances for types in Cabal";
+  license = "unknown";
+}
\ No newline at end of file
diff --git a/pkgs/Cabal.nix b/pkgs/Cabal.nix
new file mode 100644
index 00000000..e1287a05
--- /dev/null
+++ b/pkgs/Cabal.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, array, base, bytestring, Cabal-syntax, containers
+, deepseq, directory, filepath, lib, mtl, parsec, pretty, process
+, text, time, transformers, unix
+}:
+mkDerivation {
+  pname = "Cabal";
+  version = "3.8.1.0";
+  sha256 = "7464cbe6c2f3d7e5d0232023a1a7330621f8b24853cb259fc89a2af85b736608";
+  setupHaskellDepends = [ mtl parsec ];
+  libraryHaskellDepends = [
+    array base bytestring Cabal-syntax containers deepseq directory
+    filepath mtl parsec pretty process text time transformers unix
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://www.haskell.org/cabal/";
+  description = "A framework for packaging Haskell software";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/ChasingBottoms.nix b/pkgs/ChasingBottoms.nix
new file mode 100644
index 00000000..61317b5a
--- /dev/null
+++ b/pkgs/ChasingBottoms.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, array, base, containers, lib, mtl, QuickCheck
+, random, syb
+}:
+mkDerivation {
+  pname = "ChasingBottoms";
+  version = "1.3.1.12";
+  sha256 = "a018538c0196390c7ebb5c677ff5b81bd760d75ae2b21bae8ab8a47b00f6c9ef";
+  libraryHaskellDepends = [
+    base containers mtl QuickCheck random syb
+  ];
+  testHaskellDepends = [
+    array base containers mtl QuickCheck random syb
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "For testing partial and infinite values";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/HTTP.nix b/pkgs/HTTP.nix
new file mode 100644
index 00000000..02fcf361
--- /dev/null
+++ b/pkgs/HTTP.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, array, base, bytestring, deepseq, httpd-shed, HUnit
+, lib, mtl, network, network-uri, parsec, pureMD5, split
+, test-framework, test-framework-hunit, time, transformers
+}:
+mkDerivation {
+  pname = "HTTP";
+  version = "4000.4.1";
+  sha256 = "df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453";
+  revision = "1";
+  editedCabalFile = "04y04vbxbnblpmqqmpl8km4bkcjaj96nbxkssdr1zgbhqisxay5q";
+  libraryHaskellDepends = [
+    array base bytestring mtl network network-uri parsec time
+    transformers
+  ];
+  testHaskellDepends = [
+    base bytestring deepseq httpd-shed HUnit mtl network network-uri
+    pureMD5 split test-framework test-framework-hunit
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/HTTP";
+  description = "A library for client-side HTTP";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/JuicyPixels.nix b/pkgs/JuicyPixels.nix
new file mode 100644
index 00000000..23af5de4
--- /dev/null
+++ b/pkgs/JuicyPixels.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, binary, bytestring, containers, deepseq, lib
+, mtl, primitive, transformers, vector, zlib
+}:
+mkDerivation {
+  pname = "JuicyPixels";
+  version = "3.3.8";
+  sha256 = "d3a0f6ca3515a1b3d526cbf79f2e0b0aab57f208ab216f9c26437bbcd86fb63e";
+  libraryHaskellDepends = [
+    base binary bytestring containers deepseq mtl primitive
+    transformers vector zlib
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Twinside/Juicy.Pixels";
+  description = "Picture loading/serialization (in png, jpeg, bitmap, gif, tga, tiff and radiance)";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/OneTuple.nix b/pkgs/OneTuple.nix
new file mode 100644
index 00000000..22c7463d
--- /dev/null
+++ b/pkgs/OneTuple.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, ghc-prim, hashable, lib, template-haskell }:
+mkDerivation {
+  pname = "OneTuple";
+  version = "0.3.1";
+  sha256 = "98853682d52fb4cc37a45cd186fbd77cf2565d3df5171acc4cf026427e103eef";
+  revision = "3";
+  editedCabalFile = "0g4siv8s6dlrdsivap2qy6ig08y5bjbs93jk192zmgkp8iscncpw";
+  libraryHaskellDepends = [ base ghc-prim template-haskell ];
+  testHaskellDepends = [ base hashable template-haskell ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Singleton Tuple";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/OpenGLRaw.nix b/pkgs/OpenGLRaw.nix
new file mode 100644
index 00000000..0e6f57b4
--- /dev/null
+++ b/pkgs/OpenGLRaw.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, bytestring, containers, fixed, half, lib
+, libGL, text, transformers
+}:
+mkDerivation {
+  pname = "OpenGLRaw";
+  version = "3.3.4.1";
+  sha256 = "121abdea149ac74514efb2c1c1c319466757242d1b72a8bdf99d49535f06d31e";
+  libraryHaskellDepends = [
+    base bytestring containers fixed half text transformers
+  ];
+  librarySystemDepends = [ libGL ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://www.haskell.org/haskellwiki/Opengl";
+  description = "A raw binding for the OpenGL graphics system";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/aeson.nix b/pkgs/aeson.nix
new file mode 100644
index 00000000..480ac360
--- /dev/null
+++ b/pkgs/aeson.nix
@@ -0,0 +1,41 @@
+{ mkDerivation, attoparsec, base, base-compat
+, base-compat-batteries, base-orphans, base16-bytestring
+, bytestring, containers, data-fix, deepseq, Diff, directory, dlist
+, filepath, generic-deriving, generically, ghc-prim, hashable
+, indexed-traversable, integer-logarithms, lib, OneTuple, primitive
+, QuickCheck, quickcheck-instances, scientific, semialign, strict
+, tagged, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
+, template-haskell, text, text-short, th-abstraction, these, time
+, time-compat, unordered-containers, uuid-types, vector, witherable
+}:
+mkDerivation {
+  pname = "aeson";
+  version = "2.1.0.0";
+  sha256 = "0a763ef5fa16da678e5a1ee8c394825b6723182a9a755709170edc08b8f73c94";
+  revision = "2";
+  editedCabalFile = "0yp12cmkj5sz25kxzn6g1fz2d6acbq5rvff5dg2wg5zkjwfkhzqj";
+  libraryHaskellDepends = [
+    attoparsec base base-compat-batteries bytestring containers
+    data-fix deepseq dlist generically ghc-prim hashable
+    indexed-traversable OneTuple primitive QuickCheck scientific
+    semialign strict tagged template-haskell text text-short
+    th-abstraction these time time-compat unordered-containers
+    uuid-types vector witherable
+  ];
+  testHaskellDepends = [
+    attoparsec base base-compat base-orphans base16-bytestring
+    bytestring containers data-fix Diff directory dlist filepath
+    generic-deriving generically ghc-prim hashable indexed-traversable
+    integer-logarithms OneTuple primitive QuickCheck
+    quickcheck-instances scientific strict tagged tasty tasty-golden
+    tasty-hunit tasty-quickcheck template-haskell text text-short these
+    time time-compat unordered-containers uuid-types vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/aeson";
+  description = "Fast JSON parsing and encoding";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/ansi-terminal.nix b/pkgs/ansi-terminal.nix
new file mode 100644
index 00000000..a0a258a1
--- /dev/null
+++ b/pkgs/ansi-terminal.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, colour, lib }:
+mkDerivation {
+  pname = "ansi-terminal";
+  version = "0.11.3";
+  sha256 = "f4d563ecf71fb1d304bcdcad478d97efd9f61f6d9d4797a5d56e7722a92a9e6b";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [ base colour ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/UnkindPartition/ansi-terminal";
+  description = "Simple ANSI terminal support, with Windows compatibility";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/apecs.nix b/pkgs/apecs.nix
new file mode 100644
index 00000000..de181765
--- /dev/null
+++ b/pkgs/apecs.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, array, base, containers, criterion, exceptions, lib
+, linear, mtl, QuickCheck, template-haskell, vector
+}:
+mkDerivation {
+  pname = "apecs";
+  version = "0.9.4";
+  sha256 = "7e134eea093551112539ab5727bb127b7a4a6906c96636024f8c0966a06b9740";
+  revision = "1";
+  editedCabalFile = "1n0sz1230fp65dv462ss15yma6g1dxxlamj7idgl3kg9gdwv70sn";
+  libraryHaskellDepends = [
+    array base containers exceptions mtl template-haskell vector
+  ];
+  testHaskellDepends = [ base containers linear QuickCheck vector ];
+  benchmarkHaskellDepends = [ base criterion linear ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jonascarpay/apecs#readme";
+  description = "Fast Entity-Component-System library for game programming";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/assoc.nix b/pkgs/assoc.nix
new file mode 100644
index 00000000..097f0048
--- /dev/null
+++ b/pkgs/assoc.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, base, bifunctors, lib, tagged }:
+mkDerivation {
+  pname = "assoc";
+  version = "1.0.2";
+  sha256 = "d8988dc6e8718c7a3456515b769c9336aeeec730cf86fc5175247969ff8f144f";
+  revision = "3";
+  editedCabalFile = "0mrb12dx316q4gxyn68x2rl8jq0gd77zffd12r8j1r41l0xd9f4k";
+  libraryHaskellDepends = [ base bifunctors tagged ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "swap and assoc: Symmetric and Semigroupy Bifunctors";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/async.nix b/pkgs/async.nix
new file mode 100644
index 00000000..b4a75672
--- /dev/null
+++ b/pkgs/async.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, hashable, HUnit, lib, stm, test-framework
+, test-framework-hunit
+}:
+mkDerivation {
+  pname = "async";
+  version = "2.2.4";
+  sha256 = "484df85be0e76c4fed9376451e48e1d0c6e97952ce79735b72d54297e7e0a725";
+  revision = "2";
+  editedCabalFile = "1j93w1krkadqijn59yjiws1366yhcn2mad1irqrk50in6l10k51b";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [ base hashable stm ];
+  testHaskellDepends = [
+    base HUnit stm test-framework test-framework-hunit
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/simonmar/async";
+  description = "Run IO operations asynchronously and wait for their results";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/autodocodec-yaml.nix b/pkgs/autodocodec-yaml.nix
new file mode 100644
index 00000000..5c23ab0c
--- /dev/null
+++ b/pkgs/autodocodec-yaml.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, autodocodec, autodocodec-schema, base, bytestring
+, containers, lib, path, path-io, safe-coloured-text, scientific
+, text, unordered-containers, vector, yaml
+}:
+mkDerivation {
+  pname = "autodocodec-yaml";
+  version = "0.2.0.2";
+  sha256 = "3d5f811541866f95f44842227bc5d643e7dfa316f1b3075c22d9f3dc6fcd9698";
+  libraryHaskellDepends = [
+    autodocodec autodocodec-schema base bytestring containers path
+    path-io safe-coloured-text scientific text unordered-containers
+    vector yaml
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/autodocodec#readme";
+  description = "Autodocodec interpreters for yaml";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/base-compat-batteries.nix b/pkgs/base-compat-batteries.nix
new file mode 100644
index 00000000..62a36701
--- /dev/null
+++ b/pkgs/base-compat-batteries.nix
@@ -0,0 +1,17 @@
+{ mkDerivation, base, base-compat, ghc-prim, hspec, hspec-discover
+, lib, QuickCheck
+}:
+mkDerivation {
+  pname = "base-compat-batteries";
+  version = "0.12.2";
+  sha256 = "ede9092e07f904e0759160bf1ecd3fb7eb043bae6dc89a37c3dc94829ec5eb99";
+  libraryHaskellDepends = [ base base-compat ghc-prim ];
+  testHaskellDepends = [ base hspec QuickCheck ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "base-compat with extra batteries";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/base-compat.nix b/pkgs/base-compat.nix
new file mode 100644
index 00000000..fb759604
--- /dev/null
+++ b/pkgs/base-compat.nix
@@ -0,0 +1,13 @@
+{ mkDerivation, base, ghc-prim, lib, unix }:
+mkDerivation {
+  pname = "base-compat";
+  version = "0.12.2";
+  sha256 = "a62adc883a5ac436f80e4ae02c3c56111cf1007492f267c291139a668d2150bd";
+  libraryHaskellDepends = [ base ghc-prim unix ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "A compatibility layer for base";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/base64.nix b/pkgs/base64.nix
new file mode 100644
index 00000000..53c93041
--- /dev/null
+++ b/pkgs/base64.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, base, base64-bytestring, bytestring, criterion
+, deepseq, lib, QuickCheck, random-bytestring, tasty, tasty-hunit
+, tasty-quickcheck, text, text-short
+}:
+mkDerivation {
+  pname = "base64";
+  version = "0.4.2.4";
+  sha256 = "640a2d0afcb07e1de2e0a13a5e942b0265781c5942bd642a8793e7b019be3585";
+  revision = "2";
+  editedCabalFile = "0cz3zzz9k490w9nfn4hpgdw4zx4w70fwqrwsfx8svcwqssqibqw3";
+  libraryHaskellDepends = [
+    base bytestring deepseq text text-short
+  ];
+  testHaskellDepends = [
+    base base64-bytestring bytestring QuickCheck random-bytestring
+    tasty tasty-hunit tasty-quickcheck text text-short
+  ];
+  benchmarkHaskellDepends = [
+    base base64-bytestring bytestring criterion deepseq
+    random-bytestring text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/emilypi/base64";
+  description = "A modern RFC 4648-compliant Base64 library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/basement.nix b/pkgs/basement.nix
new file mode 100644
index 00000000..83ab86d3
--- /dev/null
+++ b/pkgs/basement.nix
@@ -0,0 +1,14 @@
+{ mkDerivation, base, ghc-prim, lib }:
+mkDerivation {
+  pname = "basement";
+  version = "0.0.15";
+  sha256 = "56c2afb6754e8d16a627331a8a5d473b3d26fd04ba5c9e0fb3475f595b915db4";
+  libraryHaskellDepends = [ base ghc-prim ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-foundation/foundation#readme";
+  description = "Foundation scrap box of array & string";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/bimap.nix b/pkgs/bimap.nix
new file mode 100644
index 00000000..4780c0c7
--- /dev/null
+++ b/pkgs/bimap.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, containers, deepseq, exceptions, lib
+, QuickCheck, template-haskell
+}:
+mkDerivation {
+  pname = "bimap";
+  version = "0.5.0";
+  sha256 = "b0b44b0f2eaceb83f46dfa3d1747e080c45204c64d18bb9e63747299266f0c95";
+  libraryHaskellDepends = [ base containers deepseq exceptions ];
+  testHaskellDepends = [
+    base containers deepseq exceptions QuickCheck template-haskell
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/joelwilliamson/bimap";
+  description = "Bidirectional mapping between two key types";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/binary-orphans.nix b/pkgs/binary-orphans.nix
new file mode 100644
index 00000000..27d50fb0
--- /dev/null
+++ b/pkgs/binary-orphans.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, binary, lib, OneTuple, QuickCheck
+, quickcheck-instances, tagged, tasty, tasty-quickcheck
+, transformers
+}:
+mkDerivation {
+  pname = "binary-orphans";
+  version = "1.0.3";
+  sha256 = "e2e554823ce6758cbbfb64acb8b5905d3c226eab18b5fcaf5d7c79252114602c";
+  libraryHaskellDepends = [ base binary transformers ];
+  testHaskellDepends = [
+    base binary OneTuple QuickCheck quickcheck-instances tagged tasty
+    tasty-quickcheck
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Compatibility package for binary; provides instances";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/blaze-markup.nix b/pkgs/blaze-markup.nix
new file mode 100644
index 00000000..0af12ab7
--- /dev/null
+++ b/pkgs/blaze-markup.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, blaze-builder, bytestring, containers, HUnit
+, lib, QuickCheck, tasty, tasty-hunit, tasty-quickcheck, text
+}:
+mkDerivation {
+  pname = "blaze-markup";
+  version = "0.8.2.8";
+  sha256 = "43fc3f6872dc8d1be8d0fe091bd4775139b42179987f33d6490a7c5f1e07a349";
+  revision = "3";
+  editedCabalFile = "1hn694kk615prqdn7bfzl0wvbw8bksxk4cxwmx8yhwpl0cq3fiwa";
+  libraryHaskellDepends = [ base blaze-builder bytestring text ];
+  testHaskellDepends = [
+    base blaze-builder bytestring containers HUnit QuickCheck tasty
+    tasty-hunit tasty-quickcheck text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://jaspervdj.be/blaze";
+  description = "A blazingly fast markup combinator library for Haskell";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/boring.nix b/pkgs/boring.nix
new file mode 100644
index 00000000..48e1f6af
--- /dev/null
+++ b/pkgs/boring.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, lib, tagged, transformers }:
+mkDerivation {
+  pname = "boring";
+  version = "0.2";
+  sha256 = "0bac533b66e754d4fc65ab8d7557eea6f7b35d16998e5e74579b25a372aa4c34";
+  revision = "2";
+  editedCabalFile = "04pn94i3mysi7px93k86sf29vw99sf38sl4n0gy2nma0iqsik828";
+  libraryHaskellDepends = [ base tagged transformers ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/phadej/boring";
+  description = "Boring and Absurd types";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/brick.nix b/pkgs/brick.nix
new file mode 100644
index 00000000..f0927367
--- /dev/null
+++ b/pkgs/brick.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, base, bimap, bytestring, config-ini, containers
+, contravariant, data-clist, deepseq, directory, exceptions
+, filepath, lib, microlens, microlens-mtl, microlens-th, mtl
+, QuickCheck, stm, template-haskell, text, text-zipper, unix
+, vector, vty, word-wrap
+}:
+mkDerivation {
+  pname = "brick";
+  version = "1.3";
+  sha256 = "4b4320ff8e6161dfe7034c7deb911f4187551c389c1d6b14501b285f9031ed52";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base bimap bytestring config-ini containers contravariant
+    data-clist deepseq directory exceptions filepath microlens
+    microlens-mtl microlens-th mtl stm template-haskell text
+    text-zipper unix vector vty word-wrap
+  ];
+  testHaskellDepends = [
+    base containers microlens QuickCheck vector vty
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jtdaugherty/brick/";
+  description = "A declarative terminal user interface library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/bsb-http-chunked.nix b/pkgs/bsb-http-chunked.nix
new file mode 100644
index 00000000..1057e0bb
--- /dev/null
+++ b/pkgs/bsb-http-chunked.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, attoparsec, base, blaze-builder, bytestring
+, deepseq, doctest, gauge, hedgehog, lib, semigroups, tasty
+, tasty-hedgehog, tasty-hunit
+}:
+mkDerivation {
+  pname = "bsb-http-chunked";
+  version = "0.0.0.4";
+  sha256 = "148309e23eb8b261c1de374712372d62d8c8dc8ee504c392809c7ec33c0a0e7c";
+  revision = "3";
+  editedCabalFile = "15hg352id2f4x0dnvv47bdiz6gv5hp5a2mki9yzmhc7ajpk31mdd";
+  libraryHaskellDepends = [ base bytestring ];
+  testHaskellDepends = [
+    attoparsec base blaze-builder bytestring doctest hedgehog tasty
+    tasty-hedgehog tasty-hunit
+  ];
+  benchmarkHaskellDepends = [
+    base blaze-builder bytestring deepseq gauge semigroups
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/sjakobi/bsb-http-chunked";
+  description = "Chunked HTTP transfer encoding for bytestring builders";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/bytes.nix b/pkgs/bytes.nix
new file mode 100644
index 00000000..9cad5302
--- /dev/null
+++ b/pkgs/bytes.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, binary, binary-orphans, bytestring, cereal
+, containers, hashable, lib, mtl, scientific, text, time
+, transformers, transformers-compat, unordered-containers, void
+}:
+mkDerivation {
+  pname = "bytes";
+  version = "0.17.2";
+  sha256 = "bc55f41edad589bc0ba389e8b106d7425a87390dcd5f1371e3194a9cc2c4781a";
+  revision = "1";
+  editedCabalFile = "0frs6ag93kmg2fw3vd686czx8g7h9qmdn1ip6wdk96d94ap0fz9i";
+  libraryHaskellDepends = [
+    base binary binary-orphans bytestring cereal containers hashable
+    mtl scientific text time transformers transformers-compat
+    unordered-containers void
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ekmett/bytes";
+  description = "Sharing code for serialization between binary and cereal";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/cabal-doctest.nix b/pkgs/cabal-doctest.nix
new file mode 100644
index 00000000..0a7f99b2
--- /dev/null
+++ b/pkgs/cabal-doctest.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, Cabal, directory, filepath, lib }:
+mkDerivation {
+  pname = "cabal-doctest";
+  version = "1.0.9";
+  sha256 = "5556088496111d33810c4ae6c4a065bb37fa3315e9e8891e8000b1ab6707ba73";
+  revision = "2";
+  editedCabalFile = "0868js0qgfhvmyw4hjzrvmlzyqsm8dfsbmqhybxb90x44xi3r0i1";
+  libraryHaskellDepends = [ base Cabal directory filepath ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskellari/cabal-doctest";
+  description = "A Setup.hs helper for running doctests";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/cabal-install-solver.nix b/pkgs/cabal-install-solver.nix
new file mode 100644
index 00000000..4098bd55
--- /dev/null
+++ b/pkgs/cabal-install-solver.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, array, base, bytestring, Cabal, Cabal-syntax
+, containers, edit-distance, filepath, lib, mtl, pretty, tasty
+, tasty-hunit, tasty-quickcheck, transformers
+}:
+mkDerivation {
+  pname = "cabal-install-solver";
+  version = "3.8.1.0";
+  sha256 = "df2369f6c37517a3b2625bc19057d9e206bbb40386bcb607f17dc7d2e588ffe7";
+  libraryHaskellDepends = [
+    array base bytestring Cabal Cabal-syntax containers edit-distance
+    filepath mtl pretty transformers
+  ];
+  testHaskellDepends = [
+    base Cabal Cabal-syntax tasty tasty-hunit tasty-quickcheck
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://www.haskell.org/cabal/";
+  description = "The command-line interface for Cabal and Hackage";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/cabal-install.nix b/pkgs/cabal-install.nix
new file mode 100644
index 00000000..cf258b27
--- /dev/null
+++ b/pkgs/cabal-install.nix
@@ -0,0 +1,49 @@
+{ mkDerivation, array, async, base, base16-bytestring, binary
+, bytestring, Cabal, Cabal-described, cabal-install-solver
+, Cabal-QuickCheck, Cabal-syntax, Cabal-tree-diff, containers
+, cryptohash-sha256, directory, echo, edit-distance, exceptions
+, filepath, hackage-security, hashable, HTTP, lib, lukko, mtl
+, network-uri, parsec, pretty, pretty-show, process, QuickCheck
+, random, regex-base, regex-posix, resolv, safe-exceptions, stm
+, tagged, tar, tasty, tasty-expected-failure, tasty-golden
+, tasty-hunit, tasty-quickcheck, text, time, tree-diff, unix, zlib
+}:
+mkDerivation {
+  pname = "cabal-install";
+  version = "3.8.1.0";
+  sha256 = "61ce436f2e14e12bf07ea1c81402362f46275014cd841a76566f0766d0ea67e6";
+  revision = "1";
+  editedCabalFile = "0d6g8q9g8xv69dk51d2jjnc2bv9ah59vn1p5xg1hn42filh35sa1";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    array async base base16-bytestring binary bytestring Cabal
+    cabal-install-solver Cabal-syntax containers cryptohash-sha256
+    directory echo edit-distance exceptions filepath hackage-security
+    hashable HTTP lukko mtl network-uri parsec pretty process random
+    regex-base regex-posix resolv safe-exceptions stm tar text time
+    unix zlib
+  ];
+  executableHaskellDepends = [
+    base Cabal Cabal-syntax directory filepath
+  ];
+  testHaskellDepends = [
+    array base bytestring Cabal Cabal-described cabal-install-solver
+    Cabal-QuickCheck Cabal-syntax Cabal-tree-diff containers directory
+    filepath hashable mtl network-uri pretty-show QuickCheck random
+    tagged tar tasty tasty-expected-failure tasty-golden tasty-hunit
+    tasty-quickcheck time tree-diff zlib
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  postInstall = ''
+    mkdir -p $out/share/bash-completion
+    mv bash-completion $out/share/bash-completion/completions
+  '';
+  homepage = "http://www.haskell.org/cabal/";
+  description = "The command-line interface for Cabal and Hackage";
+  license = lib.licenses.bsd3;
+  mainProgram = "cabal";
+}
\ No newline at end of file
diff --git a/pkgs/cborg-json.nix b/pkgs/cborg-json.nix
new file mode 100644
index 00000000..c8ebaa9f
--- /dev/null
+++ b/pkgs/cborg-json.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, aeson, aeson-pretty, base, bytestring, cborg
+, criterion, deepseq, directory, lib, process, scientific, text
+, unordered-containers, vector, zlib
+}:
+mkDerivation {
+  pname = "cborg-json";
+  version = "0.2.5.0";
+  sha256 = "58c373453f06fd8558e062c4fbe6dd862cb0ae28ac3c02ba3b607573bd077cd4";
+  libraryHaskellDepends = [
+    aeson aeson-pretty base cborg scientific text unordered-containers
+    vector
+  ];
+  benchmarkHaskellDepends = [
+    aeson base bytestring cborg criterion deepseq directory process
+    zlib
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/well-typed/cborg";
+  description = "A library for encoding JSON as CBOR";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/cborg.nix b/pkgs/cborg.nix
new file mode 100644
index 00000000..0fb456b3
--- /dev/null
+++ b/pkgs/cborg.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, aeson, array, base, base-orphans, base16-bytestring
+, base64-bytestring, bytestring, containers, deepseq, ghc-bignum
+, ghc-prim, half, lib, primitive, QuickCheck, random, scientific
+, tasty, tasty-hunit, tasty-quickcheck, text, vector
+}:
+mkDerivation {
+  pname = "cborg";
+  version = "0.2.8.0";
+  sha256 = "2e59c827c273b57af0fcbbfb62f6d15faeb399e0d89d57baf8adcc60e62ab01e";
+  libraryHaskellDepends = [
+    array base bytestring containers deepseq ghc-bignum ghc-prim half
+    primitive text
+  ];
+  testHaskellDepends = [
+    aeson array base base-orphans base16-bytestring base64-bytestring
+    bytestring deepseq half QuickCheck random scientific tasty
+    tasty-hunit tasty-quickcheck text vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Concise Binary Object Representation (CBOR)";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/cereal.nix b/pkgs/cereal.nix
new file mode 100644
index 00000000..93418fdb
--- /dev/null
+++ b/pkgs/cereal.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, array, base, bytestring, containers, ghc-prim, lib
+, QuickCheck, test-framework, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "cereal";
+  version = "0.5.8.3";
+  sha256 = "99905220661b26e5bd91130bd9772554938608a5b1d717240a6eb331121e0f6a";
+  libraryHaskellDepends = [
+    array base bytestring containers ghc-prim
+  ];
+  testHaskellDepends = [
+    base bytestring QuickCheck test-framework
+    test-framework-quickcheck2
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/GaloisInc/cereal";
+  description = "A binary serialization library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/citeproc.nix b/pkgs/citeproc.nix
new file mode 100644
index 00000000..e83777bd
--- /dev/null
+++ b/pkgs/citeproc.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, aeson, attoparsec, base, bytestring
+, case-insensitive, containers, data-default, Diff, directory
+, file-embed, filepath, lib, mtl, pandoc-types, pretty, safe
+, scientific, text, timeit, transformers, unicode-collation
+, uniplate, vector, xml-conduit
+}:
+mkDerivation {
+  pname = "citeproc";
+  version = "0.8.0.1";
+  sha256 = "67a852a7a9e0fa00713996e546045c11360ad9374e450cfe35154e69a0bfbfb7";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson attoparsec base bytestring case-insensitive containers
+    data-default file-embed filepath pandoc-types safe scientific text
+    transformers unicode-collation uniplate vector xml-conduit
+  ];
+  testHaskellDepends = [
+    aeson base bytestring containers Diff directory filepath mtl pretty
+    text timeit transformers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Generates citations and bibliography from CSL styles";
+  license = lib.licenses.bsd2;
+}
\ No newline at end of file
diff --git a/pkgs/co-log-core.nix b/pkgs/co-log-core.nix
new file mode 100644
index 00000000..f531917b
--- /dev/null
+++ b/pkgs/co-log-core.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, base, doctest, Glob, lib }:
+mkDerivation {
+  pname = "co-log-core";
+  version = "0.3.1.0";
+  sha256 = "29720bee51dd0c89f35e27b89985a469a0436dc58750f4825874572e2a6317ec";
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base doctest Glob ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/co-log/co-log-core";
+  description = "Composable Contravariant Comonadic Logging Library";
+  license = lib.licenses.mpl20;
+}
\ No newline at end of file
diff --git a/pkgs/comonad.nix b/pkgs/comonad.nix
new file mode 100644
index 00000000..38c51fd9
--- /dev/null
+++ b/pkgs/comonad.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, containers, distributive, indexed-traversable
+, lib, tagged, transformers, transformers-compat
+}:
+mkDerivation {
+  pname = "comonad";
+  version = "5.0.8";
+  sha256 = "ef6cdf2cc292cc43ee6aa96c581b235fdea8ab44a0bffb24dc79ae2b2ef33d13";
+  revision = "1";
+  editedCabalFile = "0zlgkcd61cwsdbgjz03pfbjxhj6dc25792h7rwh0zy677vbsn6hz";
+  libraryHaskellDepends = [
+    base containers distributive indexed-traversable tagged
+    transformers transformers-compat
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/comonad/";
+  description = "Comonads";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/compact.nix b/pkgs/compact.nix
new file mode 100644
index 00000000..72ea2cef
--- /dev/null
+++ b/pkgs/compact.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, binary, bytestring, directory, ghc-compact
+, lib
+}:
+mkDerivation {
+  pname = "compact";
+  version = "0.2.0.0";
+  sha256 = "03a6b534f4f8f06fe1f3921be74f90c2fab9da7f28e7520612c91c28da266277";
+  revision = "1";
+  editedCabalFile = "1013dkawaw3c6hvlfn9x584pq8z65fvbnp79dl6ll6r0a75rivvm";
+  libraryHaskellDepends = [ base binary bytestring ghc-compact ];
+  testHaskellDepends = [ base directory ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ezyang/compact";
+  description = "Non-GC'd, contiguous storage for immutable data structures";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/compactable.nix b/pkgs/compactable.nix
new file mode 100644
index 00000000..391b79c9
--- /dev/null
+++ b/pkgs/compactable.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, aeson, base, base-compat, bifunctors, containers
+, contravariant, data-default-class, deepseq, genvalidity
+, genvalidity-sydtest, hashable, keys, lens, lib, QuickCheck
+, semigroupoids, sydtest, sydtest-discover, these, transformers
+, transformers-compat, unordered-containers, vector
+, vector-instances
+}:
+mkDerivation {
+  pname = "compactable";
+  version = "0.2.0.0";
+  sha256 = "871c6e5a6d0b9a27624a3393a0b048358cf9289b8e35535bb11c469f56cdec59";
+  libraryHaskellDepends = [
+    aeson base base-compat bifunctors containers contravariant
+    data-default-class deepseq hashable keys lens QuickCheck
+    semigroupoids these transformers transformers-compat
+    unordered-containers vector vector-instances
+  ];
+  testHaskellDepends = [
+    base containers genvalidity genvalidity-sydtest QuickCheck sydtest
+    sydtest-discover these vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "A typeclass for structures which can be catMaybed, filtered, and partitioned";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/composite-base.nix b/pkgs/composite-base.nix
new file mode 100644
index 00000000..a61c8170
--- /dev/null
+++ b/pkgs/composite-base.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, base, deepseq, exceptions, hspec, lens, lib
+, monad-control, mtl, profunctors, QuickCheck, template-haskell
+, text, transformers, transformers-base, unliftio-core, vinyl
+}:
+mkDerivation {
+  pname = "composite-base";
+  version = "0.8.1.0";
+  sha256 = "a8de050a65b8d3febfd48ea0d7b9bb215c8473b7dda7760d7c2df279a92258a3";
+  libraryHaskellDepends = [
+    base deepseq exceptions lens monad-control mtl profunctors
+    template-haskell text transformers transformers-base unliftio-core
+    vinyl
+  ];
+  testHaskellDepends = [
+    base deepseq exceptions hspec lens monad-control mtl profunctors
+    QuickCheck template-haskell text transformers transformers-base
+    unliftio-core vinyl
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/composite-hs/composite-base#readme";
+  description = "Shared utilities for composite-* packages";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/composite-cassava.nix b/pkgs/composite-cassava.nix
new file mode 100644
index 00000000..6d667f8e
--- /dev/null
+++ b/pkgs/composite-cassava.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, bytestring, cassava, composite-base, lib
+, tasty, tasty-hunit, text, unordered-containers, vector
+}:
+mkDerivation {
+  pname = "composite-cassava";
+  version = "0.0.3.1";
+  sha256 = "aa776b23dcf8ad3833159777eb5e0230dd2681527d7089fd072a618cca791e8d";
+  libraryHaskellDepends = [
+    base cassava composite-base text unordered-containers vector
+  ];
+  testHaskellDepends = [
+    base bytestring cassava composite-base tasty tasty-hunit text
+    unordered-containers vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Csv parsing functionality for composite";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/composite-dhall.nix b/pkgs/composite-dhall.nix
new file mode 100644
index 00000000..e6aaf86e
--- /dev/null
+++ b/pkgs/composite-dhall.nix
@@ -0,0 +1,18 @@
+{ mkDerivation, base, composite-base, dhall, lib, tasty
+, tasty-hunit, text, vinyl
+}:
+mkDerivation {
+  pname = "composite-dhall";
+  version = "0.1.0.1";
+  sha256 = "aa6c8a8a05c5aa5cc7c76440f57f9459f7f3aa07b1f4b290549a17c196c2eb34";
+  libraryHaskellDepends = [ base composite-base dhall text vinyl ];
+  testHaskellDepends = [
+    base composite-base dhall tasty tasty-hunit text vinyl
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Dhall instances for composite records";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/composite-lens-extra.nix b/pkgs/composite-lens-extra.nix
new file mode 100644
index 00000000..f8339f4d
--- /dev/null
+++ b/pkgs/composite-lens-extra.nix
@@ -0,0 +1,13 @@
+{ mkDerivation, base, composite-base, lens, lib, vinyl }:
+mkDerivation {
+  pname = "composite-lens-extra";
+  version = "0.1.0.0";
+  sha256 = "778c01cc88cd62f9302968164e76c7bd7e0642924f5f0c1a2e880c3877fc4b24";
+  libraryHaskellDepends = [ base composite-base lens vinyl ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Extra lens functions for composite";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/composite-tuple.nix b/pkgs/composite-tuple.nix
new file mode 100644
index 00000000..ed47ed1f
--- /dev/null
+++ b/pkgs/composite-tuple.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, base, composite-base, lib }:
+mkDerivation {
+  pname = "composite-tuple";
+  version = "0.1.2.0";
+  sha256 = "8164e73058eab642b22244057c1b4b26359d02cda53637bc1c9c8a5f30f9bd78";
+  revision = "1";
+  editedCabalFile = "0j7mj8g3v4x0vy4rbx00kxb7d41r3s3djbfin9f1h592ahyap1va";
+  libraryHaskellDepends = [ base composite-base ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Tuple functions for composite records";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/conduit-extra.nix b/pkgs/conduit-extra.nix
new file mode 100644
index 00000000..ca4ed40c
--- /dev/null
+++ b/pkgs/conduit-extra.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, async, attoparsec, base, bytestring, conduit
+, directory, exceptions, filepath, gauge, hspec, hspec-discover
+, lib, network, primitive, process, QuickCheck, resourcet, stm
+, streaming-commons, text, transformers, transformers-base
+, typed-process, unliftio-core
+}:
+mkDerivation {
+  pname = "conduit-extra";
+  version = "1.3.6";
+  sha256 = "8950c38049d892c38590d389bed49ecf880671f58ec63dd4709d9fe3d4b8f153";
+  libraryHaskellDepends = [
+    async attoparsec base bytestring conduit directory filepath network
+    primitive process resourcet stm streaming-commons text transformers
+    typed-process unliftio-core
+  ];
+  testHaskellDepends = [
+    async attoparsec base bytestring conduit directory exceptions
+    filepath hspec process QuickCheck resourcet stm streaming-commons
+    text transformers transformers-base
+  ];
+  testToolDepends = [ hspec-discover ];
+  benchmarkHaskellDepends = [
+    base bytestring conduit gauge transformers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/snoyberg/conduit";
+  description = "Batteries included conduit: adapters for common libraries";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/conduit.nix b/pkgs/conduit.nix
new file mode 100644
index 00000000..d0466c0a
--- /dev/null
+++ b/pkgs/conduit.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, base, bytestring, containers, deepseq, directory
+, exceptions, filepath, gauge, hspec, kan-extensions, lib
+, mono-traversable, mtl, mwc-random, primitive, QuickCheck
+, resourcet, safe, silently, split, text, transformers, unix
+, unliftio, unliftio-core, vector
+}:
+mkDerivation {
+  pname = "conduit";
+  version = "1.3.4.2";
+  sha256 = "2cb9832f27c7cd50daed1309f688afc4da1bd49697cbeda8ec3f81ab0bcf2197";
+  libraryHaskellDepends = [
+    base bytestring directory exceptions filepath mono-traversable mtl
+    primitive resourcet text transformers unix unliftio-core vector
+  ];
+  testHaskellDepends = [
+    base bytestring containers directory exceptions filepath hspec
+    mono-traversable mtl QuickCheck resourcet safe silently split text
+    transformers unliftio vector
+  ];
+  benchmarkHaskellDepends = [
+    base containers deepseq gauge hspec kan-extensions mwc-random
+    transformers vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/snoyberg/conduit";
+  description = "Streaming data processing library";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/config-ini.nix b/pkgs/config-ini.nix
new file mode 100644
index 00000000..a21e0692
--- /dev/null
+++ b/pkgs/config-ini.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, containers, directory, hedgehog, ini, lib
+, megaparsec, text, transformers, unordered-containers
+}:
+mkDerivation {
+  pname = "config-ini";
+  version = "0.2.5.0";
+  sha256 = "6f7ce53c22392b5b41e3c0a9853e4183c3bbcb18010f9630f48a90f69bbf6f1f";
+  libraryHaskellDepends = [
+    base containers megaparsec text transformers unordered-containers
+  ];
+  testHaskellDepends = [
+    base containers directory hedgehog ini text unordered-containers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/aisamanra/config-ini";
+  description = "A library for simple INI-based configuration files";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/constraints.nix b/pkgs/constraints.nix
new file mode 100644
index 00000000..1b7d3ebf
--- /dev/null
+++ b/pkgs/constraints.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, binary, deepseq, ghc-prim, hashable, hspec
+, hspec-discover, lib, mtl, transformers, transformers-compat
+, type-equality
+}:
+mkDerivation {
+  pname = "constraints";
+  version = "0.13.4";
+  sha256 = "4186946df4b88c5d7cae3a42aa426f30fd5d249835ea1d290e139cebbf464434";
+  libraryHaskellDepends = [
+    base binary deepseq ghc-prim hashable mtl transformers
+    transformers-compat type-equality
+  ];
+  testHaskellDepends = [ base hspec ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/constraints/";
+  description = "Constraint manipulation";
+  license = lib.licenses.bsd2;
+}
\ No newline at end of file
diff --git a/pkgs/cryptohash-sha1.nix b/pkgs/cryptohash-sha1.nix
new file mode 100644
index 00000000..51158140
--- /dev/null
+++ b/pkgs/cryptohash-sha1.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, base16-bytestring, bytestring, criterion, lib
+, SHA, tasty, tasty-hunit, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "cryptohash-sha1";
+  version = "0.11.101.0";
+  sha256 = "a4042c97ad02eb68e766577ca35c01970c33e96cfd74ccb4dd403e3476a23241";
+  revision = "1";
+  editedCabalFile = "0bz9rfl7b2iwn45m0lxcmsyi5rrv3xdgzx2lzr79bds91dw6i25b";
+  libraryHaskellDepends = [ base bytestring ];
+  testHaskellDepends = [
+    base base16-bytestring bytestring SHA tasty tasty-hunit
+    tasty-quickcheck
+  ];
+  benchmarkHaskellDepends = [ base bytestring criterion ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/hvr/cryptohash-sha1";
+  description = "Fast, pure and practical SHA-1 implementation";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/cryptonite.nix b/pkgs/cryptonite.nix
new file mode 100644
index 00000000..7003204e
--- /dev/null
+++ b/pkgs/cryptonite.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, base, basement, bytestring, deepseq, gauge
+, ghc-prim, integer-gmp, lib, memory, random, tasty, tasty-hunit
+, tasty-kat, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "cryptonite";
+  version = "0.30";
+  sha256 = "56099c8a8aa01d2ee914b670c97c1f818186dbb886e2025b73d9c2afe3496b1d";
+  libraryHaskellDepends = [
+    base basement bytestring deepseq ghc-prim integer-gmp memory
+  ];
+  testHaskellDepends = [
+    base bytestring memory tasty tasty-hunit tasty-kat tasty-quickcheck
+  ];
+  benchmarkHaskellDepends = [
+    base bytestring deepseq gauge memory random
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-crypto/cryptonite";
+  description = "Cryptography Primitives sink";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/data-fix.nix b/pkgs/data-fix.nix
new file mode 100644
index 00000000..0f09c1c6
--- /dev/null
+++ b/pkgs/data-fix.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, deepseq, hashable, lib }:
+mkDerivation {
+  pname = "data-fix";
+  version = "0.3.2";
+  sha256 = "3a172d3bc0639c327345e965f9d9023e099425814b28dcdb7b60ff66d66219cc";
+  revision = "3";
+  editedCabalFile = "0z77i9y86wlc13396akl8qxq39rwpkhhcs5fadzk47bwn7v1gsmx";
+  libraryHaskellDepends = [ base deepseq hashable ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/spell-music/data-fix";
+  description = "Fixpoint data types";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/dec.nix b/pkgs/dec.nix
new file mode 100644
index 00000000..6383f7a2
--- /dev/null
+++ b/pkgs/dec.nix
@@ -0,0 +1,14 @@
+{ mkDerivation, base, boring, lib }:
+mkDerivation {
+  pname = "dec";
+  version = "0.0.5";
+  sha256 = "e18043c7c7e68168489f164921a02efede0c0175a5012ed5451ec2242338df88";
+  libraryHaskellDepends = [ base boring ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/phadej/vec";
+  description = "Decidable propositions";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/dhall.nix b/pkgs/dhall.nix
new file mode 100644
index 00000000..9c29f8f7
--- /dev/null
+++ b/pkgs/dhall.nix
@@ -0,0 +1,86 @@
+{ mkDerivation, aeson, aeson-pretty, ansi-terminal, atomic-write
+, base, base16-bytestring, bytestring, case-insensitive, cborg
+, cborg-json, containers, contravariant, cryptohash-sha256
+, data-fix, deepseq, Diff, directory, doctest, dotgen, either
+, exceptions, filepath, foldl, gauge, generic-random, half
+, hashable, haskeline, http-client, http-client-tls, http-types
+, indexed-traversable, lens-family-core, lib, megaparsec, mmorph
+, mockery, mtl, network-uri, optparse-applicative
+, parser-combinators, parsers, pretty-simple, prettyprinter
+, prettyprinter-ansi-terminal, profunctors, QuickCheck
+, quickcheck-instances, repline, scientific, serialise
+, special-values, spoon, system-filepath, tasty
+, tasty-expected-failure, tasty-hunit, tasty-quickcheck
+, tasty-silver, template-haskell, temporary, text, text-manipulate
+, text-short, th-lift-instances, time, transformers, turtle
+, unordered-containers, uri-encode, vector
+}:
+mkDerivation {
+  pname = "dhall";
+  version = "1.41.2";
+  sha256 = "6a9a026e698e5c1a1e103fcb376e8494615b03ef2450f0b6c5e6b43877cea592";
+  revision = "1";
+  editedCabalFile = "1gi2j6d3mh0wqx6756cp04c676843wdibfwv3i2wypvsk74dlvjm";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    aeson aeson-pretty ansi-terminal atomic-write base
+    base16-bytestring bytestring case-insensitive cborg cborg-json
+    containers contravariant cryptohash-sha256 data-fix deepseq Diff
+    directory dotgen either exceptions filepath half hashable haskeline
+    http-client http-client-tls http-types indexed-traversable
+    lens-family-core megaparsec mmorph mtl network-uri
+    optparse-applicative parser-combinators parsers pretty-simple
+    prettyprinter prettyprinter-ansi-terminal profunctors repline
+    scientific serialise template-haskell text text-manipulate
+    text-short th-lift-instances time transformers unordered-containers
+    uri-encode vector
+  ];
+  executableHaskellDepends = [
+    aeson aeson-pretty ansi-terminal atomic-write base
+    base16-bytestring bytestring case-insensitive cborg cborg-json
+    containers contravariant data-fix deepseq Diff directory dotgen
+    either exceptions filepath half hashable haskeline
+    indexed-traversable lens-family-core megaparsec mmorph mtl
+    network-uri optparse-applicative parser-combinators parsers
+    pretty-simple prettyprinter prettyprinter-ansi-terminal profunctors
+    repline scientific serialise template-haskell text text-manipulate
+    text-short th-lift-instances time transformers unordered-containers
+    uri-encode vector
+  ];
+  testHaskellDepends = [
+    aeson aeson-pretty ansi-terminal atomic-write base
+    base16-bytestring bytestring case-insensitive cborg cborg-json
+    containers contravariant data-fix deepseq Diff directory doctest
+    dotgen either exceptions filepath foldl generic-random half
+    hashable haskeline http-client http-client-tls indexed-traversable
+    lens-family-core megaparsec mmorph mockery mtl network-uri
+    optparse-applicative parser-combinators parsers pretty-simple
+    prettyprinter prettyprinter-ansi-terminal profunctors QuickCheck
+    quickcheck-instances repline scientific serialise special-values
+    spoon system-filepath tasty tasty-expected-failure tasty-hunit
+    tasty-quickcheck tasty-silver template-haskell temporary text
+    text-manipulate text-short th-lift-instances time transformers
+    turtle unordered-containers uri-encode vector
+  ];
+  benchmarkHaskellDepends = [
+    aeson aeson-pretty ansi-terminal atomic-write base
+    base16-bytestring bytestring case-insensitive cborg cborg-json
+    containers contravariant data-fix deepseq Diff directory dotgen
+    either exceptions filepath gauge half hashable haskeline
+    indexed-traversable lens-family-core megaparsec mmorph mtl
+    network-uri optparse-applicative parser-combinators parsers
+    pretty-simple prettyprinter prettyprinter-ansi-terminal profunctors
+    repline scientific serialise template-haskell text text-manipulate
+    text-short th-lift-instances time transformers unordered-containers
+    uri-encode vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "A configuration language guaranteed to terminate";
+  license = lib.licenses.bsd3;
+  mainProgram = "dhall";
+}
\ No newline at end of file
diff --git a/pkgs/dimensional.nix b/pkgs/dimensional.nix
new file mode 100644
index 00000000..2cf3edaa
--- /dev/null
+++ b/pkgs/dimensional.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, criterion, deepseq, doctest, exact-pi, Glob
+, hspec, hspec-discover, ieee754, lib, numtype-dk, QuickCheck
+, template-haskell, vector
+}:
+mkDerivation {
+  pname = "dimensional";
+  version = "1.5";
+  sha256 = "da9ad59b8feebbc038f824bc960a099fc5ccc8cb1d234f12c230044be906a599";
+  libraryHaskellDepends = [
+    base deepseq exact-pi ieee754 numtype-dk vector
+  ];
+  testHaskellDepends = [
+    base doctest Glob hspec QuickCheck template-haskell
+  ];
+  testToolDepends = [ hspec-discover ];
+  benchmarkHaskellDepends = [ base criterion deepseq ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/bjornbm/dimensional/";
+  description = "Statically checked physical dimensions";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/doctest.nix b/pkgs/doctest.nix
new file mode 100644
index 00000000..476e90f6
--- /dev/null
+++ b/pkgs/doctest.nix
@@ -0,0 +1,39 @@
+{ mkDerivation, base, base-compat, code-page, deepseq, directory
+, exceptions, fetchgit, filepath, ghc, ghc-paths, hspec, hspec-core
+, hspec-discover, HUnit, lib, mockery, process, QuickCheck, setenv
+, silently, stringbuilder, syb, transformers
+}:
+mkDerivation {
+  pname = "doctest";
+  version = "0.20.0";
+  src = fetchgit {
+    url = "https://github.com/sol/doctest";
+    sha256 = "1i29zi7qgbkjz7cg4s1qdgjblfvb601kcc7jizlh2vghskjmxi77";
+    rev = "4eb97c213acf7abe965a3a1b67397199ed155f3c";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base base-compat code-page deepseq directory exceptions filepath
+    ghc ghc-paths process syb transformers
+  ];
+  executableHaskellDepends = [
+    base base-compat code-page deepseq directory exceptions filepath
+    ghc ghc-paths process syb transformers
+  ];
+  testHaskellDepends = [
+    base base-compat code-page deepseq directory exceptions filepath
+    ghc ghc-paths hspec hspec-core HUnit mockery process QuickCheck
+    setenv silently stringbuilder syb transformers
+  ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/sol/doctest#readme";
+  description = "Test interactive Haskell examples";
+  license = lib.licenses.mit;
+  mainProgram = "doctest";
+}
\ No newline at end of file
diff --git a/pkgs/double-conversion.nix b/pkgs/double-conversion.nix
new file mode 100644
index 00000000..113e2987
--- /dev/null
+++ b/pkgs/double-conversion.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, base, bytestring, fetchgit, ghc-prim, HUnit, lib
+, system-cxx-std-lib, test-framework, test-framework-hunit
+, test-framework-quickcheck2, text
+}:
+mkDerivation {
+  pname = "double-conversion";
+  version = "2.0.4.1";
+  src = fetchgit {
+    url = "https://github.com/haskell/double-conversion";
+    sha256 = "0z27zd1nyydz6hirbbdyhqmd4nbxcn7vcfx6jvlygrm4jwmhkr9b";
+    rev = "5d092e0664442eaac8ae1d101dba57ce9b1c9b03";
+    fetchSubmodules = true;
+  };
+  libraryHaskellDepends = [
+    base bytestring ghc-prim system-cxx-std-lib text
+  ];
+  testHaskellDepends = [
+    base bytestring HUnit test-framework test-framework-hunit
+    test-framework-quickcheck2 text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/double-conversion";
+  description = "Fast conversion between single and double precision floating point and text";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/ed25519.nix b/pkgs/ed25519.nix
new file mode 100644
index 00000000..1b4c9c26
--- /dev/null
+++ b/pkgs/ed25519.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, base, bytestring, criterion, deepseq, directory
+, doctest, fetchgit, filepath, ghc-prim, hlint, lib, QuickCheck
+}:
+mkDerivation {
+  pname = "ed25519";
+  version = "0.0.5.0";
+  src = fetchgit {
+    url = "https://gitlab.homotopic.tech/horizon/adopted/ed25519";
+    sha256 = "1rfvp3jx1vv16yg4lnfzni380xx6jrghn6nq6s2vqm5nd40p5vyi";
+    rev = "faf8fe90aa1cd2492ea1e64c55f5c59fc0322210";
+    fetchSubmodules = true;
+  };
+  libraryHaskellDepends = [ base bytestring ghc-prim ];
+  testHaskellDepends = [
+    base bytestring directory doctest filepath hlint QuickCheck
+  ];
+  benchmarkHaskellDepends = [ base bytestring criterion deepseq ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://thoughtpolice.github.com/hs-ed25519";
+  description = "Ed25519 cryptographic signatures";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/effectful-cache.nix b/pkgs/effectful-cache.nix
new file mode 100644
index 00000000..c76dc041
--- /dev/null
+++ b/pkgs/effectful-cache.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, cache, effectful-core, fetchgit, hashable
+, lib, tasty, tasty-hunit
+}:
+mkDerivation {
+  pname = "effectful-cache";
+  version = "0.0.1.0";
+  src = fetchgit {
+    url = "https://github.com/haskell-effectful/cache-effectful";
+    sha256 = "01df89vls5653svqqfqq36wj45wc14qpw1dqwz4q9khglvc81ba9";
+    rev = "0a5581da7c21a05a9ab1762a6da6997090fe311d";
+    fetchSubmodules = true;
+  };
+  libraryHaskellDepends = [ base cache effectful-core hashable ];
+  testHaskellDepends = [
+    base cache effectful-core hashable tasty tasty-hunit
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-effectful/effectful-cache/tree/main/effectful-cache#readme";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/effectful-core.nix b/pkgs/effectful-core.nix
new file mode 100644
index 00000000..30e9b5b4
--- /dev/null
+++ b/pkgs/effectful-core.nix
@@ -0,0 +1,18 @@
+{ mkDerivation, base, containers, exceptions, lib, monad-control
+, primitive, transformers-base, unliftio-core
+}:
+mkDerivation {
+  pname = "effectful-core";
+  version = "2.1.0.0";
+  sha256 = "93920bb5b58d6c92f51823c95e436a1a35c40fa677ee4f96014267698c43efd1";
+  libraryHaskellDepends = [
+    base containers exceptions monad-control primitive
+    transformers-base unliftio-core
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "An easy to use, performant extensible effects library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/effectful-th.nix b/pkgs/effectful-th.nix
new file mode 100644
index 00000000..4e4357b8
--- /dev/null
+++ b/pkgs/effectful-th.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, containers, effectful, exceptions, lib
+, template-haskell, th-abstraction
+}:
+mkDerivation {
+  pname = "effectful-th";
+  version = "1.0.0.0";
+  sha256 = "302605bbc2bb8a1b97308d9611faf5e121958b846cbeb9421e2657a902ef7a63";
+  revision = "3";
+  editedCabalFile = "1nqwvgdvqgh4dvkidyaga7jd95p3hn54hy5gwadsvyf9lll4vjck";
+  libraryHaskellDepends = [
+    base containers effectful exceptions template-haskell
+    th-abstraction
+  ];
+  testHaskellDepends = [ base effectful ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Template Haskell utilities for the effectful library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/effectful.nix b/pkgs/effectful.nix
new file mode 100644
index 00000000..3f6e3670
--- /dev/null
+++ b/pkgs/effectful.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, async, base, bytestring, containers, directory
+, effectful-core, exceptions, lib, lifted-base, process, stm, tasty
+, tasty-bench, tasty-hunit, text, time, unix, unliftio
+}:
+mkDerivation {
+  pname = "effectful";
+  version = "2.1.0.0";
+  sha256 = "76147d4d761d3267607a5f71c5925cbb2e8ae538aacaf6c6ddd9574eabec739b";
+  libraryHaskellDepends = [
+    async base bytestring directory effectful-core process stm time
+    unliftio
+  ];
+  testHaskellDepends = [
+    base containers effectful-core exceptions lifted-base tasty
+    tasty-hunit unliftio
+  ];
+  benchmarkHaskellDepends = [
+    async base tasty-bench text unix unliftio
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "An easy to use, performant extensible effects library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/ema.nix b/pkgs/ema.nix
new file mode 100644
index 00000000..f07bfa90
--- /dev/null
+++ b/pkgs/ema.nix
@@ -0,0 +1,41 @@
+{ mkDerivation, aeson, async, base, blaze-html, blaze-markup
+, constraints-extras, containers, data-default, dependent-sum
+, dependent-sum-template, directory, fetchgit, file-embed, filepath
+, filepattern, fsnotify, generic-optics, generics-sop, http-types
+, lib, lvar, monad-logger, monad-logger-extras, mtl
+, neat-interpolation, optics-core, optparse-applicative, pandoc
+, pandoc-types, raw-strings-qq, relude, sop-core, template-haskell
+, text, time, unionmount, unliftio, url-slug, wai
+, wai-middleware-static, wai-websockets, warp, websockets
+}:
+mkDerivation {
+  pname = "ema";
+  version = "0.8.2.0";
+  src = fetchgit {
+    url = "https://github.com/EmaApps/ema";
+    sha256 = "0i7ijx85w1bhb98ppi5lj8ypq9jkhv2268cynj492dfd7hnbhzfv";
+    rev = "be89ffe306a15ab4a16494c8593d989fabcc4486";
+    fetchSubmodules = true;
+  };
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    aeson async base blaze-html blaze-markup constraints-extras
+    containers data-default dependent-sum dependent-sum-template
+    directory file-embed filepath filepattern fsnotify generic-optics
+    generics-sop http-types lvar monad-logger monad-logger-extras mtl
+    neat-interpolation optics-core optparse-applicative pandoc
+    pandoc-types relude sop-core template-haskell text time unionmount
+    unliftio url-slug wai wai-middleware-static wai-websockets warp
+    websockets
+  ];
+  testHaskellDepends = [
+    base generics-sop raw-strings-qq template-haskell text url-slug
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://ema.srid.ca/";
+  description = "Static site generator library with hot reload";
+  license = lib.licenses.agpl3Only;
+}
\ No newline at end of file
diff --git a/pkgs/email-validate.nix b/pkgs/email-validate.nix
new file mode 100644
index 00000000..ba6c1c70
--- /dev/null
+++ b/pkgs/email-validate.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, attoparsec, base, bytestring, doctest, hspec, lib
+, QuickCheck, template-haskell
+}:
+mkDerivation {
+  pname = "email-validate";
+  version = "2.3.2.16";
+  sha256 = "b8e5f155c1ba78ae25be88858b201d138cd1363519572edd9a13a9d086f023b3";
+  libraryHaskellDepends = [
+    attoparsec base bytestring template-haskell
+  ];
+  testHaskellDepends = [ base bytestring doctest hspec QuickCheck ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Porges/email-validate-hs";
+  description = "Email address validation";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/extra.nix b/pkgs/extra.nix
new file mode 100644
index 00000000..75d8a09f
--- /dev/null
+++ b/pkgs/extra.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, clock, directory, filepath, lib, process
+, QuickCheck, quickcheck-instances, time, unix
+}:
+mkDerivation {
+  pname = "extra";
+  version = "1.7.12";
+  sha256 = "e571a9ec1d8865f0fbb0e0ba1eb575f783b0365c80db19b54a93600bae43b03c";
+  libraryHaskellDepends = [
+    base clock directory filepath process time unix
+  ];
+  testHaskellDepends = [
+    base directory filepath QuickCheck quickcheck-instances unix
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ndmitchell/extra#readme";
+  description = "Extra functions I use";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/fcf-containers.nix b/pkgs/fcf-containers.nix
new file mode 100644
index 00000000..bf7f3674
--- /dev/null
+++ b/pkgs/fcf-containers.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, doctest, first-class-families, ghc-prim, lib
+, mtl
+}:
+mkDerivation {
+  pname = "fcf-containers";
+  version = "0.7.1";
+  sha256 = "1a8fedce82b6daca5a0ea0e9b1913da3e908db2cea0f6efbfa9f1305d1df6488";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [ base first-class-families ghc-prim mtl ];
+  executableHaskellDepends = [ base first-class-families ];
+  testHaskellDepends = [
+    base doctest first-class-families ghc-prim
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/gspia/fcf-containers";
+  description = "Data structures and algorithms for first-class-families";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/finite-field.nix b/pkgs/finite-field.nix
new file mode 100644
index 00000000..6fad6c1e
--- /dev/null
+++ b/pkgs/finite-field.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, containers, deepseq, hashable, lib, primes
+, QuickCheck, singletons, tasty, tasty-hunit, tasty-quickcheck
+, tasty-th, template-haskell
+}:
+mkDerivation {
+  pname = "finite-field";
+  version = "0.10.0";
+  sha256 = "b279ac001447da39cae504ecd3fc5efed43814fdf6f680c0d4a8afd7086882b3";
+  libraryHaskellDepends = [
+    base deepseq hashable singletons template-haskell
+  ];
+  testHaskellDepends = [
+    base containers deepseq hashable primes QuickCheck singletons tasty
+    tasty-hunit tasty-quickcheck tasty-th
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Finite Fields";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/first-class-families.nix b/pkgs/first-class-families.nix
new file mode 100644
index 00000000..f79eabe9
--- /dev/null
+++ b/pkgs/first-class-families.nix
@@ -0,0 +1,17 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "first-class-families";
+  version = "0.8.0.1";
+  sha256 = "4a1c8fbdbe01757ea8dc3190050d7a4a72c86e205d23676182292fe192c1da72";
+  revision = "2";
+  editedCabalFile = "0idiqb4ckwa7hya827gc2cbjh83wmz3cppnl124834pkla2h99np";
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/Lysxia/first-class-families#readme";
+  description = "First-class type families";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/foldl.nix b/pkgs/foldl.nix
new file mode 100644
index 00000000..b580fac2
--- /dev/null
+++ b/pkgs/foldl.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, base, bytestring, comonad, containers
+, contravariant, criterion, doctest, hashable, lib, primitive
+, profunctors, random, semigroupoids, text, transformers
+, unordered-containers, vector
+}:
+mkDerivation {
+  pname = "foldl";
+  version = "1.4.12";
+  sha256 = "4f59360d96fb9ff10861944dd8a89b2448ea2b7dedc376546f4de80125f5c47d";
+  revision = "5";
+  editedCabalFile = "1b97k85zryid7x2ygi92ilv480ahfjn5yf1f4blllwyxn7zgvjv4";
+  libraryHaskellDepends = [
+    base bytestring comonad containers contravariant hashable primitive
+    profunctors random semigroupoids text transformers
+    unordered-containers vector
+  ];
+  testHaskellDepends = [ base doctest ];
+  benchmarkHaskellDepends = [ base criterion ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Composable, streaming, and efficient left folds";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/foundation.nix b/pkgs/foundation.nix
new file mode 100644
index 00000000..0451734a
--- /dev/null
+++ b/pkgs/foundation.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, basement, gauge, ghc-prim, lib }:
+mkDerivation {
+  pname = "foundation";
+  version = "0.0.29";
+  sha256 = "34839bab424ffd5aed228271d75b15a84ed94eab515e44be909a9b37948173c1";
+  libraryHaskellDepends = [ base basement ghc-prim ];
+  testHaskellDepends = [ base basement ];
+  benchmarkHaskellDepends = [ base basement gauge ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-foundation/foundation";
+  description = "Alternative prelude with batteries and no dependencies";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/fourmolu.nix b/pkgs/fourmolu.nix
new file mode 100644
index 00000000..cce0f3a2
--- /dev/null
+++ b/pkgs/fourmolu.nix
@@ -0,0 +1,37 @@
+{ mkDerivation, aeson, ansi-terminal, array, base, bytestring
+, Cabal, containers, Diff, directory, dlist, exceptions, filepath
+, ghc-lib-parser, gitrev, hspec, hspec-discover, hspec-megaparsec
+, lib, megaparsec, MemoTrie, mtl, optparse-applicative, path
+, path-io, pretty, process, QuickCheck, syb, template-haskell
+, temporary, text, th-lift-instances, yaml
+}:
+mkDerivation {
+  pname = "fourmolu";
+  version = "0.8.2.0";
+  sha256 = "3dfa8569f16f5aa12f43442e25d1bce13e291b526b2ea941be005ce8fc90cef3";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson ansi-terminal array base bytestring Cabal 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 ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/parsonsmatt/fourmolu";
+  description = "A formatter for Haskell source code";
+  license = lib.licenses.bsd3;
+  mainProgram = "fourmolu";
+}
\ No newline at end of file
diff --git a/pkgs/generic-lens-core.nix b/pkgs/generic-lens-core.nix
new file mode 100644
index 00000000..cf453046
--- /dev/null
+++ b/pkgs/generic-lens-core.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, indexed-profunctors, lib, text }:
+mkDerivation {
+  pname = "generic-lens-core";
+  version = "2.2.1.0";
+  sha256 = "8ee6f17baa52db80763a46814be391418441861b2e519bed8c047db37c622422";
+  revision = "1";
+  editedCabalFile = "1dbjhd6k7ypqa9f4h9v2xndgb4mjhfli3n1vjm8r8ga0kfndbqfn";
+  libraryHaskellDepends = [ base indexed-profunctors text ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/kcsongor/generic-lens";
+  description = "Generically derive traversals, lenses and prisms";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/generic-lens-lite.nix b/pkgs/generic-lens-lite.nix
new file mode 100644
index 00000000..2ad1533a
--- /dev/null
+++ b/pkgs/generic-lens-lite.nix
@@ -0,0 +1,17 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "generic-lens-lite";
+  version = "0.1";
+  sha256 = "865db698880aa050641e43124ce2f3aed064e33c25d3aec85aa040e3e105e01f";
+  revision = "4";
+  editedCabalFile = "1aw808ifylrwjpsf754gzq4npmh7c872cy2fsm7r2gpjgk7mkpp6";
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/phadej/generic-lens-lite";
+  description = "Monomorphic field lens like with generic-lens";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/generic-optics-lite.nix b/pkgs/generic-optics-lite.nix
new file mode 100644
index 00000000..a9fa30c4
--- /dev/null
+++ b/pkgs/generic-optics-lite.nix
@@ -0,0 +1,17 @@
+{ mkDerivation, base, generic-lens-lite, lib, optics-core }:
+mkDerivation {
+  pname = "generic-optics-lite";
+  version = "0.1";
+  sha256 = "b1a75e89e612c8866e47e922db65a7250e3e3890b26309db4d466665c3d4c56d";
+  revision = "4";
+  editedCabalFile = "1k5lkdzzdqq743bcw0shhwxj2i7ywh7rihdgasy543i5mvcp0cr4";
+  libraryHaskellDepends = [ base generic-lens-lite optics-core ];
+  testHaskellDepends = [ base optics-core ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/phadej/generic-lens-lite";
+  description = "Monomorphic field opics like with generic-lens";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/generic-optics.nix b/pkgs/generic-optics.nix
new file mode 100644
index 00000000..85ed4e87
--- /dev/null
+++ b/pkgs/generic-optics.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, doctest, generic-lens-core, HUnit
+, inspection-testing, lib, optics-core, text
+}:
+mkDerivation {
+  pname = "generic-optics";
+  version = "2.2.1.0";
+  sha256 = "5f1c422a22277d5f0fb5fb7493789e02b13e6d5b36ecd33fd44e8796e75a87af";
+  revision = "1";
+  editedCabalFile = "13wkbs8x0clkqzi4xqin89qywpky8jkpz9cxgwsglbpcyw11jvgq";
+  libraryHaskellDepends = [
+    base generic-lens-core optics-core text
+  ];
+  testHaskellDepends = [
+    base doctest HUnit inspection-testing optics-core
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/kcsongor/generic-lens";
+  description = "Generically derive traversals, lenses and prisms";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/generics-sop.nix b/pkgs/generics-sop.nix
new file mode 100644
index 00000000..c2c94b57
--- /dev/null
+++ b/pkgs/generics-sop.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, criterion, deepseq, ghc-prim, lib, sop-core
+, template-haskell, th-abstraction
+}:
+mkDerivation {
+  pname = "generics-sop";
+  version = "0.5.1.2";
+  sha256 = "639d4140520d608a73a81186aca6db40fcb03ec8a818dbce79fcb0b39aa70b25";
+  revision = "1";
+  editedCabalFile = "1s8bx25yrjqy1cj9y1s1m8a8qlby9dxjzin16yymz7g39fqcqxz8";
+  libraryHaskellDepends = [
+    base ghc-prim sop-core template-haskell th-abstraction
+  ];
+  testHaskellDepends = [ base ];
+  benchmarkHaskellDepends = [
+    base criterion deepseq template-haskell
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Generic Programming using True Sums of Products";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/genvalidity-aeson.nix b/pkgs/genvalidity-aeson.nix
new file mode 100644
index 00000000..02556e2b
--- /dev/null
+++ b/pkgs/genvalidity-aeson.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, aeson, base, criterion, deepseq, genvalidity
+, genvalidity-criterion, genvalidity-hspec, genvalidity-scientific
+, genvalidity-text, genvalidity-unordered-containers
+, genvalidity-vector, hspec, lib, QuickCheck, validity
+, validity-aeson
+}:
+mkDerivation {
+  pname = "genvalidity-aeson";
+  version = "1.0.0.1";
+  sha256 = "6101f09c02b925209673d6aed691e64e60a127f41aff1750b27dc7e18caeba48";
+  libraryHaskellDepends = [
+    aeson base genvalidity genvalidity-scientific genvalidity-text
+    genvalidity-unordered-containers genvalidity-vector QuickCheck
+    validity validity-aeson
+  ];
+  testHaskellDepends = [
+    aeson base deepseq genvalidity genvalidity-hspec hspec
+  ];
+  benchmarkHaskellDepends = [
+    aeson base criterion genvalidity-criterion
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/validity#readme";
+  description = "GenValidity support for aeson";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/genvalidity-bytestring.nix b/pkgs/genvalidity-bytestring.nix
new file mode 100644
index 00000000..1e633fd5
--- /dev/null
+++ b/pkgs/genvalidity-bytestring.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, base, bytestring, criterion, deepseq, genvalidity
+, genvalidity-criterion, genvalidity-hspec, hspec, lib, QuickCheck
+, random, validity, validity-bytestring
+}:
+mkDerivation {
+  pname = "genvalidity-bytestring";
+  version = "1.0.0.1";
+  sha256 = "3311f83fabcd549785b009868c63e53723774fa35fe755fe7bfc537c082c6dbb";
+  libraryHaskellDepends = [
+    base bytestring genvalidity QuickCheck random validity
+    validity-bytestring
+  ];
+  testHaskellDepends = [
+    base bytestring deepseq genvalidity genvalidity-hspec hspec
+    QuickCheck validity
+  ];
+  benchmarkHaskellDepends = [
+    base bytestring criterion genvalidity genvalidity-criterion
+    QuickCheck
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/validity#readme";
+  description = "GenValidity support for ByteString";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/genvalidity-hspec.nix b/pkgs/genvalidity-hspec.nix
new file mode 100644
index 00000000..bf6376e0
--- /dev/null
+++ b/pkgs/genvalidity-hspec.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, genvalidity, genvalidity-property, hspec
+, hspec-core, lib, QuickCheck, transformers, validity
+}:
+mkDerivation {
+  pname = "genvalidity-hspec";
+  version = "1.0.0.2";
+  sha256 = "84f9a27f7345616162e80081b867961734fc750acdbac40e64c5db4d7f055b03";
+  libraryHaskellDepends = [
+    base genvalidity genvalidity-property hspec hspec-core QuickCheck
+    transformers validity
+  ];
+  testHaskellDepends = [
+    base genvalidity hspec hspec-core QuickCheck
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/validity#readme";
+  description = "Standard spec's for GenValidity instances";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/genvalidity-scientific.nix b/pkgs/genvalidity-scientific.nix
new file mode 100644
index 00000000..4649d182
--- /dev/null
+++ b/pkgs/genvalidity-scientific.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, genvalidity, genvalidity-hspec, hspec, lib
+, QuickCheck, scientific, validity, validity-scientific
+}:
+mkDerivation {
+  pname = "genvalidity-scientific";
+  version = "1.0.0.0";
+  sha256 = "b85e13c3f54ed955f6d568503d9cda49162f3a4af7560acac62df8a565502176";
+  libraryHaskellDepends = [
+    base genvalidity QuickCheck scientific validity validity-scientific
+  ];
+  testHaskellDepends = [
+    base genvalidity genvalidity-hspec hspec QuickCheck scientific
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/validity#readme";
+  description = "GenValidity support for Scientific";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/genvalidity-sydtest-aeson.nix b/pkgs/genvalidity-sydtest-aeson.nix
new file mode 100644
index 00000000..fc398541
--- /dev/null
+++ b/pkgs/genvalidity-sydtest-aeson.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, aeson, base, bytestring, deepseq, genvalidity
+, genvalidity-aeson, genvalidity-sydtest, genvalidity-text, lib
+, QuickCheck, sydtest, sydtest-discover, text, validity
+}:
+mkDerivation {
+  pname = "genvalidity-sydtest-aeson";
+  version = "1.0.0.0";
+  sha256 = "02ecfc0ecabc6310018ce8ecca220d6388367294c4a1e6b2bbfc9d5de00116d9";
+  libraryHaskellDepends = [
+    aeson base bytestring deepseq genvalidity genvalidity-sydtest
+    QuickCheck sydtest
+  ];
+  testHaskellDepends = [
+    aeson base genvalidity genvalidity-aeson genvalidity-sydtest
+    genvalidity-text QuickCheck sydtest text validity
+  ];
+  testToolDepends = [ sydtest-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://cs-syd.eu";
+  description = "Standard spec's for aeson-related instances in sydtest";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/genvalidity-text.nix b/pkgs/genvalidity-text.nix
new file mode 100644
index 00000000..414fe6fd
--- /dev/null
+++ b/pkgs/genvalidity-text.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, array, base, criterion, genvalidity
+, genvalidity-criterion, genvalidity-hspec, hspec, lib, QuickCheck
+, random, text, validity, validity-text
+}:
+mkDerivation {
+  pname = "genvalidity-text";
+  version = "1.0.0.1";
+  sha256 = "96e19453e45d76cb89794801588a6d9726c5092fef5cd053e7abe4322f553be3";
+  libraryHaskellDepends = [
+    array base genvalidity QuickCheck random text validity
+    validity-text
+  ];
+  testHaskellDepends = [
+    base genvalidity genvalidity-hspec hspec QuickCheck text
+  ];
+  benchmarkHaskellDepends = [
+    base criterion genvalidity genvalidity-criterion QuickCheck text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/validity#readme";
+  description = "GenValidity support for Text";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/genvalidity-unordered-containers.nix b/pkgs/genvalidity-unordered-containers.nix
new file mode 100644
index 00000000..05048136
--- /dev/null
+++ b/pkgs/genvalidity-unordered-containers.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, genvalidity, genvalidity-hspec, hashable
+, hspec, lib, QuickCheck, unordered-containers, validity
+, validity-unordered-containers
+}:
+mkDerivation {
+  pname = "genvalidity-unordered-containers";
+  version = "1.0.0.0";
+  sha256 = "b325c19594853133b62019ad35ed86616b92ac1afd18a5f49a801e3e453fa6e9";
+  libraryHaskellDepends = [
+    base genvalidity hashable QuickCheck unordered-containers validity
+    validity-unordered-containers
+  ];
+  testHaskellDepends = [
+    base genvalidity genvalidity-hspec hspec unordered-containers
+    validity
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/validity#readme";
+  description = "GenValidity support for unordered-containers";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/genvalidity-vector.nix b/pkgs/genvalidity-vector.nix
new file mode 100644
index 00000000..9798d1d3
--- /dev/null
+++ b/pkgs/genvalidity-vector.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, genvalidity, genvalidity-hspec, hspec, lib
+, QuickCheck, validity, validity-vector, vector
+}:
+mkDerivation {
+  pname = "genvalidity-vector";
+  version = "1.0.0.0";
+  sha256 = "fe0dd139da3cafe4a4e05ed19e3efb46743f92743f95615fefbd8027dd925fd0";
+  libraryHaskellDepends = [
+    base genvalidity QuickCheck validity validity-vector vector
+  ];
+  testHaskellDepends = [
+    base genvalidity genvalidity-hspec hspec vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/validity#readme";
+  description = "GenValidity support for vector";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/ghc-byteorder.nix b/pkgs/ghc-byteorder.nix
new file mode 100644
index 00000000..51612c3f
--- /dev/null
+++ b/pkgs/ghc-byteorder.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "ghc-byteorder";
+  version = "4.11.0.0.10";
+  sha256 = "86e50a89798181db4f44ec3848fc52940c73098e88549a351ceb54fefc691fb6";
+  revision = "3";
+  editedCabalFile = "088rz5c0pq2r1w3msy0y9hl4gca8s8nblpcz7w2f5sx5pajg8flj";
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "\"GHC.ByteOrder\" API Compatibility Layer";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/ghc-check.nix b/pkgs/ghc-check.nix
new file mode 100644
index 00000000..b07965c5
--- /dev/null
+++ b/pkgs/ghc-check.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, containers, directory, filepath, ghc
+, ghc-boot, ghc-paths, lib, process, safe-exceptions
+, template-haskell, th-compat, transformers
+}:
+mkDerivation {
+  pname = "ghc-check";
+  version = "0.5.0.8";
+  sha256 = "1025a8353fb7c318b27b8dc6b268d22f1f64c271031ed0ce4defb0f9100d7cd4";
+  libraryHaskellDepends = [
+    base containers directory filepath ghc ghc-boot ghc-paths process
+    safe-exceptions template-haskell th-compat transformers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "detect mismatches between compile-time and run-time versions of the ghc api";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/ghc-exactprint.nix b/pkgs/ghc-exactprint.nix
new file mode 100644
index 00000000..af023738
--- /dev/null
+++ b/pkgs/ghc-exactprint.nix
@@ -0,0 +1,27 @@
+{ mkDerivation, base, bytestring, Cabal-syntax, containers
+, data-default, Diff, directory, fail, filemanip, filepath, free
+, ghc, ghc-boot, ghc-paths, HUnit, lib, mtl, ordered-containers
+, silently, syb
+}:
+mkDerivation {
+  pname = "ghc-exactprint";
+  version = "1.6.0";
+  sha256 = "8eb59736bbf052a380d5c72277abad05802730b37629ea67a4517b2d88dd40fa";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base bytestring containers data-default directory fail filepath
+    free ghc ghc-boot mtl ordered-containers syb
+  ];
+  testHaskellDepends = [
+    base bytestring Cabal-syntax containers data-default Diff directory
+    fail filemanip filepath ghc ghc-boot ghc-paths HUnit mtl
+    ordered-containers silently syb
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "ExactPrint for GHC";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/ghc-lib-parser-ex.nix b/pkgs/ghc-lib-parser-ex.nix
new file mode 100644
index 00000000..31f9bdff
--- /dev/null
+++ b/pkgs/ghc-lib-parser-ex.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, bytestring, containers, directory, extra
+, filepath, ghc-lib-parser, lib, tasty, tasty-hunit, uniplate
+}:
+mkDerivation {
+  pname = "ghc-lib-parser-ex";
+  version = "9.4.0.0";
+  sha256 = "ce3ff339a0a259a18ae921c547b35732eaca1a567a33fba1a7c65c16c973191b";
+  libraryHaskellDepends = [
+    base bytestring containers ghc-lib-parser uniplate
+  ];
+  testHaskellDepends = [
+    base directory extra filepath ghc-lib-parser tasty tasty-hunit
+    uniplate
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/shayne-fletcher/ghc-lib-parser-ex#readme";
+  description = "Algorithms on GHC parse trees";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/ghc-lib-parser.nix b/pkgs/ghc-lib-parser.nix
new file mode 100644
index 00000000..34daced1
--- /dev/null
+++ b/pkgs/ghc-lib-parser.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, alex, array, base, binary, bytestring, containers
+, deepseq, directory, exceptions, filepath, ghc-prim, happy, lib
+, parsec, pretty, process, time, transformers, unix
+}:
+mkDerivation {
+  pname = "ghc-lib-parser";
+  version = "9.4.2.20220822";
+  sha256 = "3eb1fd79734728fffb39c98a4a42747d0db2d35380fec8ab24bbea5d76b93847";
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    array base binary bytestring containers deepseq directory
+    exceptions filepath ghc-prim parsec pretty process time
+    transformers unix
+  ];
+  libraryToolDepends = [ alex happy ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/digital-asset/ghc-lib";
+  description = "The GHC API, decoupled from GHC versions";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/ghc-paths.nix b/pkgs/ghc-paths.nix
new file mode 100644
index 00000000..2bde8965
--- /dev/null
+++ b/pkgs/ghc-paths.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, Cabal, directory, lib }:
+mkDerivation {
+  pname = "ghc-paths";
+  version = "0.1.0.12";
+  sha256 = "6ecbe676d073cb07989c61ce4c5709c4e67cbefdd2d55a4095f9388b6fe2c484";
+  revision = "4";
+  editedCabalFile = "1d5za4k498q48wk6cz0jm3d68rh5ldz6adr8vp24nn7jv17g770w";
+  setupHaskellDepends = [ base Cabal directory ];
+  libraryHaskellDepends = [ base ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Knowledge of GHC's installation directories";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/ghc-tcplugins-extra.nix b/pkgs/ghc-tcplugins-extra.nix
new file mode 100644
index 00000000..f0857eb9
--- /dev/null
+++ b/pkgs/ghc-tcplugins-extra.nix
@@ -0,0 +1,14 @@
+{ mkDerivation, base, ghc, lib }:
+mkDerivation {
+  pname = "ghc-tcplugins-extra";
+  version = "0.4.3";
+  sha256 = "e985cda6fc983f703c3ae319e62e1253e25422785ec11992cb3faaaad67480a1";
+  libraryHaskellDepends = [ base ghc ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/clash-lang/ghc-tcplugins-extra#readme";
+  description = "Utilities for writing GHC type-checker plugins";
+  license = lib.licenses.bsd2;
+}
\ No newline at end of file
diff --git a/pkgs/hackage-security.nix b/pkgs/hackage-security.nix
new file mode 100644
index 00000000..52c257b6
--- /dev/null
+++ b/pkgs/hackage-security.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, aeson, base, base16-bytestring, base64-bytestring
+, bytestring, Cabal, Cabal-syntax, containers, cryptohash-sha256
+, directory, ed25519, filepath, ghc-prim, lib, lukko, mtl, network
+, network-uri, parsec, pretty, QuickCheck, tar, tasty, tasty-hunit
+, tasty-quickcheck, template-haskell, temporary, text, time
+, transformers, unordered-containers, vector, zlib
+}:
+mkDerivation {
+  pname = "hackage-security";
+  version = "0.6.2.2";
+  sha256 = "a833a31610220506557e96fb6e3e8b05a2e1db8e7ebc06e91bbb699ddde0b276";
+  revision = "1";
+  editedCabalFile = "01fhp3kzc1wfvixzgnz4y52bzm4sickk1cj7pksrwmbi90dghv0s";
+  libraryHaskellDepends = [
+    base base16-bytestring base64-bytestring bytestring Cabal
+    Cabal-syntax containers cryptohash-sha256 directory ed25519
+    filepath ghc-prim lukko mtl network network-uri parsec pretty tar
+    template-haskell time transformers zlib
+  ];
+  testHaskellDepends = [
+    aeson base bytestring Cabal Cabal-syntax containers network-uri
+    QuickCheck tar tasty tasty-hunit tasty-quickcheck temporary text
+    time unordered-containers vector zlib
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/hackage-security";
+  description = "Hackage security library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/hashable.nix b/pkgs/hashable.nix
new file mode 100644
index 00000000..e9fc942f
--- /dev/null
+++ b/pkgs/hashable.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, bytestring, containers, deepseq, ghc-bignum
+, ghc-prim, HUnit, lib, QuickCheck, random, test-framework
+, test-framework-hunit, test-framework-quickcheck2, text, unix
+}:
+mkDerivation {
+  pname = "hashable";
+  version = "1.4.1.0";
+  sha256 = "e1b305c280e66ad827edeaedd6933b9fc4174f626882877eab2a08344e665e87";
+  libraryHaskellDepends = [
+    base bytestring containers deepseq ghc-bignum ghc-prim text
+  ];
+  testHaskellDepends = [
+    base bytestring ghc-prim HUnit QuickCheck random test-framework
+    test-framework-hunit test-framework-quickcheck2 text unix
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/haskell-unordered-containers/hashable";
+  description = "A class for types that can be converted to a hash value";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/hashing.nix b/pkgs/hashing.nix
new file mode 100644
index 00000000..50d92192
--- /dev/null
+++ b/pkgs/hashing.nix
@@ -0,0 +1,27 @@
+{ mkDerivation, array, base, bytestring, cryptonite, lib, mtl
+, QuickCheck, template-haskell
+}:
+mkDerivation {
+  pname = "hashing";
+  version = "0.1.0.1";
+  sha256 = "e5a4a19c6cd6f0a0adda381db76d608d23f8d303e68f1d744735433f91f49410";
+  revision = "2";
+  editedCabalFile = "1rwl68jiivw7f2f5cg73sr3dawlbmklnwyiwivrcsihrg4b1z1lq";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [ array base bytestring ];
+  executableHaskellDepends = [
+    array base bytestring mtl QuickCheck
+  ];
+  testHaskellDepends = [
+    array base bytestring cryptonite mtl QuickCheck template-haskell
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/wangbj/hashing";
+  description = "A pure haskell library implements several hash algorithms";
+  license = lib.licenses.mit;
+  mainProgram = "hashing-exe";
+}
\ No newline at end of file
diff --git a/pkgs/hashtables.nix b/pkgs/hashtables.nix
new file mode 100644
index 00000000..8cd9af12
--- /dev/null
+++ b/pkgs/hashtables.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, ghc-prim, hashable, HUnit, lib, mwc-random
+, primitive, QuickCheck, test-framework, test-framework-hunit
+, test-framework-quickcheck2, vector
+}:
+mkDerivation {
+  pname = "hashtables";
+  version = "1.3";
+  sha256 = "af785a6d13842ebbd804b0ec174dd957a2591b224434e3ce883f537321f90dd3";
+  libraryHaskellDepends = [
+    base ghc-prim hashable primitive vector
+  ];
+  testHaskellDepends = [
+    base ghc-prim hashable HUnit mwc-random primitive QuickCheck
+    test-framework test-framework-hunit test-framework-quickcheck2
+    vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/gregorycollins/hashtables";
+  description = "Mutable hash tables in the ST monad";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/haskell-src-meta.nix b/pkgs/haskell-src-meta.nix
new file mode 100644
index 00000000..9e39913d
--- /dev/null
+++ b/pkgs/haskell-src-meta.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, containers, haskell-src-exts, HUnit, lib
+, pretty, syb, tasty, tasty-hunit, template-haskell, th-orphans
+}:
+mkDerivation {
+  pname = "haskell-src-meta";
+  version = "0.8.11";
+  sha256 = "3ca7fb27deceb3116682c24d9c122dc4c328a7566c39076c924f407556077af2";
+  libraryHaskellDepends = [
+    base haskell-src-exts pretty syb template-haskell th-orphans
+  ];
+  testHaskellDepends = [
+    base containers haskell-src-exts HUnit pretty syb tasty tasty-hunit
+    template-haskell
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Parse source to template-haskell abstract syntax";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/hedgehog-golden.nix b/pkgs/hedgehog-golden.nix
new file mode 100644
index 00000000..d635f1ab
--- /dev/null
+++ b/pkgs/hedgehog-golden.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
+, Diff, directory, extra, fetchgit, hedgehog, lib, text, with-utf8
+}:
+mkDerivation {
+  pname = "hedgehog-golden";
+  version = "1.0.2";
+  src = fetchgit {
+    url = "https://github.com/maybe-hedgehog-later/hedgehog-golden";
+    sha256 = "19np0pzvi70bkknnjh9pkcm7nwq11ia5cb7iy4h1in9n4szj3i3f";
+    rev = "4ab2906b3f0be5e31ee5a8585e45d43392694246";
+    fetchSubmodules = true;
+  };
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    aeson aeson-pretty base bytestring containers Diff directory extra
+    hedgehog text
+  ];
+  testHaskellDepends = [ aeson base hedgehog with-utf8 ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/felixmulder/hedgehog-golden";
+  description = "Golden testing capabilities for hedgehog using Aeson";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/hedgehog.nix b/pkgs/hedgehog.nix
new file mode 100644
index 00000000..fe92c29b
--- /dev/null
+++ b/pkgs/hedgehog.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, ansi-terminal, async, barbies, base, bytestring
+, concurrent-output, containers, deepseq, directory, erf
+, exceptions, lib, lifted-async, mmorph, monad-control, mtl
+, pretty-show, primitive, random, resourcet, stm, template-haskell
+, text, time, transformers, transformers-base, wl-pprint-annotated
+}:
+mkDerivation {
+  pname = "hedgehog";
+  version = "1.2";
+  sha256 = "2859c7daa665250bb249614da7b55507c6315d9b80e456f1a74f33abfeaf8e7e";
+  libraryHaskellDepends = [
+    ansi-terminal async barbies base bytestring concurrent-output
+    containers deepseq directory erf exceptions lifted-async mmorph
+    monad-control mtl pretty-show primitive random resourcet stm
+    template-haskell text time transformers transformers-base
+    wl-pprint-annotated
+  ];
+  testHaskellDepends = [
+    base containers mmorph mtl pretty-show text transformers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://hedgehog.qa";
+  description = "Release with confidence";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/hie-compat.nix b/pkgs/hie-compat.nix
new file mode 100644
index 00000000..24c11713
--- /dev/null
+++ b/pkgs/hie-compat.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, array, base, bytestring, containers, directory
+, filepath, ghc, ghc-boot, lib, transformers
+}:
+mkDerivation {
+  pname = "hie-compat";
+  version = "0.3.0.0";
+  sha256 = "ab02e969106971f7ef980515f802447c579c088b2e227eb8982999605f392199";
+  libraryHaskellDepends = [
+    array base bytestring containers directory filepath ghc ghc-boot
+    transformers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/haskell-language-server/tree/master/hie-compat#readme";
+  description = "HIE files for GHC 8.6 and other HIE file backports";
+  license = lib.licenses.asl20;
+}
\ No newline at end of file
diff --git a/pkgs/hiedb.nix b/pkgs/hiedb.nix
new file mode 100644
index 00000000..53902235
--- /dev/null
+++ b/pkgs/hiedb.nix
@@ -0,0 +1,29 @@
+{ 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;
+  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
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Generates a references DB from .hie files";
+  license = lib.licenses.bsd3;
+  mainProgram = "hiedb";
+}
\ No newline at end of file
diff --git a/pkgs/hlint.nix b/pkgs/hlint.nix
new file mode 100644
index 00000000..359d6c15
--- /dev/null
+++ b/pkgs/hlint.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs
+, containers, cpphs, data-default, deriving-aeson, directory, extra
+, file-embed, filepath, filepattern, ghc-lib-parser
+, ghc-lib-parser-ex, hscolour, lib, process, refact, text
+, transformers, uniplate, unordered-containers, utf8-string, vector
+, yaml
+}:
+mkDerivation {
+  pname = "hlint";
+  version = "3.5";
+  sha256 = "98bd120a10a086c17d6bf1176a510dc12b36581e5a901f1e024555bb3ccead4f";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    aeson ansi-terminal base bytestring cmdargs containers cpphs
+    data-default deriving-aeson directory extra file-embed filepath
+    filepattern ghc-lib-parser ghc-lib-parser-ex hscolour process
+    refact text transformers uniplate unordered-containers utf8-string
+    vector yaml
+  ];
+  executableHaskellDepends = [ base ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ndmitchell/hlint#readme";
+  description = "Source code suggestions";
+  license = lib.licenses.bsd3;
+  mainProgram = "hlint";
+}
\ No newline at end of file
diff --git a/pkgs/hnix.nix b/pkgs/hnix.nix
new file mode 100644
index 00000000..ccd7a120
--- /dev/null
+++ b/pkgs/hnix.nix
@@ -0,0 +1,64 @@
+{ mkDerivation, aeson, array, base, base16-bytestring, binary
+, bytestring, comonad, containers, criterion, cryptonite, data-fix
+, deepseq, deriving-compat, Diff, directory, exceptions, extra
+, fetchgit, filepath, free, gitrev, Glob, hashable, hashing
+, haskeline, hedgehog, hnix-store-core, hnix-store-remote
+, http-client, http-client-tls, http-types, lens-family
+, lens-family-core, lens-family-th, lib, logict, megaparsec
+, monad-control, monadlist, mtl, neat-interpolation
+, optparse-applicative, parser-combinators, pretty-show
+, prettyprinter, process, ref-tf, regex-tdfa, relude, repline
+, scientific, semialign, serialise, some, split, syb, tasty
+, tasty-hedgehog, tasty-hunit, tasty-th, template-haskell, text
+, th-lift-instances, these, time, transformers, transformers-base
+, unix-compat, unordered-containers, vector, xml
+}:
+mkDerivation {
+  pname = "hnix";
+  version = "0.16.0";
+  src = fetchgit {
+    url = "https://github.com/milloni/hnix";
+    sha256 = "0k6dwf7aaigracwnjlvlbjcl4gb9xv3wqzzy293z2wpm3wsr02m3";
+    rev = "005568ee024eabee129d9cf4ca331c6da260610b";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson array base base16-bytestring binary bytestring comonad
+    containers cryptonite data-fix deepseq deriving-compat directory
+    exceptions extra filepath free gitrev hashable hashing
+    hnix-store-core hnix-store-remote http-client http-client-tls
+    http-types lens-family lens-family-core lens-family-th logict
+    megaparsec monad-control monadlist mtl neat-interpolation
+    optparse-applicative parser-combinators pretty-show prettyprinter
+    process ref-tf regex-tdfa relude scientific semialign serialise
+    some split syb template-haskell text th-lift-instances these time
+    transformers transformers-base unix-compat unordered-containers
+    vector xml
+  ];
+  executableHaskellDepends = [
+    aeson base comonad containers data-fix deepseq exceptions filepath
+    free haskeline optparse-applicative pretty-show prettyprinter
+    ref-tf relude repline serialise template-haskell time
+  ];
+  testHaskellDepends = [
+    base containers data-fix Diff directory exceptions filepath Glob
+    hedgehog megaparsec neat-interpolation optparse-applicative
+    pretty-show prettyprinter process relude serialise split tasty
+    tasty-hedgehog tasty-hunit tasty-th template-haskell time
+    unix-compat
+  ];
+  benchmarkHaskellDepends = [
+    base criterion data-fix exceptions filepath optparse-applicative
+    relude serialise template-haskell time
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-nix/hnix#readme";
+  description = "Haskell implementation of the Nix language";
+  license = lib.licenses.bsd3;
+  mainProgram = "hnix";
+}
\ No newline at end of file
diff --git a/pkgs/hourglass.nix b/pkgs/hourglass.nix
new file mode 100644
index 00000000..155fde0c
--- /dev/null
+++ b/pkgs/hourglass.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, bytestring, deepseq, gauge, lib, mtl
+, old-locale, tasty, tasty-hunit, tasty-quickcheck, time
+}:
+mkDerivation {
+  pname = "hourglass";
+  version = "0.2.12";
+  sha256 = "44335b5c402e80c60f1db6a74462be4ea29d1a9043aa994334ffee1164f1ca4a";
+  libraryHaskellDepends = [ base deepseq ];
+  testHaskellDepends = [
+    base deepseq mtl old-locale tasty tasty-hunit tasty-quickcheck time
+  ];
+  benchmarkHaskellDepends = [
+    base bytestring deepseq gauge mtl old-locale time
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/vincenthz/hs-hourglass";
+  description = "simple performant time related library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/hslua-aeson.nix b/pkgs/hslua-aeson.nix
new file mode 100644
index 00000000..13ba94e9
--- /dev/null
+++ b/pkgs/hslua-aeson.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, aeson, base, bytestring, containers, hashable
+, hslua-core, hslua-marshalling, lib, mtl, QuickCheck
+, quickcheck-instances, scientific, tasty, tasty-quickcheck, text
+, unordered-containers, vector
+}:
+mkDerivation {
+  pname = "hslua-aeson";
+  version = "2.2.1";
+  sha256 = "ab221cf59b915fba43deed51514a3703f7b0e504a2e26c6c787cb855bc9af545";
+  libraryHaskellDepends = [
+    aeson base bytestring containers hashable hslua-core
+    hslua-marshalling mtl scientific text unordered-containers vector
+  ];
+  testHaskellDepends = [
+    aeson base bytestring containers hashable hslua-core
+    hslua-marshalling mtl QuickCheck quickcheck-instances scientific
+    tasty tasty-quickcheck text unordered-containers vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://hslua.org/";
+  description = "Allow aeson data types to be used with Lua";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/hspec-core.nix b/pkgs/hspec-core.nix
new file mode 100644
index 00000000..87172b4f
--- /dev/null
+++ b/pkgs/hspec-core.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, ansi-terminal, array, base, base-orphans
+, call-stack, clock, deepseq, directory, filepath, ghc, ghc-boot-th
+, hspec-expectations, hspec-meta, HUnit, lib, process, QuickCheck
+, quickcheck-io, random, setenv, silently, stm, temporary
+, tf-random, transformers
+}:
+mkDerivation {
+  pname = "hspec-core";
+  version = "2.10.0.1";
+  sha256 = "144b16e45019c910c857cf4c6815a1f928ded861fc7047d64e1809dd2695a93c";
+  libraryHaskellDepends = [
+    ansi-terminal array base call-stack clock deepseq directory
+    filepath ghc ghc-boot-th hspec-expectations HUnit QuickCheck
+    quickcheck-io random setenv stm tf-random transformers
+  ];
+  testHaskellDepends = [
+    ansi-terminal array base base-orphans call-stack clock deepseq
+    directory filepath ghc ghc-boot-th hspec-expectations hspec-meta
+    HUnit process QuickCheck quickcheck-io random setenv silently stm
+    temporary tf-random transformers
+  ];
+  testToolDepends = [ hspec-meta ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  testTarget = "--test-option=--skip --test-option='Test.Hspec.Core.Runner.hspecResult runs specs in parallel'";
+  homepage = "http://hspec.github.io/";
+  description = "A Testing Framework for Haskell";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/hspec-discover.nix b/pkgs/hspec-discover.nix
new file mode 100644
index 00000000..528a9463
--- /dev/null
+++ b/pkgs/hspec-discover.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, directory, filepath, hspec-meta, lib, mockery
+, QuickCheck
+}:
+mkDerivation {
+  pname = "hspec-discover";
+  version = "2.10.0.1";
+  sha256 = "3f55defbe8d5493ff73ffdf84cbe8550fbb44d73f796ab31b5387a4c128047fc";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [ base directory filepath ];
+  executableHaskellDepends = [ base directory filepath ];
+  testHaskellDepends = [
+    base directory filepath hspec-meta mockery QuickCheck
+  ];
+  testToolDepends = [ hspec-meta ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://hspec.github.io/";
+  description = "Automatically discover and run Hspec tests";
+  license = lib.licenses.mit;
+  mainProgram = "hspec-discover";
+}
\ No newline at end of file
diff --git a/pkgs/hspec-meta.nix b/pkgs/hspec-meta.nix
new file mode 100644
index 00000000..802d90db
--- /dev/null
+++ b/pkgs/hspec-meta.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, ansi-terminal, array, base, call-stack, clock
+, deepseq, directory, filepath, ghc, ghc-boot-th, lib, QuickCheck
+, quickcheck-io, random, setenv, stm, time, transformers
+}:
+mkDerivation {
+  pname = "hspec-meta";
+  version = "2.9.3";
+  sha256 = "d546154ac439c445d0d8a70f0977b7332ed8bc325cd902451f544656f5e55de5";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    ansi-terminal array base call-stack clock deepseq directory
+    filepath ghc ghc-boot-th QuickCheck quickcheck-io random setenv stm
+    time transformers
+  ];
+  executableHaskellDepends = [
+    ansi-terminal array base call-stack clock deepseq directory
+    filepath ghc ghc-boot-th QuickCheck quickcheck-io random setenv
+    time transformers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://hspec.github.io/";
+  description = "A version of Hspec which is used to test Hspec itself";
+  license = lib.licenses.mit;
+  mainProgram = "hspec-meta-discover";
+}
\ No newline at end of file
diff --git a/pkgs/hspec.nix b/pkgs/hspec.nix
new file mode 100644
index 00000000..2e948f85
--- /dev/null
+++ b/pkgs/hspec.nix
@@ -0,0 +1,18 @@
+{ mkDerivation, base, hspec-core, hspec-discover
+, hspec-expectations, lib, QuickCheck
+}:
+mkDerivation {
+  pname = "hspec";
+  version = "2.10.3";
+  sha256 = "e381944a27b5e736e514264f534218268785bcf8177d27126c68780fd9df07f2";
+  libraryHaskellDepends = [
+    base hspec-core hspec-discover hspec-expectations QuickCheck
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://hspec.github.io/";
+  description = "A Testing Framework for Haskell";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/http-client.nix b/pkgs/http-client.nix
new file mode 100644
index 00000000..2359fbaa
--- /dev/null
+++ b/pkgs/http-client.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, array, async, base, base64-bytestring
+, blaze-builder, bytestring, case-insensitive, containers, cookie
+, deepseq, directory, exceptions, filepath, ghc-prim, hspec
+, hspec-discover, http-types, iproute, lib, mime-types
+, monad-control, network, network-uri, random, stm
+, streaming-commons, text, time, transformers, zlib
+}:
+mkDerivation {
+  pname = "http-client";
+  version = "0.7.13.1";
+  sha256 = "c98e86a0382fa877e320d83dbbd173c41c966a60a32c9bc597058929a7aa0e27";
+  libraryHaskellDepends = [
+    array async base base64-bytestring blaze-builder bytestring
+    case-insensitive containers cookie deepseq exceptions filepath
+    ghc-prim http-types iproute mime-types network network-uri random
+    stm streaming-commons text time transformers
+  ];
+  testHaskellDepends = [
+    async base blaze-builder bytestring case-insensitive containers
+    cookie deepseq directory hspec http-types monad-control network
+    network-uri streaming-commons text time transformers zlib
+  ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/snoyberg/http-client";
+  description = "An HTTP client engine";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/http-date.nix b/pkgs/http-date.nix
new file mode 100644
index 00000000..3e9b50fd
--- /dev/null
+++ b/pkgs/http-date.nix
@@ -0,0 +1,18 @@
+{ mkDerivation, array, attoparsec, base, bytestring, doctest, hspec
+, lib, old-locale, time
+}:
+mkDerivation {
+  pname = "http-date";
+  version = "0.0.11";
+  sha256 = "32f923ac1ad9bdfeadce7c52a03c9ba6225ba60dc14137cb1cdf32ea84ccf4d3";
+  libraryHaskellDepends = [ array attoparsec base bytestring time ];
+  testHaskellDepends = [
+    base bytestring doctest hspec old-locale time
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "HTTP Date parser/formatter";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/http-types.nix b/pkgs/http-types.nix
new file mode 100644
index 00000000..9610e748
--- /dev/null
+++ b/pkgs/http-types.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, array, base, bytestring, case-insensitive, doctest
+, hspec, lib, QuickCheck, quickcheck-instances, text
+}:
+mkDerivation {
+  pname = "http-types";
+  version = "0.12.3";
+  sha256 = "4e8a4a66477459fa436a331c75e46857ec8026283df984d54f90576cd3024016";
+  libraryHaskellDepends = [
+    array base bytestring case-insensitive text
+  ];
+  testHaskellDepends = [
+    base bytestring doctest hspec QuickCheck quickcheck-instances text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/aristidb/http-types";
+  description = "Generic HTTP types for Haskell (for both client and server code)";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/http2.nix b/pkgs/http2.nix
new file mode 100644
index 00000000..0a312f60
--- /dev/null
+++ b/pkgs/http2.nix
@@ -0,0 +1,37 @@
+{ mkDerivation, aeson, aeson-pretty, array, async, base
+, base16-bytestring, bytestring, case-insensitive, containers
+, cryptonite, directory, filepath, gauge, Glob, heaps, hspec
+, hspec-discover, http-types, lib, mwc-random, network
+, network-byte-order, network-run, psqueues, stm, text
+, time-manager, typed-process, unix-time, unordered-containers
+, vector
+}:
+mkDerivation {
+  pname = "http2";
+  version = "3.0.3";
+  sha256 = "1bae426d9b9c7266b89ae13b8ad7dfb548d16efe4c4dda6c0fa35b7b474c69cf";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    array async base bytestring case-insensitive containers http-types
+    network network-byte-order psqueues stm time-manager unix-time
+  ];
+  testHaskellDepends = [
+    aeson aeson-pretty async base base16-bytestring bytestring
+    cryptonite directory filepath Glob hspec http-types network
+    network-byte-order network-run text typed-process
+    unordered-containers vector
+  ];
+  testToolDepends = [ hspec-discover ];
+  benchmarkHaskellDepends = [
+    array base bytestring case-insensitive containers gauge heaps
+    mwc-random network-byte-order psqueues stm
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/kazu-yamamoto/http2";
+  description = "HTTP/2 library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/incipit-base.nix b/pkgs/incipit-base.nix
new file mode 100644
index 00000000..065608d8
--- /dev/null
+++ b/pkgs/incipit-base.nix
@@ -0,0 +1,18 @@
+{ mkDerivation, base, bytestring, containers, data-default, lib
+, stm, text
+}:
+mkDerivation {
+  pname = "incipit-base";
+  version = "0.3.0.0";
+  sha256 = "d12c13e0bd90276ec71595df68368cbbdaaf58ba79a171c805ec2285413ee41a";
+  libraryHaskellDepends = [
+    base bytestring containers data-default stm text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/tek/incipit-core#readme";
+  description = "A Prelude for Polysemy – Base Reexports";
+  license = "BSD-2-Clause-Patent";
+}
\ No newline at end of file
diff --git a/pkgs/incipit-core.nix b/pkgs/incipit-core.nix
new file mode 100644
index 00000000..bc234d02
--- /dev/null
+++ b/pkgs/incipit-core.nix
@@ -0,0 +1,14 @@
+{ mkDerivation, base, incipit-base, lib, polysemy }:
+mkDerivation {
+  pname = "incipit-core";
+  version = "0.3.0.0";
+  sha256 = "1f6b16d4252ba229c69dfd56450d8b252a8bf2e69c739a565b0d9dbee66f1a3f";
+  libraryHaskellDepends = [ base incipit-base polysemy ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/tek/incipit-core#readme";
+  description = "A Prelude for Polysemy";
+  license = "BSD-2-Clause-Patent";
+}
\ No newline at end of file
diff --git a/pkgs/indexed-traversable-instances.nix b/pkgs/indexed-traversable-instances.nix
new file mode 100644
index 00000000..680b20cd
--- /dev/null
+++ b/pkgs/indexed-traversable-instances.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, containers, indexed-traversable, lib
+, OneTuple, QuickCheck, quickcheck-instances, tagged, tasty
+, tasty-quickcheck, transformers, unordered-containers, vector
+}:
+mkDerivation {
+  pname = "indexed-traversable-instances";
+  version = "0.1.1.1";
+  sha256 = "895ee5063d59e2b58930ca6fa54885bb11f19c8b7c7ba6c7b014f9431cdcc0b0";
+  libraryHaskellDepends = [
+    base indexed-traversable OneTuple tagged unordered-containers
+    vector
+  ];
+  testHaskellDepends = [
+    base containers indexed-traversable OneTuple QuickCheck
+    quickcheck-instances tasty tasty-quickcheck transformers
+    unordered-containers vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "More instances of FunctorWithIndex, FoldableWithIndex, TraversableWithIndex";
+  license = lib.licenses.bsd2;
+}
\ No newline at end of file
diff --git a/pkgs/indexed-traversable.nix b/pkgs/indexed-traversable.nix
new file mode 100644
index 00000000..012d980d
--- /dev/null
+++ b/pkgs/indexed-traversable.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, array, base, containers, lib, transformers }:
+mkDerivation {
+  pname = "indexed-traversable";
+  version = "0.1.2";
+  sha256 = "516858ee7198b1fed1b93c665157f9855fd947379db7f115d48c1b0d670e698d";
+  revision = "2";
+  editedCabalFile = "0l2k9jrmixkkf7qzzq0bqgvk6axaqi9sxxkpb4dgj8frmc4bg8aj";
+  libraryHaskellDepends = [ array base containers transformers ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "FunctorWithIndex, FoldableWithIndex, TraversableWithIndex";
+  license = lib.licenses.bsd2;
+}
\ No newline at end of file
diff --git a/pkgs/integer-logarithms.nix b/pkgs/integer-logarithms.nix
new file mode 100644
index 00000000..840e35e2
--- /dev/null
+++ b/pkgs/integer-logarithms.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, array, base, ghc-bignum, ghc-prim, lib, QuickCheck
+, smallcheck, tasty, tasty-hunit, tasty-quickcheck
+, tasty-smallcheck
+}:
+mkDerivation {
+  pname = "integer-logarithms";
+  version = "1.0.3.1";
+  sha256 = "9b0a9f9fab609b15cd015865721fb05f744a1bc77ae92fd133872de528bbea7f";
+  revision = "3";
+  editedCabalFile = "0z81yksgx20d0rva41blsjcp3jsp1qy9sy385fpig0l074fzv6ym";
+  libraryHaskellDepends = [ array base ghc-bignum ghc-prim ];
+  testHaskellDepends = [
+    base QuickCheck smallcheck tasty tasty-hunit tasty-quickcheck
+    tasty-smallcheck
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskellari/integer-logarithms";
+  description = "Integer logarithms";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/invariant.nix b/pkgs/invariant.nix
new file mode 100644
index 00000000..47186400
--- /dev/null
+++ b/pkgs/invariant.nix
@@ -0,0 +1,27 @@
+{ mkDerivation, array, base, bifunctors, comonad, containers
+, contravariant, ghc-prim, hspec, hspec-discover, lib, profunctors
+, QuickCheck, StateVar, stm, tagged, template-haskell
+, th-abstraction, transformers, transformers-compat
+, unordered-containers
+}:
+mkDerivation {
+  pname = "invariant";
+  version = "0.6";
+  sha256 = "b52b2a798c514e2f3bb37d9d629078f433745fa8a25756198c4d33751d7bce1d";
+  revision = "1";
+  editedCabalFile = "0551ll1swnrmq09j89jqnxl4qnirbbpdpsdym23adaf36qdd7v37";
+  libraryHaskellDepends = [
+    array base bifunctors comonad containers contravariant ghc-prim
+    profunctors StateVar stm tagged template-haskell th-abstraction
+    transformers transformers-compat unordered-containers
+  ];
+  testHaskellDepends = [ base hspec QuickCheck template-haskell ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/nfrisby/invariant-functors";
+  description = "Haskell98 invariant functors";
+  license = lib.licenses.bsd2;
+}
\ No newline at end of file
diff --git a/pkgs/iproute.nix b/pkgs/iproute.nix
new file mode 100644
index 00000000..4fdc9d68
--- /dev/null
+++ b/pkgs/iproute.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, appar, base, byteorder, bytestring, containers
+, doctest, hspec, lib, network, QuickCheck, safe
+}:
+mkDerivation {
+  pname = "iproute";
+  version = "1.7.12";
+  sha256 = "f1751d1579fcbc1d9f86d9d1c9ede48cb71cbeb1d7b2043491c6216e4f236b63";
+  libraryHaskellDepends = [
+    appar base byteorder bytestring containers network
+  ];
+  testHaskellDepends = [
+    appar base byteorder bytestring containers doctest hspec network
+    QuickCheck safe
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://www.mew.org/~kazu/proj/iproute/";
+  description = "IP Routing Table";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/lens-aeson.nix b/pkgs/lens-aeson.nix
new file mode 100644
index 00000000..6e8b67ca
--- /dev/null
+++ b/pkgs/lens-aeson.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, aeson, attoparsec, base, bytestring, lens, lib
+, scientific, text, text-short, unordered-containers, vector
+}:
+mkDerivation {
+  pname = "lens-aeson";
+  version = "1.2.1";
+  sha256 = "347199fe28324940bfa9dfb29010ae37510854cc51f8ef88d0a621afe6daa023";
+  revision = "3";
+  editedCabalFile = "0lqpl5fhl94fm3xcwf8ssz7yg9nyfxp9bw2z959x7hg6bcqmv9p1";
+  libraryHaskellDepends = [
+    aeson attoparsec base bytestring lens scientific text text-short
+    unordered-containers vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/lens/lens-aeson/";
+  description = "Law-abiding lenses for aeson";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/lens-family-th.nix b/pkgs/lens-family-th.nix
new file mode 100644
index 00000000..72dc5855
--- /dev/null
+++ b/pkgs/lens-family-th.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, base, hspec, lib, template-haskell, transformers }:
+mkDerivation {
+  pname = "lens-family-th";
+  version = "0.5.2.1";
+  sha256 = "b01d6bb9325fa1729325ebc94b70ccf7957bbe71cb11367b3acd791a143213f1";
+  libraryHaskellDepends = [ base template-haskell ];
+  testHaskellDepends = [ base hspec template-haskell transformers ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/DanBurton/lens-family-th#readme";
+  description = "Generate lens-family style lenses";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/lens.nix b/pkgs/lens.nix
new file mode 100644
index 00000000..ab6ed3d1
--- /dev/null
+++ b/pkgs/lens.nix
@@ -0,0 +1,41 @@
+{ mkDerivation, array, assoc, base, base-compat, base-orphans
+, bifunctors, bytestring, call-stack, comonad, containers
+, contravariant, criterion, deepseq, distributive, exceptions
+, filepath, free, generic-deriving, ghc-prim, hashable, HUnit
+, indexed-traversable, indexed-traversable-instances
+, kan-extensions, lib, mtl, parallel, profunctors, QuickCheck
+, reflection, semigroupoids, simple-reflect, strict, tagged
+, template-haskell, test-framework, test-framework-hunit
+, test-framework-quickcheck2, text, th-abstraction, these
+, transformers, transformers-compat, unordered-containers, vector
+}:
+mkDerivation {
+  pname = "lens";
+  version = "5.2";
+  sha256 = "b33e2ebede468d9e8acb79d20bb5a5947fc3bec13cc39b122aa131c5e6dcd188";
+  libraryHaskellDepends = [
+    array assoc base base-orphans bifunctors bytestring call-stack
+    comonad containers contravariant distributive exceptions filepath
+    free ghc-prim hashable indexed-traversable
+    indexed-traversable-instances kan-extensions mtl parallel
+    profunctors reflection semigroupoids strict tagged template-haskell
+    text th-abstraction these transformers transformers-compat
+    unordered-containers vector
+  ];
+  testHaskellDepends = [
+    base containers deepseq HUnit mtl QuickCheck simple-reflect
+    test-framework test-framework-hunit test-framework-quickcheck2
+    transformers
+  ];
+  benchmarkHaskellDepends = [
+    base base-compat bytestring comonad containers criterion deepseq
+    generic-deriving transformers unordered-containers vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/lens/";
+  description = "Lenses, Folds and Traversals";
+  license = lib.licenses.bsd2;
+}
\ No newline at end of file
diff --git a/pkgs/lifted-async.nix b/pkgs/lifted-async.nix
new file mode 100644
index 00000000..5ed02c8f
--- /dev/null
+++ b/pkgs/lifted-async.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, async, base, constraints, deepseq, HUnit, lib
+, lifted-base, monad-control, mtl, tasty, tasty-bench
+, tasty-expected-failure, tasty-hunit, tasty-th, transformers-base
+}:
+mkDerivation {
+  pname = "lifted-async";
+  version = "0.10.2.1";
+  sha256 = "0d05715f44bb5464f97bac46302a81338271375b07c54c90efb33b1c0e298e48";
+  libraryHaskellDepends = [
+    async base constraints lifted-base monad-control transformers-base
+  ];
+  testHaskellDepends = [
+    async base HUnit lifted-base monad-control mtl tasty
+    tasty-expected-failure tasty-hunit tasty-th
+  ];
+  benchmarkHaskellDepends = [ async base deepseq tasty-bench ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/maoe/lifted-async";
+  description = "Run lifted IO operations asynchronously and wait for their results";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/linear.nix b/pkgs/linear.nix
new file mode 100644
index 00000000..f1429d0c
--- /dev/null
+++ b/pkgs/linear.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, adjunctions, base, base-orphans, binary, bytes
+, bytestring, cereal, containers, deepseq, distributive, ghc-prim
+, hashable, HUnit, indexed-traversable, lens, lib, random
+, reflection, semigroupoids, semigroups, simple-reflect, tagged
+, template-haskell, test-framework, test-framework-hunit
+, transformers, transformers-compat, unordered-containers, vector
+, void
+}:
+mkDerivation {
+  pname = "linear";
+  version = "1.21.10";
+  sha256 = "b90733227c9d4047e087a0083785e8293dc623169161c6dab12ece1ac90d7ab4";
+  libraryHaskellDepends = [
+    adjunctions base base-orphans binary bytes cereal containers
+    deepseq distributive ghc-prim hashable indexed-traversable lens
+    random reflection semigroupoids semigroups tagged template-haskell
+    transformers transformers-compat unordered-containers vector void
+  ];
+  testHaskellDepends = [
+    base binary bytestring deepseq HUnit reflection simple-reflect
+    test-framework test-framework-hunit vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/ekmett/linear/";
+  description = "Linear Algebra";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/lsp-types.nix b/pkgs/lsp-types.nix
new file mode 100644
index 00000000..42f0fab0
--- /dev/null
+++ b/pkgs/lsp-types.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, aeson, base, binary, containers, data-default
+, deepseq, Diff, dlist, exceptions, filepath, hashable, hspec
+, hspec-discover, lens, lib, mod, mtl, network-uri, QuickCheck
+, quickcheck-instances, safe, scientific, some, template-haskell
+, text, tuple, unordered-containers
+}:
+mkDerivation {
+  pname = "lsp-types";
+  version = "1.6.0.0";
+  sha256 = "385dc4fb3c7fcdb5c6cb26cf9f589b879cdb28dc7a452a6dc628dec369c19802";
+  libraryHaskellDepends = [
+    aeson base binary containers data-default deepseq Diff dlist
+    exceptions filepath hashable lens mod mtl network-uri safe
+    scientific some template-haskell text unordered-containers
+  ];
+  testHaskellDepends = [
+    aeson base filepath hspec lens network-uri QuickCheck
+    quickcheck-instances text tuple
+  ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/lsp";
+  description = "Haskell library for the Microsoft Language Server Protocol, data types";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/lsp.nix b/pkgs/lsp.nix
new file mode 100644
index 00000000..7fa8e8b6
--- /dev/null
+++ b/pkgs/lsp.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, aeson, async, attoparsec, base, bytestring
+, co-log-core, containers, data-default, directory, exceptions
+, filepath, hashable, hspec, hspec-discover, lens, lib, lsp-types
+, mtl, prettyprinter, random, sorted-list, stm, temporary, text
+, text-rope, transformers, unliftio-core, unordered-containers
+, uuid
+}:
+mkDerivation {
+  pname = "lsp";
+  version = "1.6.0.0";
+  sha256 = "896803766e8ceabeacc72743f4b92cf7766b2a1f09be270b29d0a39692b00470";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson async attoparsec base bytestring co-log-core containers
+    data-default directory exceptions filepath hashable lens lsp-types
+    mtl prettyprinter random sorted-list stm temporary text text-rope
+    transformers unliftio-core unordered-containers uuid
+  ];
+  testHaskellDepends = [
+    base containers hspec sorted-list text text-rope
+    unordered-containers
+  ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/lsp";
+  description = "Haskell library for the Microsoft Language Server Protocol";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/lucid.nix b/pkgs/lucid.nix
new file mode 100644
index 00000000..c95b1d30
--- /dev/null
+++ b/pkgs/lucid.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, base, bifunctors, blaze-builder, bytestring
+, containers, criterion, deepseq, hashable, hspec, HUnit, lib
+, mmorph, mtl, parsec, text, transformers
+}:
+mkDerivation {
+  pname = "lucid";
+  version = "2.11.1";
+  sha256 = "dcf57142ca1ad5e6dcecfaf4dba703031886c286f8b07ba8cd4470b077e6798e";
+  revision = "1";
+  editedCabalFile = "0wipmh3xcs00x8lbq5j780rdc2klfj67nzni21qc1pdbhr2whn9d";
+  libraryHaskellDepends = [
+    base blaze-builder bytestring containers hashable mmorph mtl text
+    transformers
+  ];
+  testHaskellDepends = [
+    base bifunctors hspec HUnit mtl parsec text
+  ];
+  benchmarkHaskellDepends = [
+    base blaze-builder bytestring criterion deepseq text transformers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/chrisdone/lucid";
+  description = "Clear to write, read and edit DSL for HTML";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/memory.nix b/pkgs/memory.nix
new file mode 100644
index 00000000..bb9ab816
--- /dev/null
+++ b/pkgs/memory.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, basement, bytestring, deepseq, foundation
+, ghc-prim, lib
+}:
+mkDerivation {
+  pname = "memory";
+  version = "0.18.0";
+  sha256 = "fd4eb6f638e24b81b4e6cdd68772a531726f2f67686c8969d3407d82f7862e3e";
+  libraryHaskellDepends = [
+    base basement bytestring deepseq ghc-prim
+  ];
+  testHaskellDepends = [ base basement bytestring foundation ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/vincenthz/hs-memory";
+  description = "memory and related abstraction stuff";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/monoid-subclasses.nix b/pkgs/monoid-subclasses.nix
new file mode 100644
index 00000000..5bcd277d
--- /dev/null
+++ b/pkgs/monoid-subclasses.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, base, bytestring, containers, lib, primes
+, QuickCheck, quickcheck-instances, tasty, tasty-quickcheck, text
+, vector
+}:
+mkDerivation {
+  pname = "monoid-subclasses";
+  version = "1.1.3";
+  sha256 = "9bf112d64c08438733e17fc0ef8fb2bae004d043ea9672c541f1d20c429cf4d9";
+  revision = "1";
+  editedCabalFile = "0y8sw3zsmz5ssn2gl2fsqg44n7xf3xsf6vhrzwnkbaa97hj76nh2";
+  libraryHaskellDepends = [
+    base bytestring containers primes text vector
+  ];
+  testHaskellDepends = [
+    base bytestring containers primes QuickCheck quickcheck-instances
+    tasty tasty-quickcheck text vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/blamario/monoid-subclasses/";
+  description = "Subclasses of Monoid";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/net-mqtt.nix b/pkgs/net-mqtt.nix
new file mode 100644
index 00000000..0cc65a08
--- /dev/null
+++ b/pkgs/net-mqtt.nix
@@ -0,0 +1,36 @@
+{ mkDerivation, async, attoparsec, attoparsec-binary, base, binary
+, bytestring, checkers, conduit, conduit-extra, connection
+, containers, deepseq, HUnit, lib, network-conduit-tls, network-uri
+, optparse-applicative, QuickCheck, stm, tasty, tasty-hunit
+, tasty-quickcheck, text, websockets
+}:
+mkDerivation {
+  pname = "net-mqtt";
+  version = "0.8.2.2";
+  sha256 = "c3e30f445a7aef4374b015ceb4239d659bab81dfb879f1675a17b458f4f44da9";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    async attoparsec attoparsec-binary base binary bytestring conduit
+    conduit-extra connection containers deepseq network-conduit-tls
+    network-uri QuickCheck stm text websockets
+  ];
+  executableHaskellDepends = [
+    async attoparsec attoparsec-binary base binary bytestring conduit
+    conduit-extra connection containers deepseq network-conduit-tls
+    network-uri optparse-applicative QuickCheck stm text websockets
+  ];
+  testHaskellDepends = [
+    async attoparsec attoparsec-binary base binary bytestring checkers
+    conduit conduit-extra connection containers deepseq HUnit
+    network-conduit-tls network-uri QuickCheck stm tasty tasty-hunit
+    tasty-quickcheck text websockets
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/dustin/mqtt-hs#readme";
+  description = "An MQTT Protocol Implementation";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/network-byte-order.nix b/pkgs/network-byte-order.nix
new file mode 100644
index 00000000..7c69f379
--- /dev/null
+++ b/pkgs/network-byte-order.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, bytestring, doctest, lib }:
+mkDerivation {
+  pname = "network-byte-order";
+  version = "0.1.6";
+  sha256 = "f2b0ccc9b759d686af30aac874fc394c13c1fc8a3db00fac401c9339c263dc5e";
+  revision = "1";
+  editedCabalFile = "0fpyfd1adg9fr7w6afxkx306c0kaz3ji3x78sl29v9j3mh4vdn13";
+  libraryHaskellDepends = [ base bytestring ];
+  testHaskellDepends = [ base bytestring doctest ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Network byte order utilities";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/newtype-generics.nix b/pkgs/newtype-generics.nix
new file mode 100644
index 00000000..e4b6b544
--- /dev/null
+++ b/pkgs/newtype-generics.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, gauge, hspec, hspec-discover, lib, semigroups
+}:
+mkDerivation {
+  pname = "newtype-generics";
+  version = "0.6.2";
+  sha256 = "a1ac6052020a09f1bc5000a141d2edd4b31a82f95ce5957b7eedad40c065a74e";
+  revision = "1";
+  editedCabalFile = "0xgc7sxs1p3qibgwbikjdrhn47j7m4gk5x1wrv9hncks6hd6hsyf";
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base hspec ];
+  testToolDepends = [ hspec-discover ];
+  benchmarkHaskellDepends = [ base gauge semigroups ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/sjakobi/newtype-generics";
+  description = "A typeclass and set of functions for working with newtypes";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/nothunks.nix b/pkgs/nothunks.nix
new file mode 100644
index 00000000..b7680751
--- /dev/null
+++ b/pkgs/nothunks.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, bytestring, containers, ghc-heap, ghc-prim
+, hedgehog, lib, random, stm, tasty, tasty-hedgehog, text, time
+, vector
+}:
+mkDerivation {
+  pname = "nothunks";
+  version = "0.1.3";
+  sha256 = "c191e9c3d86ca006bf8d85adfd936ff997759120b0fcfaf4960a56d8bd850e53";
+  libraryHaskellDepends = [
+    base bytestring containers ghc-heap stm text time vector
+  ];
+  testHaskellDepends = [
+    base containers ghc-prim hedgehog random stm tasty tasty-hedgehog
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Examine values for unexpected thunks";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/optics-core.nix b/pkgs/optics-core.nix
new file mode 100644
index 00000000..ffde6550
--- /dev/null
+++ b/pkgs/optics-core.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, array, base, containers, indexed-profunctors
+, indexed-traversable, lib, transformers
+}:
+mkDerivation {
+  pname = "optics-core";
+  version = "0.4.1";
+  sha256 = "ca64e215f31719482a9449b5d56fbd589367e639d2b1869f7965a3970442949a";
+  revision = "1";
+  editedCabalFile = "0sqwlbl6x0197bpkq7jvn9j5iwyr54z8qwmxbij6qlwjyfld2qxi";
+  libraryHaskellDepends = [
+    array base containers indexed-profunctors indexed-traversable
+    transformers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Optics as an abstract interface: core definitions";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/optics-extra.nix b/pkgs/optics-extra.nix
new file mode 100644
index 00000000..fe269de6
--- /dev/null
+++ b/pkgs/optics-extra.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, array, base, bytestring, containers, hashable
+, indexed-profunctors, indexed-traversable-instances, lib, mtl
+, optics-core, text, transformers, unordered-containers, vector
+}:
+mkDerivation {
+  pname = "optics-extra";
+  version = "0.4.2.1";
+  sha256 = "7e23a7a325e3448354614d3d958279c9ac2fdd0831ceee2808830e7a962fca41";
+  revision = "1";
+  editedCabalFile = "0bpr1bkb7mmww028n8ikwa0qhdl7ybxpb9s887dlp3dvxr5iq8nq";
+  libraryHaskellDepends = [
+    array base bytestring containers hashable indexed-profunctors
+    indexed-traversable-instances mtl optics-core text transformers
+    unordered-containers vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Extra utilities and instances for optics-core";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/optics-th.nix b/pkgs/optics-th.nix
new file mode 100644
index 00000000..7549806a
--- /dev/null
+++ b/pkgs/optics-th.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, containers, lib, mtl, optics-core, tagged
+, template-haskell, th-abstraction, transformers
+}:
+mkDerivation {
+  pname = "optics-th";
+  version = "0.4.1";
+  sha256 = "d73857b79dcd8f7c7e70fa4727f134145b62902e8d3e448f8b25c38a9da4fd17";
+  revision = "2";
+  editedCabalFile = "1fl217q7s0g8a46p2smanhhdj0jqvc9n3lagcnpphkv3fzfgrcbz";
+  libraryHaskellDepends = [
+    base containers mtl optics-core template-haskell th-abstraction
+    transformers
+  ];
+  testHaskellDepends = [ base optics-core tagged ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Optics construction using TemplateHaskell";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/optics.nix b/pkgs/optics.nix
new file mode 100644
index 00000000..79c9ec9e
--- /dev/null
+++ b/pkgs/optics.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, array, base, bytestring, containers
+, indexed-profunctors, inspection-testing, lens, lib, mtl
+, optics-core, optics-extra, optics-th, QuickCheck, random, tasty
+, tasty-bench, tasty-hunit, tasty-quickcheck, template-haskell
+, transformers, unordered-containers, vector
+}:
+mkDerivation {
+  pname = "optics";
+  version = "0.4.2";
+  sha256 = "ebe7553704d3491f02777dc6f02a2cf170d4b87ce5265139ce759314460533c7";
+  libraryHaskellDepends = [
+    array base containers mtl optics-core optics-extra optics-th
+    transformers
+  ];
+  testHaskellDepends = [
+    base containers indexed-profunctors inspection-testing mtl
+    optics-core QuickCheck random tasty tasty-hunit tasty-quickcheck
+    template-haskell
+  ];
+  benchmarkHaskellDepends = [
+    base bytestring containers lens tasty-bench transformers
+    unordered-containers vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Optics as an abstract interface";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/pandoc.nix b/pkgs/pandoc.nix
new file mode 100644
index 00000000..a50c3529
--- /dev/null
+++ b/pkgs/pandoc.nix
@@ -0,0 +1,64 @@
+{ mkDerivation, aeson, aeson-pretty, array, attoparsec, base
+, base64, binary, blaze-html, blaze-markup, bytestring
+, case-insensitive, citeproc, commonmark, commonmark-extensions
+, commonmark-pandoc, connection, containers, data-default, deepseq
+, Diff, directory, doclayout, doctemplates, emojis, exceptions
+, file-embed, filepath, Glob, gridtables, haddock-library, hslua
+, hslua-aeson, hslua-module-doclayout, hslua-module-path
+, hslua-module-system, hslua-module-text, hslua-module-version
+, http-client, http-client-tls, http-types, ipynb, jira-wiki-markup
+, JuicyPixels, lib, lpeg, mtl, network, network-uri
+, pandoc-lua-marshal, pandoc-types, parsec, pretty, pretty-show
+, process, random, safe, scientific, servant-server, SHA
+, skylighting, skylighting-core, split, syb, tagsoup, tasty
+, tasty-bench, tasty-golden, tasty-hunit, tasty-lua
+, tasty-quickcheck, temporary, texmath, text, text-conversions
+, time, unicode-collation, unicode-transforms, unix, wai, wai-extra
+, warp, xml, xml-conduit, xml-types, yaml, zip-archive, zlib
+}:
+mkDerivation {
+  pname = "pandoc";
+  version = "2.19.2";
+  sha256 = "36e83694c36a5af35a4442c4d5abd4273289d9d309793466f59c1632e87d4245";
+  configureFlags = [ "-f-trypandoc" ];
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    aeson aeson-pretty array attoparsec base base64 binary blaze-html
+    blaze-markup bytestring case-insensitive citeproc commonmark
+    commonmark-extensions commonmark-pandoc connection containers
+    data-default deepseq directory doclayout doctemplates emojis
+    exceptions file-embed filepath Glob gridtables haddock-library
+    hslua hslua-aeson hslua-module-doclayout hslua-module-path
+    hslua-module-system hslua-module-text hslua-module-version
+    http-client http-client-tls http-types ipynb jira-wiki-markup
+    JuicyPixels lpeg mtl network network-uri pandoc-lua-marshal
+    pandoc-types parsec pretty pretty-show process random safe
+    scientific servant-server SHA skylighting skylighting-core split
+    syb tagsoup temporary texmath text text-conversions time
+    unicode-collation unicode-transforms unix wai xml xml-conduit
+    xml-types yaml zip-archive zlib
+  ];
+  executableHaskellDepends = [ base safe wai-extra warp ];
+  testHaskellDepends = [
+    base bytestring containers Diff directory doctemplates exceptions
+    filepath Glob hslua mtl pandoc-types process tasty tasty-golden
+    tasty-hunit tasty-lua tasty-quickcheck text time xml zip-archive
+  ];
+  benchmarkHaskellDepends = [
+    base bytestring deepseq mtl tasty-bench text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  postInstall = ''
+    mkdir -p $out/share/man/man1
+    mv "man/"*.1 $out/share/man/man1/
+  '';
+  homepage = "https://pandoc.org";
+  description = "Conversion between markup formats";
+  license = lib.licenses.gpl2Plus;
+  mainProgram = "pandoc";
+}
\ No newline at end of file
diff --git a/pkgs/parallel.nix b/pkgs/parallel.nix
new file mode 100644
index 00000000..7eb81fda
--- /dev/null
+++ b/pkgs/parallel.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, array, base, containers, deepseq, ghc-prim, lib }:
+mkDerivation {
+  pname = "parallel";
+  version = "3.2.2.0";
+  sha256 = "170453a71a2a8b31cca63125533f7771d7debeb639700bdabdd779c34d8a6ef6";
+  revision = "5";
+  editedCabalFile = "1q45wzpf2sda0244l55gakl3g5zqhcb27m86nhl3vslcjc35mpbf";
+  libraryHaskellDepends = [ array base containers deepseq ghc-prim ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Parallel programming library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/pcg-random.nix b/pkgs/pcg-random.nix
new file mode 100644
index 00000000..8b36621c
--- /dev/null
+++ b/pkgs/pcg-random.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, bytestring, Cabal, cabal-doctest, doctest
+, entropy, lib, primitive, random
+}:
+mkDerivation {
+  pname = "pcg-random";
+  version = "0.1.3.7";
+  sha256 = "e6c8c26841b5d0d6d9e2816e952e397062730fd1a0bc13cf7c3ebcba6dc1d2d0";
+  setupHaskellDepends = [ base Cabal cabal-doctest ];
+  libraryHaskellDepends = [
+    base bytestring entropy primitive random
+  ];
+  testHaskellDepends = [ base doctest ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/cchalmers/pcg-random";
+  description = "Haskell bindings to the PCG random number generator";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/polysemy-extra.nix b/pkgs/polysemy-extra.nix
new file mode 100644
index 00000000..ccdfa3a4
--- /dev/null
+++ b/pkgs/polysemy-extra.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, containers, lib, polysemy, polysemy-kvstore
+}:
+mkDerivation {
+  pname = "polysemy-extra";
+  version = "0.2.1.0";
+  sha256 = "523b9f267afbe492238e072fa39c1153e5fb471709d0c77802125a96494c5ec0";
+  libraryHaskellDepends = [
+    base containers polysemy polysemy-kvstore
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Extra Input and Output functions for polysemy";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/polysemy-kvstore.nix b/pkgs/polysemy-kvstore.nix
new file mode 100644
index 00000000..2ec396a1
--- /dev/null
+++ b/pkgs/polysemy-kvstore.nix
@@ -0,0 +1,13 @@
+{ mkDerivation, base, containers, lib, polysemy }:
+mkDerivation {
+  pname = "polysemy-kvstore";
+  version = "0.1.3.0";
+  sha256 = "8d88fddae6477be9e36cb34d4cdbf226cc548207ef761b83a3513feb780ccbf0";
+  libraryHaskellDepends = [ base containers polysemy ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "KVStore effect for polysemy";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/polysemy-methodology.nix b/pkgs/polysemy-methodology.nix
new file mode 100644
index 00000000..3583eabe
--- /dev/null
+++ b/pkgs/polysemy-methodology.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, lib, polysemy, polysemy-kvstore
+, polysemy-several
+}:
+mkDerivation {
+  pname = "polysemy-methodology";
+  version = "0.2.1.0";
+  sha256 = "2fccb2a89981389d2a2be827025177a32f4196cd46c69992d53af8aa0b35ad9e";
+  revision = "2";
+  editedCabalFile = "0dpancn85f8j3pxhk43lik6fbznp502cc68rkhqkan791kh1bbc7";
+  libraryHaskellDepends = [
+    base polysemy polysemy-kvstore polysemy-several
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Domain modelling algebra for polysemy";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/polysemy-path.nix b/pkgs/polysemy-path.nix
new file mode 100644
index 00000000..f52e0e76
--- /dev/null
+++ b/pkgs/polysemy-path.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, base, lib, path, polysemy, polysemy-extra }:
+mkDerivation {
+  pname = "polysemy-path";
+  version = "0.2.1.0";
+  sha256 = "d9c245e9ff1afbd519179cf3fbcfbf3934360721cfdfc35364f86e314854aa6a";
+  revision = "1";
+  editedCabalFile = "0x9b1zm804bnmjs0qbrx23s1mzgb6h9dqfchf8i3ri7x1sy24ibh";
+  libraryHaskellDepends = [ base path polysemy polysemy-extra ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Polysemy versions of Path functions";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/polysemy-plugin.nix b/pkgs/polysemy-plugin.nix
new file mode 100644
index 00000000..0e68f525
--- /dev/null
+++ b/pkgs/polysemy-plugin.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, base, Cabal, cabal-doctest, containers, doctest
+, fetchgit, ghc, ghc-tcplugins-extra, hspec, hspec-discover
+, inspection-testing, lib, polysemy, should-not-typecheck, syb
+, transformers
+}:
+mkDerivation {
+  pname = "polysemy-plugin";
+  version = "0.4.0.0";
+  src = fetchgit {
+    url = "https://github.com/locallycompact/polysemy";
+    sha256 = "0g75az24xc0694hakmkfwxmwd6bm79v48j42yjibiixy14dj1d5g";
+    rev = "5942a398ef02bbbe94bedd68f8628390ed223107";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/polysemy-plugin/; echo source root reset to $sourceRoot";
+  setupHaskellDepends = [ base Cabal cabal-doctest ];
+  libraryHaskellDepends = [
+    base containers ghc ghc-tcplugins-extra polysemy syb transformers
+  ];
+  testHaskellDepends = [
+    base containers doctest ghc ghc-tcplugins-extra hspec
+    inspection-testing polysemy should-not-typecheck syb transformers
+  ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/polysemy-research/polysemy#readme";
+  description = "Disambiguate obvious uses of effects";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/polysemy-several.nix b/pkgs/polysemy-several.nix
new file mode 100644
index 00000000..7476b903
--- /dev/null
+++ b/pkgs/polysemy-several.nix
@@ -0,0 +1,13 @@
+{ mkDerivation, base, lib, polysemy }:
+mkDerivation {
+  pname = "polysemy-several";
+  version = "0.1.1.0";
+  sha256 = "dc02a59d49b4c43b94022a3ab0a6b3cc2556e76fa1077529a4c2da31dede7641";
+  libraryHaskellDepends = [ base polysemy ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Run several effects at once, taken from the polysemy-zoo";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/polysemy-time.nix b/pkgs/polysemy-time.nix
new file mode 100644
index 00000000..66218503
--- /dev/null
+++ b/pkgs/polysemy-time.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, aeson, base, incipit-core, lib, polysemy-test, stm
+, tasty, template-haskell, time, torsor
+}:
+mkDerivation {
+  pname = "polysemy-time";
+  version = "0.5.1.0";
+  sha256 = "857dbbe99e6e6a1a061aa9cac88a630f2bddc0c748ed8ec8d076b3b44d11e59a";
+  libraryHaskellDepends = [
+    aeson base incipit-core stm template-haskell time torsor
+  ];
+  testHaskellDepends = [
+    base incipit-core polysemy-test tasty time
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/tek/polysemy-time#readme";
+  description = "Polysemy effects for time";
+  license = "BSD-2-Clause-Patent";
+}
\ No newline at end of file
diff --git a/pkgs/polysemy-vinyl.nix b/pkgs/polysemy-vinyl.nix
new file mode 100644
index 00000000..659d550a
--- /dev/null
+++ b/pkgs/polysemy-vinyl.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, lib, polysemy, polysemy-extra
+, polysemy-several, vinyl
+}:
+mkDerivation {
+  pname = "polysemy-vinyl";
+  version = "0.1.5.0";
+  sha256 = "84cdb95360548060eeb586e9948b8a751a55e8a5b06cfc50013a3227b60dc91b";
+  revision = "1";
+  editedCabalFile = "13f289dxr03habyggn3vl7lzrl2r3a9r0y0bisrfmq48qaiv08n1";
+  libraryHaskellDepends = [
+    base polysemy polysemy-extra polysemy-several vinyl
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Functions for mapping vinyl records in polysemy";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/polysemy-zoo.nix b/pkgs/polysemy-zoo.nix
new file mode 100644
index 00000000..33bbc4bc
--- /dev/null
+++ b/pkgs/polysemy-zoo.nix
@@ -0,0 +1,27 @@
+{ mkDerivation, async, base, compact, constraints, containers
+, contravariant, exceptions, ghc-prim, hspec, hspec-discover, lib
+, mtl, polysemy, polysemy-plugin, random, reflection, streaming
+, text, transformers
+}:
+mkDerivation {
+  pname = "polysemy-zoo";
+  version = "0.8.0.0";
+  sha256 = "8c46937c61c980ac3024c4eeb1bf32a686eb2c5bcc2a65fad25d102512c89afa";
+  libraryHaskellDepends = [
+    async base compact constraints containers contravariant exceptions
+    ghc-prim mtl polysemy random reflection streaming text transformers
+  ];
+  testHaskellDepends = [
+    async base compact constraints containers contravariant exceptions
+    ghc-prim hspec mtl polysemy polysemy-plugin random reflection
+    streaming text transformers
+  ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/isovector/polysemy-zoo#readme";
+  description = "Experimental, user-contributed effects and interpreters for polysemy";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/polysemy.nix b/pkgs/polysemy.nix
new file mode 100644
index 00000000..e96692fc
--- /dev/null
+++ b/pkgs/polysemy.nix
@@ -0,0 +1,34 @@
+{ mkDerivation, async, base, Cabal, cabal-doctest, containers
+, criterion, doctest, first-class-families, free, freer-simple
+, hspec, hspec-discover, inspection-testing, lib, mtl, QuickCheck
+, stm, syb, template-haskell, th-abstraction, transformers
+, type-errors, unagi-chan
+}:
+mkDerivation {
+  pname = "polysemy";
+  version = "1.7.1.0";
+  sha256 = "4c9556c0c3f38f5fa655567106ecb53cd357e6ffaf8289753ba6dc26fd4bc224";
+  setupHaskellDepends = [ base Cabal cabal-doctest ];
+  libraryHaskellDepends = [
+    async base containers first-class-families mtl QuickCheck stm syb
+    template-haskell th-abstraction transformers type-errors unagi-chan
+  ];
+  testHaskellDepends = [
+    async base containers doctest first-class-families hspec
+    inspection-testing mtl QuickCheck stm syb template-haskell
+    th-abstraction transformers type-errors unagi-chan
+  ];
+  testToolDepends = [ hspec-discover ];
+  benchmarkHaskellDepends = [
+    async base containers criterion first-class-families free
+    freer-simple mtl QuickCheck stm syb template-haskell th-abstraction
+    transformers type-errors unagi-chan
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/polysemy-research/polysemy#readme";
+  description = "Higher-order, low-boilerplate free monads";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/postgresql-libpq.nix b/pkgs/postgresql-libpq.nix
new file mode 100644
index 00000000..0de659e1
--- /dev/null
+++ b/pkgs/postgresql-libpq.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, bytestring, Cabal, lib, postgresql, unix }:
+mkDerivation {
+  pname = "postgresql-libpq";
+  version = "0.9.4.3";
+  sha256 = "e3e246dcd55352fce514969a72a6fe37771102034fb8e662fdc7ae780b83d6bd";
+  revision = "3";
+  editedCabalFile = "02cj493a2qxl5hddiq0579079s398hdqqy164pig6d61nl7q66cs";
+  setupHaskellDepends = [ base Cabal ];
+  libraryHaskellDepends = [ base bytestring unix ];
+  librarySystemDepends = [ postgresql ];
+  testHaskellDepends = [ base bytestring ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskellari/postgresql-libpq";
+  description = "low-level binding to libpq";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/postgresql-simple.nix b/pkgs/postgresql-simple.nix
new file mode 100644
index 00000000..571ca79b
--- /dev/null
+++ b/pkgs/postgresql-simple.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, aeson, attoparsec, base, base16-bytestring
+, bytestring, bytestring-builder, case-insensitive, containers
+, cryptohash-md5, filepath, hashable, HUnit, inspection-testing
+, lib, Only, postgresql-libpq, scientific, tasty, tasty-golden
+, tasty-hunit, template-haskell, text, time-compat, transformers
+, uuid-types, vector
+}:
+mkDerivation {
+  pname = "postgresql-simple";
+  version = "0.6.4";
+  sha256 = "6d90394203ea3aa27cae4492569ab14bf175cd2d30112e565ffb92dbe95ce267";
+  revision = "8";
+  editedCabalFile = "1qavb3qs1g307pc19k9y3yvqp0c1srwsplijvayn9ldp0bxdy6q8";
+  libraryHaskellDepends = [
+    aeson attoparsec base bytestring bytestring-builder
+    case-insensitive containers hashable Only postgresql-libpq
+    scientific template-haskell text time-compat transformers
+    uuid-types vector
+  ];
+  testHaskellDepends = [
+    aeson base base16-bytestring bytestring case-insensitive containers
+    cryptohash-md5 filepath HUnit inspection-testing postgresql-libpq
+    tasty tasty-golden tasty-hunit text time-compat vector
+  ];
+  benchmarkHaskellDepends = [ base vector ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Mid-Level PostgreSQL client library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/pretty-simple.nix b/pkgs/pretty-simple.nix
new file mode 100644
index 00000000..410e2c15
--- /dev/null
+++ b/pkgs/pretty-simple.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, base, Cabal, cabal-doctest, containers, criterion
+, doctest, Glob, lib, mtl, optparse-applicative, prettyprinter
+, prettyprinter-ansi-terminal, QuickCheck, template-haskell, text
+, transformers
+}:
+mkDerivation {
+  pname = "pretty-simple";
+  version = "4.1.1.0";
+  sha256 = "dae179b1a967e1d443f135e5b3f5abdf378e515fb8ea86e091bc487dc1a25d4a";
+  isLibrary = true;
+  isExecutable = true;
+  setupHaskellDepends = [ base Cabal cabal-doctest ];
+  libraryHaskellDepends = [
+    base containers mtl prettyprinter prettyprinter-ansi-terminal text
+    transformers
+  ];
+  executableHaskellDepends = [ base optparse-applicative text ];
+  testHaskellDepends = [
+    base doctest Glob QuickCheck template-haskell
+  ];
+  benchmarkHaskellDepends = [ base criterion text ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/cdepillabout/pretty-simple";
+  description = "pretty printer for data types with a 'Show' instance";
+  license = lib.licenses.bsd3;
+  mainProgram = "pretty-simple";
+}
\ No newline at end of file
diff --git a/pkgs/prettyprinter-ansi-terminal.nix b/pkgs/prettyprinter-ansi-terminal.nix
new file mode 100644
index 00000000..ab74c0e8
--- /dev/null
+++ b/pkgs/prettyprinter-ansi-terminal.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, ansi-terminal, base, base-compat, containers
+, deepseq, doctest, gauge, lib, prettyprinter, QuickCheck, text
+}:
+mkDerivation {
+  pname = "prettyprinter-ansi-terminal";
+  version = "1.1.3";
+  sha256 = "813739308ad6050620578994effe21058a170a341716acf52573fae42b5b1db3";
+  libraryHaskellDepends = [ ansi-terminal base prettyprinter text ];
+  testHaskellDepends = [ base doctest ];
+  benchmarkHaskellDepends = [
+    base base-compat containers deepseq gauge prettyprinter QuickCheck
+    text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/quchen/prettyprinter";
+  description = "ANSI terminal backend for the »prettyprinter« package";
+  license = lib.licenses.bsd2;
+}
\ No newline at end of file
diff --git a/pkgs/primitive.nix b/pkgs/primitive.nix
new file mode 100644
index 00000000..e15176e8
--- /dev/null
+++ b/pkgs/primitive.nix
@@ -0,0 +1,27 @@
+{ mkDerivation, base, base-orphans, deepseq, ghc-prim, lib
+, QuickCheck, quickcheck-classes-base, tagged, tasty, tasty-bench
+, tasty-quickcheck, template-haskell, transformers
+, transformers-compat
+}:
+mkDerivation {
+  pname = "primitive";
+  version = "0.7.4.0";
+  sha256 = "5b2d6dc2812eb2f6a115f05fcbe3e723d3aeff7894b012c617e075130581add5";
+  libraryHaskellDepends = [
+    base deepseq template-haskell transformers
+  ];
+  testHaskellDepends = [
+    base base-orphans ghc-prim QuickCheck quickcheck-classes-base
+    tagged tasty tasty-quickcheck transformers transformers-compat
+  ];
+  benchmarkHaskellDepends = [
+    base deepseq tasty-bench transformers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/primitive";
+  description = "Primitive memory-related operations";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/proteaaudio-sdl.nix b/pkgs/proteaaudio-sdl.nix
new file mode 100644
index 00000000..18fe6c85
--- /dev/null
+++ b/pkgs/proteaaudio-sdl.nix
@@ -0,0 +1,18 @@
+{ mkDerivation, base, bytestring, c2hs, lib, SDL2 }:
+mkDerivation {
+  pname = "proteaaudio-sdl";
+  version = "0.9.2";
+  sha256 = "8c65a869e7f9af19fc9f7a596b5f12f1551b9008a76b5b85460f304eb6cdc662";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [ base bytestring ];
+  librarySystemDepends = [ SDL2 ];
+  libraryPkgconfigDepends = [ SDL2 ];
+  libraryToolDepends = [ c2hs ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Simple audio library for SDL";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/quickcheck-dynamic.nix b/pkgs/quickcheck-dynamic.nix
new file mode 100644
index 00000000..afe6f8c3
--- /dev/null
+++ b/pkgs/quickcheck-dynamic.nix
@@ -0,0 +1,14 @@
+{ mkDerivation, base, lib, mtl, QuickCheck, random }:
+mkDerivation {
+  pname = "quickcheck-dynamic";
+  version = "2.0.0";
+  sha256 = "78082446894d9522a1e9f9589f758fef2fcb7778d9427fe8ce1cedc156ea48ed";
+  libraryHaskellDepends = [ base mtl QuickCheck random ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/input-output-hk/quickcheck-dynamic#readme";
+  description = "A library for stateful property-based testing";
+  license = lib.licenses.asl20;
+}
\ No newline at end of file
diff --git a/pkgs/quickcheck-instances.nix b/pkgs/quickcheck-instances.nix
new file mode 100644
index 00000000..93ec8c73
--- /dev/null
+++ b/pkgs/quickcheck-instances.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, array, base, bytestring, case-insensitive
+, containers, data-fix, hashable, integer-logarithms, lib, old-time
+, OneTuple, primitive, QuickCheck, scientific, splitmix, strict
+, tagged, text, text-short, these, time, time-compat, transformers
+, transformers-compat, unordered-containers, uuid-types, vector
+}:
+mkDerivation {
+  pname = "quickcheck-instances";
+  version = "0.3.28";
+  sha256 = "c4111b7b49d5814120cb6055705d04eda7dd32a536057167c646aa77b68ccccb";
+  libraryHaskellDepends = [
+    array base bytestring case-insensitive containers data-fix hashable
+    integer-logarithms old-time OneTuple primitive QuickCheck
+    scientific splitmix strict tagged text text-short these time
+    time-compat transformers transformers-compat unordered-containers
+    uuid-types vector
+  ];
+  testHaskellDepends = [
+    base containers primitive QuickCheck tagged uuid-types
+  ];
+  benchmarkHaskellDepends = [ base bytestring QuickCheck ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskellari/qc-instances";
+  description = "Common quickcheck instances";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/rebase.nix b/pkgs/rebase.nix
new file mode 100644
index 00000000..95163801
--- /dev/null
+++ b/pkgs/rebase.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, base, bifunctors, bytestring, comonad, containers
+, contravariant, deepseq, dlist, either, groups, hashable
+, invariant, lib, mtl, profunctors, scientific, selective
+, semigroupoids, stm, text, time, time-compat, transformers
+, unordered-containers, uuid-types, vector, vector-instances, void
+}:
+mkDerivation {
+  pname = "rebase";
+  version = "1.16";
+  sha256 = "0d76253ba464eee3363ff0ef4f0f470ca1711cd7acc907089b6eac15f8acad64";
+  revision = "1";
+  editedCabalFile = "048h2ir37j09s0z7fb364p7smyhzq6h4705qklhvylak9242gz2n";
+  libraryHaskellDepends = [
+    base bifunctors bytestring comonad containers contravariant deepseq
+    dlist either groups hashable invariant mtl profunctors scientific
+    selective semigroupoids stm text time time-compat transformers
+    unordered-containers uuid-types vector vector-instances void
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/nikita-volkov/rebase";
+  description = "A more progressive alternative to the \"base\" package";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/relude.nix b/pkgs/relude.nix
new file mode 100644
index 00000000..520c0115
--- /dev/null
+++ b/pkgs/relude.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, base, bytestring, containers, deepseq, doctest
+, ghc-prim, Glob, hashable, hedgehog, lib, mtl, stm, tasty-bench
+, text, transformers, unordered-containers
+}:
+mkDerivation {
+  pname = "relude";
+  version = "1.1.0.0";
+  sha256 = "b51df08a93ef1331dd56389e158e67ac7b68c62cc1561c2890d3572c764ab609";
+  libraryHaskellDepends = [
+    base bytestring containers deepseq ghc-prim hashable mtl stm text
+    transformers unordered-containers
+  ];
+  testHaskellDepends = [
+    base bytestring containers doctest Glob hedgehog text
+  ];
+  benchmarkHaskellDepends = [
+    base tasty-bench unordered-containers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/kowainik/relude";
+  description = "Safe, performant, user-friendly and lightweight Haskell Standard Library";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/rerebase.nix b/pkgs/rerebase.nix
new file mode 100644
index 00000000..3ad251f3
--- /dev/null
+++ b/pkgs/rerebase.nix
@@ -0,0 +1,14 @@
+{ mkDerivation, lib, rebase }:
+mkDerivation {
+  pname = "rerebase";
+  version = "1.15.0.3";
+  sha256 = "a2b18cff71a2a67c0a956385134ac2b5bbe2379a17d6dbe66bb4c0d79bd6b44b";
+  libraryHaskellDepends = [ rebase ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/nikita-volkov/rerebase";
+  description = "Reexports from \"base\" with a bunch of other standard libraries";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/retry.nix b/pkgs/retry.nix
new file mode 100644
index 00000000..af7dd614
--- /dev/null
+++ b/pkgs/retry.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, exceptions, ghc-prim, hedgehog, HUnit, lib
+, mtl, mtl-compat, random, stm, tasty, tasty-hedgehog, tasty-hunit
+, time, transformers, unliftio-core
+}:
+mkDerivation {
+  pname = "retry";
+  version = "0.9.3.0";
+  sha256 = "c11e5dcb6fc9b7a327ebdf9188edcbe39fce64e728294e41a61e9ad94fa84ecd";
+  libraryHaskellDepends = [
+    base exceptions ghc-prim mtl mtl-compat random transformers
+    unliftio-core
+  ];
+  testHaskellDepends = [
+    base exceptions ghc-prim hedgehog HUnit mtl mtl-compat random stm
+    tasty tasty-hedgehog tasty-hunit time transformers unliftio-core
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/Soostone/retry";
+  description = "Retry combinators for monadic actions that may fail";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/rope-utf16-splay.nix b/pkgs/rope-utf16-splay.nix
new file mode 100644
index 00000000..09e6140d
--- /dev/null
+++ b/pkgs/rope-utf16-splay.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, lib, QuickCheck, tasty, tasty-hunit
+, tasty-quickcheck, text
+}:
+mkDerivation {
+  pname = "rope-utf16-splay";
+  version = "0.4.0.0";
+  sha256 = "c189f1ccac3a2bf92dd2b7f85b194364983813d350870011ac71165f5b2f5fee";
+  libraryHaskellDepends = [ base text ];
+  testHaskellDepends = [
+    base QuickCheck tasty tasty-hunit tasty-quickcheck text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/ollef/rope-utf16-splay";
+  description = "Ropes optimised for updating using UTF-16 code units and row/column pairs";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/safe-coloured-text.nix b/pkgs/safe-coloured-text.nix
new file mode 100644
index 00000000..cdcaaa94
--- /dev/null
+++ b/pkgs/safe-coloured-text.nix
@@ -0,0 +1,18 @@
+{ mkDerivation, base, bytestring, lib, text, validity
+, validity-bytestring, validity-text
+}:
+mkDerivation {
+  pname = "safe-coloured-text";
+  version = "0.2.0.1";
+  sha256 = "b1604a221ee28e672a5b876a9f368ebbd65d56cc93afeb486083857d7c9b1759";
+  libraryHaskellDepends = [
+    base bytestring text validity validity-bytestring validity-text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/safe-coloured-text#readme";
+  description = "Safely output coloured text";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/saltine.nix b/pkgs/saltine.nix
new file mode 100644
index 00000000..3bf53e44
--- /dev/null
+++ b/pkgs/saltine.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, bytestring, hashable, lib, libsodium
+, profunctors, QuickCheck, semigroups, test-framework
+, test-framework-quickcheck2
+}:
+mkDerivation {
+  pname = "saltine";
+  version = "0.1.1.1";
+  sha256 = "a75b1aae629bef09c1b14364abbf8998420e0737bf2f3515ca18055ef336f9ad";
+  libraryHaskellDepends = [ base bytestring hashable profunctors ];
+  libraryPkgconfigDepends = [ libsodium ];
+  testHaskellDepends = [
+    base bytestring QuickCheck semigroups test-framework
+    test-framework-quickcheck2
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Cryptography that's easy to digest (NaCl/libsodium bindings)";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/scientific.nix b/pkgs/scientific.nix
new file mode 100644
index 00000000..3b59e0e7
--- /dev/null
+++ b/pkgs/scientific.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, base, binary, bytestring, containers, criterion
+, deepseq, hashable, integer-logarithms, lib, primitive, QuickCheck
+, smallcheck, tasty, tasty-hunit, tasty-quickcheck
+, tasty-smallcheck, template-haskell, text
+}:
+mkDerivation {
+  pname = "scientific";
+  version = "0.3.7.0";
+  sha256 = "a3a121c4b3d68fb8b9f8c709ab012e48f090ed553609247a805ad070d6b343a9";
+  revision = "3";
+  editedCabalFile = "1n67w1b64q59nn4845z3kr8rm0x0p7bi3cyp6n1dpnfs8k4l8x2i";
+  libraryHaskellDepends = [
+    base binary bytestring containers deepseq hashable
+    integer-logarithms primitive template-haskell text
+  ];
+  testHaskellDepends = [
+    base binary bytestring QuickCheck smallcheck tasty tasty-hunit
+    tasty-quickcheck tasty-smallcheck text
+  ];
+  benchmarkHaskellDepends = [ base criterion ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/basvandijk/scientific";
+  description = "Numbers represented using scientific notation";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/scotty.nix b/pkgs/scotty.nix
new file mode 100644
index 00000000..3fabb468
--- /dev/null
+++ b/pkgs/scotty.nix
@@ -0,0 +1,36 @@
+{ mkDerivation, aeson, async, base, base-compat-batteries
+, blaze-builder, bytestring, case-insensitive, data-default-class
+, directory, exceptions, fail, hspec, hspec-discover, hspec-wai
+, http-types, lib, lifted-base, lucid, monad-control, mtl, nats
+, network, regex-compat, text, transformers, transformers-base
+, transformers-compat, wai, wai-extra, warp, weigh
+}:
+mkDerivation {
+  pname = "scotty";
+  version = "0.12";
+  sha256 = "e1d77ee05eaa4b1871566b33683da9ab15dda8f7c42875701d62caf7db7defd2";
+  revision = "9";
+  editedCabalFile = "0d61dgx6wq682mz8ryq2a10v1z4yi0dik8b5psi0ragl2qip191j";
+  libraryHaskellDepends = [
+    aeson base base-compat-batteries blaze-builder bytestring
+    case-insensitive data-default-class exceptions fail http-types
+    monad-control mtl nats network regex-compat text transformers
+    transformers-base transformers-compat wai wai-extra warp
+  ];
+  testHaskellDepends = [
+    async base bytestring data-default-class directory hspec hspec-wai
+    http-types lifted-base network text wai
+  ];
+  testToolDepends = [ hspec-discover ];
+  benchmarkHaskellDepends = [
+    base bytestring data-default-class lucid mtl text transformers
+    weigh
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/scotty-web/scotty";
+  description = "Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/sdl2-gfx.nix b/pkgs/sdl2-gfx.nix
new file mode 100644
index 00000000..07ff1295
--- /dev/null
+++ b/pkgs/sdl2-gfx.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, base, lib, lifted-base, monad-control, SDL2, sdl2
+, SDL2_gfx, template-haskell, vector
+}:
+mkDerivation {
+  pname = "sdl2-gfx";
+  version = "0.3.0.0";
+  sha256 = "bcab7e1f8f7a60dec2db07c6680eb3f16e88511829a6ef9cd82ddce91c293565";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base lifted-base monad-control sdl2 template-haskell vector
+  ];
+  librarySystemDepends = [ SDL2_gfx ];
+  libraryPkgconfigDepends = [ SDL2 SDL2_gfx ];
+  executableHaskellDepends = [ base sdl2 vector ];
+  executableSystemDepends = [ SDL2_gfx ];
+  executablePkgconfigDepends = [ SDL2 SDL2_gfx ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Haskell bindings to SDL2_gfx";
+  license = lib.licenses.mit;
+  mainProgram = "sdl2-gfx-example";
+}
\ No newline at end of file
diff --git a/pkgs/sdl2-image.nix b/pkgs/sdl2-image.nix
new file mode 100644
index 00000000..48416abe
--- /dev/null
+++ b/pkgs/sdl2-image.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, base, bytestring, lib, SDL2, sdl2, SDL2_image
+, template-haskell, text
+}:
+mkDerivation {
+  pname = "sdl2-image";
+  version = "2.1.0.0";
+  sha256 = "d22403d966e0f18ecc33fadda8e611e2e90bc718e8d6647177f5118264a5920d";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base bytestring sdl2 template-haskell text
+  ];
+  librarySystemDepends = [ SDL2_image ];
+  libraryPkgconfigDepends = [ SDL2 SDL2_image ];
+  executableHaskellDepends = [ base sdl2 text ];
+  executableSystemDepends = [ SDL2_image ];
+  executablePkgconfigDepends = [ SDL2 SDL2_image ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Haskell bindings to SDL2_image";
+  license = lib.licenses.mit;
+  mainProgram = "sdl2-image-example";
+}
\ No newline at end of file
diff --git a/pkgs/sdl2-mixer.nix b/pkgs/sdl2-mixer.nix
new file mode 100644
index 00000000..350d1560
--- /dev/null
+++ b/pkgs/sdl2-mixer.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, base, bytestring, data-default-class, lib
+, lifted-base, monad-control, sdl2, SDL2_mixer, template-haskell
+, vector
+}:
+mkDerivation {
+  pname = "sdl2-mixer";
+  version = "1.2.0.0";
+  sha256 = "58141826af5d491794a74484fda770859e2271b0ede44cc75f2e562b70b7cf99";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base bytestring data-default-class lifted-base monad-control sdl2
+    template-haskell vector
+  ];
+  librarySystemDepends = [ SDL2_mixer ];
+  libraryPkgconfigDepends = [ SDL2_mixer ];
+  executableHaskellDepends = [ base data-default-class sdl2 vector ];
+  executableSystemDepends = [ SDL2_mixer ];
+  executablePkgconfigDepends = [ SDL2_mixer ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Haskell bindings to SDL2_mixer";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/sdl2-ttf.nix b/pkgs/sdl2-ttf.nix
new file mode 100644
index 00000000..cd486b75
--- /dev/null
+++ b/pkgs/sdl2-ttf.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, bytestring, lib, SDL2, sdl2, SDL2_ttf
+, template-haskell, text, th-abstraction, transformers
+}:
+mkDerivation {
+  pname = "sdl2-ttf";
+  version = "2.1.3";
+  sha256 = "b60219fe8144c5d61b140b4607432b24fb93e947c504a8e2f89517175ba6a56a";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base bytestring sdl2 template-haskell text th-abstraction
+    transformers
+  ];
+  libraryPkgconfigDepends = [ SDL2 SDL2_ttf ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Bindings to SDL2_ttf";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/sdl2.nix b/pkgs/sdl2.nix
new file mode 100644
index 00000000..f6caaa83
--- /dev/null
+++ b/pkgs/sdl2.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, bytestring, deepseq, exceptions, lib, linear
+, SDL2, StateVar, text, transformers, vector, weigh
+}:
+mkDerivation {
+  pname = "sdl2";
+  version = "2.5.3.3";
+  sha256 = "aa860444661daffc91ccc28a044bd15200f593443c601efe4f1872680f6f1ba8";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    base bytestring exceptions linear StateVar text transformers vector
+  ];
+  librarySystemDepends = [ SDL2 ];
+  libraryPkgconfigDepends = [ SDL2 ];
+  testHaskellDepends = [ base deepseq linear vector weigh ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Both high- and low-level bindings to the SDL library (version 2.0.6+).";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/semialign.nix b/pkgs/semialign.nix
new file mode 100644
index 00000000..83d748d1
--- /dev/null
+++ b/pkgs/semialign.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, base, containers, hashable, indexed-traversable
+, indexed-traversable-instances, lib, semigroupoids, tagged, these
+, transformers, unordered-containers, vector
+}:
+mkDerivation {
+  pname = "semialign";
+  version = "1.2.0.1";
+  sha256 = "d900697041ae4b0cca3243273a2b3e80bcf74d937405d6a5ff34dc33ee952132";
+  revision = "3";
+  editedCabalFile = "0dbcdnksik508i12arh3s6bis6779lx5f1df0jkc0bp797inhd7f";
+  libraryHaskellDepends = [
+    base containers hashable indexed-traversable
+    indexed-traversable-instances semigroupoids tagged these
+    transformers unordered-containers vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskellari/these";
+  description = "Align and Zip type-classes from the common Semialign ancestor";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/serialise.nix b/pkgs/serialise.nix
new file mode 100644
index 00000000..4020fde4
--- /dev/null
+++ b/pkgs/serialise.nix
@@ -0,0 +1,33 @@
+{ mkDerivation, aeson, array, base, binary, bytestring, cborg
+, cereal, cereal-vector, containers, criterion, deepseq, directory
+, fail, filepath, ghc-prim, half, hashable, lib, pretty, primitive
+, QuickCheck, quickcheck-instances, semigroups, store, strict, tar
+, tasty, tasty-hunit, tasty-quickcheck, text, these, time
+, unordered-containers, vector, zlib
+}:
+mkDerivation {
+  pname = "serialise";
+  version = "0.2.6.0";
+  sha256 = "93ff1888e1972999f14663072b38efcfd0c1481b4ec8e30ddc9c5ce97681a516";
+  libraryHaskellDepends = [
+    array base bytestring cborg containers ghc-prim half hashable
+    primitive strict text these time unordered-containers vector
+  ];
+  testHaskellDepends = [
+    base bytestring cborg containers directory filepath primitive
+    QuickCheck quickcheck-instances tasty tasty-hunit tasty-quickcheck
+    text time unordered-containers vector
+  ];
+  benchmarkHaskellDepends = [
+    aeson array base binary bytestring cborg cereal cereal-vector
+    containers criterion deepseq directory fail filepath ghc-prim half
+    pretty semigroups store tar text time vector zlib
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/well-typed/cborg";
+  description = "A binary serialisation library for Haskell values";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/servant-client-core.nix b/pkgs/servant-client-core.nix
new file mode 100644
index 00000000..ab71ec13
--- /dev/null
+++ b/pkgs/servant-client-core.nix
@@ -0,0 +1,32 @@
+{ mkDerivation, aeson, base, base-compat, base64-bytestring
+, bytestring, constraints, containers, deepseq, exceptions
+, fetchgit, free, hspec, hspec-discover, http-media, http-types
+, lib, network-uri, QuickCheck, safe, servant, sop-core
+, template-haskell, text, transformers
+}:
+mkDerivation {
+  pname = "servant-client-core";
+  version = "0.19";
+  src = fetchgit {
+    url = "https://github.com/TeofilC/servant";
+    sha256 = "0f6vkm44p93ln63plk4vfavadcgxjiqr8xncxrjqzp2mcql6qdmh";
+    rev = "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/servant-client-core/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    aeson base base-compat base64-bytestring bytestring constraints
+    containers deepseq exceptions free http-media http-types
+    network-uri safe servant sop-core template-haskell text
+    transformers
+  ];
+  testHaskellDepends = [ base base-compat deepseq hspec QuickCheck ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://docs.servant.dev/";
+  description = "Core functionality and class for client function generation for servant APIs";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/servant-client.nix b/pkgs/servant-client.nix
new file mode 100644
index 00000000..7359ce92
--- /dev/null
+++ b/pkgs/servant-client.nix
@@ -0,0 +1,39 @@
+{ mkDerivation, aeson, base, base-compat, bytestring, containers
+, deepseq, entropy, exceptions, fetchgit, hspec, hspec-discover
+, http-api-data, http-client, http-media, http-types, HUnit
+, kan-extensions, lib, markdown-unlit, monad-control, mtl, network
+, QuickCheck, semigroupoids, servant, servant-client-core
+, servant-server, sop-core, stm, tdigest, text, time, transformers
+, transformers-base, transformers-compat, wai, warp
+}:
+mkDerivation {
+  pname = "servant-client";
+  version = "0.19";
+  src = fetchgit {
+    url = "https://github.com/TeofilC/servant";
+    sha256 = "0f6vkm44p93ln63plk4vfavadcgxjiqr8xncxrjqzp2mcql6qdmh";
+    rev = "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/servant-client/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    base base-compat bytestring containers deepseq exceptions
+    http-client http-media http-types kan-extensions monad-control mtl
+    semigroupoids servant servant-client-core stm text time
+    transformers transformers-base transformers-compat
+  ];
+  testHaskellDepends = [
+    aeson base base-compat bytestring entropy hspec http-api-data
+    http-client http-types HUnit kan-extensions markdown-unlit mtl
+    network QuickCheck servant servant-client-core servant-server
+    sop-core stm tdigest text transformers transformers-compat wai warp
+  ];
+  testToolDepends = [ hspec-discover markdown-unlit ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://docs.servant.dev/";
+  description = "Automatic derivation of querying functions for servant";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/servant-foreign.nix b/pkgs/servant-foreign.nix
new file mode 100644
index 00000000..e3b4ecac
--- /dev/null
+++ b/pkgs/servant-foreign.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, base, base-compat, fetchgit, hspec, hspec-discover
+, http-types, lens, lib, servant, text
+}:
+mkDerivation {
+  pname = "servant-foreign";
+  version = "0.15.4";
+  src = fetchgit {
+    url = "https://github.com/TeofilC/servant";
+    sha256 = "0f6vkm44p93ln63plk4vfavadcgxjiqr8xncxrjqzp2mcql6qdmh";
+    rev = "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/servant-foreign/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    base base-compat http-types lens servant text
+  ];
+  testHaskellDepends = [ base hspec servant ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://docs.servant.dev/";
+  description = "Helpers for generating clients for servant APIs in any programming language";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/servant-lucid.nix b/pkgs/servant-lucid.nix
new file mode 100644
index 00000000..73967241
--- /dev/null
+++ b/pkgs/servant-lucid.nix
@@ -0,0 +1,17 @@
+{ mkDerivation, base, http-media, lib, lucid, servant
+, servant-server, text, wai, warp
+}:
+mkDerivation {
+  pname = "servant-lucid";
+  version = "0.9.0.5";
+  sha256 = "df55d4cb266bb95f31f658bef0e13c17a7b16e13068cc9931160620885911d7a";
+  libraryHaskellDepends = [ base http-media lucid servant text ];
+  testHaskellDepends = [ base lucid servant-server wai warp ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://haskell-servant.readthedocs.org/";
+  description = "Servant support for lucid";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/servant-multipart-api.nix b/pkgs/servant-multipart-api.nix
new file mode 100644
index 00000000..29f323c3
--- /dev/null
+++ b/pkgs/servant-multipart-api.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, base, bytestring, lib, servant, text, transformers
+}:
+mkDerivation {
+  pname = "servant-multipart-api";
+  version = "0.12.1";
+  sha256 = "92d5c3b1ccbcde7abcff6eb639d7dbb836222452a965e73ebd40bf775e522ebe";
+  revision = "3";
+  editedCabalFile = "1zhiszjg8n37g25sh2cnw509n0v4b89fd93j466f2gzwkxfaaw0m";
+  libraryHaskellDepends = [
+    base bytestring servant text transformers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-servant/servant-multipart#readme";
+  description = "multipart/form-data (e.g file upload) support for servant";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/servant-multipart.nix b/pkgs/servant-multipart.nix
new file mode 100644
index 00000000..e62985fa
--- /dev/null
+++ b/pkgs/servant-multipart.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, base, bytestring, directory, http-types, lens, lib
+, resourcet, servant, servant-docs, servant-foreign
+, servant-multipart-api, servant-server, string-conversions, tasty
+, tasty-wai, text, wai, wai-extra
+}:
+mkDerivation {
+  pname = "servant-multipart";
+  version = "0.12.1";
+  sha256 = "c5236fa4922a869947988d52ab9f5b0a19abf57bb0467e2eb34560f8c79aa5dc";
+  revision = "3";
+  editedCabalFile = "1wkbwd6gypmv7aziaag3gzwgvvqx4bw8i4qp2vpmc7ip2ydm10ml";
+  libraryHaskellDepends = [
+    base bytestring directory lens resourcet servant servant-docs
+    servant-foreign servant-multipart-api servant-server
+    string-conversions text wai wai-extra
+  ];
+  testHaskellDepends = [
+    base bytestring http-types servant-server string-conversions tasty
+    tasty-wai text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-servant/servant-multipart#readme";
+  description = "multipart/form-data (e.g file upload) support for servant";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/servant.nix b/pkgs/servant.nix
new file mode 100644
index 00000000..d9552c74
--- /dev/null
+++ b/pkgs/servant.nix
@@ -0,0 +1,36 @@
+{ mkDerivation, aeson, attoparsec, base, base-compat, bifunctors
+, bytestring, case-insensitive, constraints, deepseq, fetchgit
+, hspec, hspec-discover, http-api-data, http-media, http-types, lib
+, mmorph, mtl, network-uri, QuickCheck, quickcheck-instances
+, singleton-bool, sop-core, string-conversions, tagged, text
+, transformers, vault
+}:
+mkDerivation {
+  pname = "servant";
+  version = "0.19";
+  src = fetchgit {
+    url = "https://github.com/TeofilC/servant";
+    sha256 = "0f6vkm44p93ln63plk4vfavadcgxjiqr8xncxrjqzp2mcql6qdmh";
+    rev = "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/servant/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    aeson attoparsec base base-compat bifunctors bytestring
+    case-insensitive constraints deepseq http-api-data http-media
+    http-types mmorph mtl network-uri QuickCheck singleton-bool
+    sop-core string-conversions tagged text transformers vault
+  ];
+  testHaskellDepends = [
+    aeson base base-compat bytestring hspec http-media mtl QuickCheck
+    quickcheck-instances string-conversions text transformers
+  ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://docs.servant.dev/";
+  description = "A family of combinators for defining webservices APIs";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/shake.nix b/pkgs/shake.nix
new file mode 100644
index 00000000..97404069
--- /dev/null
+++ b/pkgs/shake.nix
@@ -0,0 +1,37 @@
+{ mkDerivation, base, binary, bytestring, deepseq, directory, extra
+, filepath, filepattern, hashable, heaps, js-dgtable, js-flot
+, js-jquery, lib, primitive, process, QuickCheck, random, time
+, transformers, unix, unordered-containers, utf8-string
+}:
+mkDerivation {
+  pname = "shake";
+  version = "0.19.6";
+  sha256 = "7d9db837bfd67acaaabdb3cea29acc15559ede82dd9f75d438589268031cd542";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    base binary bytestring deepseq directory extra filepath filepattern
+    hashable heaps js-dgtable js-flot js-jquery primitive process
+    random time transformers unix unordered-containers utf8-string
+  ];
+  executableHaskellDepends = [
+    base binary bytestring deepseq directory extra filepath filepattern
+    hashable heaps js-dgtable js-flot js-jquery primitive process
+    random time transformers unix unordered-containers utf8-string
+  ];
+  testHaskellDepends = [
+    base binary bytestring deepseq directory extra filepath filepattern
+    hashable heaps js-dgtable js-flot js-jquery primitive process
+    QuickCheck random time transformers unix unordered-containers
+    utf8-string
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://shakebuild.com";
+  description = "Build system library, like Make, but more accurate dependencies";
+  license = lib.licenses.bsd3;
+  mainProgram = "shake";
+}
\ No newline at end of file
diff --git a/pkgs/shelly.nix b/pkgs/shelly.nix
new file mode 100644
index 00000000..12fc477a
--- /dev/null
+++ b/pkgs/shelly.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, async, base, bytestring, containers, directory
+, enclosed-exceptions, exceptions, filepath, hspec, hspec-contrib
+, HUnit, lib, lifted-async, lifted-base, monad-control, mtl
+, process, text, time, transformers, transformers-base, unix-compat
+}:
+mkDerivation {
+  pname = "shelly";
+  version = "1.10.0";
+  sha256 = "c54000aff5ed59dc50f75754390c689aedb9792d3b327406caf146983380ff41";
+  revision = "1";
+  editedCabalFile = "07c1rjwvg2ldam6yaksvrr9f703b7d1rcw0482ns5yi2f7y1kczp";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    async base bytestring containers directory enclosed-exceptions
+    exceptions filepath lifted-async lifted-base monad-control mtl
+    process text time transformers transformers-base unix-compat
+  ];
+  testHaskellDepends = [
+    base bytestring directory filepath hspec hspec-contrib HUnit
+    lifted-async mtl text transformers unix-compat
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/yesodweb/Shelly.hs";
+  description = "shell-like (systems) programming in Haskell";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/singleton-bool.nix b/pkgs/singleton-bool.nix
new file mode 100644
index 00000000..e1aa76ab
--- /dev/null
+++ b/pkgs/singleton-bool.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, boring, dec, deepseq, lib, some }:
+mkDerivation {
+  pname = "singleton-bool";
+  version = "0.1.6";
+  sha256 = "5ca3f4802ba0dd89d1817e78f7fbf6900fb5f176f10fc00bdfe395fe572383dd";
+  revision = "2";
+  editedCabalFile = "1l4nx664awgwzk3ih5idsgnj220jqdr1c55241xjv7fz7lwyhh5r";
+  libraryHaskellDepends = [ base boring dec deepseq some ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/phadej/singleton-bool#readme";
+  description = "Type level booleans";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/singletons.nix b/pkgs/singletons.nix
new file mode 100644
index 00000000..5eadbe61
--- /dev/null
+++ b/pkgs/singletons.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "singletons";
+  version = "3.0.2";
+  sha256 = "f568ee129ef6438a4325f145f17fa4a3074b3564c72fd35ba1f68dcee14d5e82";
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://www.github.com/goldfirere/singletons";
+  description = "Basic singleton types and definitions";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/some.nix b/pkgs/some.nix
new file mode 100644
index 00000000..574eb854
--- /dev/null
+++ b/pkgs/some.nix
@@ -0,0 +1,17 @@
+{ mkDerivation, base, deepseq, lib }:
+mkDerivation {
+  pname = "some";
+  version = "1.0.4";
+  sha256 = "446f9586d1cc9b7507f08ef7b178a7cff971bcf258d9658deacb7b65f18e3874";
+  revision = "1";
+  editedCabalFile = "0hwq21d0y2iwcrkdhqkq76fna90dsdzrkk6ryh9hbg71lf768ih9";
+  libraryHaskellDepends = [ base deepseq ];
+  testHaskellDepends = [ base ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskellari/some";
+  description = "Existential type: Some";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/sop-core.nix b/pkgs/sop-core.nix
new file mode 100644
index 00000000..bd183678
--- /dev/null
+++ b/pkgs/sop-core.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, base, deepseq, lib }:
+mkDerivation {
+  pname = "sop-core";
+  version = "0.5.0.1";
+  sha256 = "dac367f1608c9bd6c5dd1697e2a30e1b760617023b96e1df7d44c6c017999db0";
+  revision = "1";
+  editedCabalFile = "1d4sagrlhmvai3f4hvb9rn8aqsjbvi00z0mzv1gds9nblshk83xd";
+  libraryHaskellDepends = [ base deepseq ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "True Sums of Products";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/split.nix b/pkgs/split.nix
new file mode 100644
index 00000000..f6d1ffff
--- /dev/null
+++ b/pkgs/split.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, lib, QuickCheck }:
+mkDerivation {
+  pname = "split";
+  version = "0.2.3.3";
+  sha256 = "1dcd674f7c5f276f33300f5fd59e49d1ac6fc92ae949fd06a0f6d3e9d9ac1413";
+  revision = "2";
+  editedCabalFile = "1c8bcssxq5rkxkixgms6w6x6lzf4n7cxk6cx6av1dp3lixdy9j34";
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base QuickCheck ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Combinator library for splitting lists";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/streaming-commons.nix b/pkgs/streaming-commons.nix
new file mode 100644
index 00000000..802808ae
--- /dev/null
+++ b/pkgs/streaming-commons.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, array, async, base, bytestring, deepseq, directory
+, gauge, hspec, lib, network, process, QuickCheck, random, stm
+, text, transformers, unix, zlib
+}:
+mkDerivation {
+  pname = "streaming-commons";
+  version = "0.2.2.4";
+  sha256 = "56a1408cce710cddfb04d73757efba439c98fb8043515083a45136902214ccf2";
+  libraryHaskellDepends = [
+    array async base bytestring directory network process random stm
+    text transformers unix zlib
+  ];
+  testHaskellDepends = [
+    array async base bytestring deepseq hspec network QuickCheck text
+    unix zlib
+  ];
+  benchmarkHaskellDepends = [ base bytestring deepseq gauge text ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/fpco/streaming-commons";
+  description = "Common lower-level functions needed by various streaming data libraries";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/string-interpolate.nix b/pkgs/string-interpolate.nix
new file mode 100644
index 00000000..e4f8a076
--- /dev/null
+++ b/pkgs/string-interpolate.nix
@@ -0,0 +1,34 @@
+{ mkDerivation, base, bytestring, criterion, deepseq, formatting
+, haskell-src-exts, haskell-src-meta, hspec, hspec-core
+, interpolate, lib, neat-interpolation, QuickCheck
+, quickcheck-instances, quickcheck-text, quickcheck-unicode, split
+, template-haskell, text, text-conversions, unordered-containers
+, utf8-string
+}:
+mkDerivation {
+  pname = "string-interpolate";
+  version = "0.3.1.2";
+  sha256 = "17c214e2a644c433d79e3d6b9e5dab9077d79be9de4b9e208308e3196b82b73e";
+  revision = "1";
+  editedCabalFile = "1nrpng7r59a25z4qns8vy26rvp1wgn5f4bs8ism40q66ags8f2ad";
+  libraryHaskellDepends = [
+    base bytestring haskell-src-exts haskell-src-meta split
+    template-haskell text text-conversions utf8-string
+  ];
+  testHaskellDepends = [
+    base bytestring hspec hspec-core QuickCheck quickcheck-instances
+    quickcheck-text quickcheck-unicode template-haskell text
+    unordered-containers
+  ];
+  benchmarkHaskellDepends = [
+    base bytestring criterion deepseq formatting interpolate
+    neat-interpolation QuickCheck text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://gitlab.com/williamyaoh/string-interpolate/blob/master/README.md";
+  description = "Haskell string/text/bytestring interpolation that just works";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/string-qq.nix b/pkgs/string-qq.nix
new file mode 100644
index 00000000..dcabc97c
--- /dev/null
+++ b/pkgs/string-qq.nix
@@ -0,0 +1,14 @@
+{ mkDerivation, base, HUnit, lib, template-haskell, text }:
+mkDerivation {
+  pname = "string-qq";
+  version = "0.0.4";
+  sha256 = "c85b9c1e27596ea8e765e4b630b7be53c331c51b680ad46cc2d248d3099fdd71";
+  libraryHaskellDepends = [ base template-haskell ];
+  testHaskellDepends = [ base HUnit text ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "QuasiQuoter for non-interpolated strings, texts and bytestrings";
+  license = lib.licenses.publicDomain;
+}
\ No newline at end of file
diff --git a/pkgs/stylish-haskell.nix b/pkgs/stylish-haskell.nix
new file mode 100644
index 00000000..a4825ea7
--- /dev/null
+++ b/pkgs/stylish-haskell.nix
@@ -0,0 +1,37 @@
+{ mkDerivation, aeson, base, bytestring, Cabal, containers
+, directory, file-embed, filepath, ghc, ghc-boot, ghc-boot-th
+, ghc-lib-parser-ex, HsYAML, HsYAML-aeson, HUnit, lib, mtl
+, optparse-applicative, random, strict, syb, test-framework
+, test-framework-hunit, text
+}:
+mkDerivation {
+  pname = "stylish-haskell";
+  version = "0.14.2.0";
+  sha256 = "f181edfe62821639d881de6780f6a7130b731519461af9c73687f8fba3764ecc";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson base bytestring Cabal containers directory file-embed
+    filepath ghc ghc-boot ghc-boot-th ghc-lib-parser-ex HsYAML
+    HsYAML-aeson mtl syb text
+  ];
+  executableHaskellDepends = [
+    aeson base bytestring Cabal containers directory file-embed
+    filepath ghc ghc-boot ghc-boot-th ghc-lib-parser-ex HsYAML
+    HsYAML-aeson mtl optparse-applicative strict syb text
+  ];
+  testHaskellDepends = [
+    aeson base bytestring Cabal containers directory file-embed
+    filepath ghc ghc-boot ghc-boot-th ghc-lib-parser-ex HsYAML
+    HsYAML-aeson HUnit mtl random syb test-framework
+    test-framework-hunit text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/stylish-haskell";
+  description = "Haskell code prettifier";
+  license = lib.licenses.bsd3;
+  mainProgram = "stylish-haskell";
+}
\ No newline at end of file
diff --git a/pkgs/syb.nix b/pkgs/syb.nix
new file mode 100644
index 00000000..b2e3f8fa
--- /dev/null
+++ b/pkgs/syb.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, base, containers, lib, mtl, tasty, tasty-hunit }:
+mkDerivation {
+  pname = "syb";
+  version = "0.7.2.1";
+  sha256 = "1807c66f77e66786739387f0ae9f16d150d1cfa9d626afcb729f0e9b442a8d96";
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base containers mtl tasty tasty-hunit ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://www.cs.uu.nl/wiki/GenericProgramming/SYB";
+  description = "Scrap Your Boilerplate";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/sydtest-discover.nix b/pkgs/sydtest-discover.nix
new file mode 100644
index 00000000..74245e55
--- /dev/null
+++ b/pkgs/sydtest-discover.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, filepath, lib, optparse-applicative, path
+, path-io
+}:
+mkDerivation {
+  pname = "sydtest-discover";
+  version = "0.0.0.2";
+  sha256 = "fbc0b1a7bae9a40e9aec7bda706c11f6bb6cbefc840ad2ee350380cb925459d9";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base filepath optparse-applicative path path-io
+  ];
+  executableHaskellDepends = [ base ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/sydtest#readme";
+  description = "Automatic test suite discovery for sydtest";
+  license = "unknown";
+  mainProgram = "sydtest-discover";
+}
\ No newline at end of file
diff --git a/pkgs/sydtest.nix b/pkgs/sydtest.nix
new file mode 100644
index 00000000..b9ad221c
--- /dev/null
+++ b/pkgs/sydtest.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, async, autodocodec, autodocodec-yaml, base
+, bytestring, containers, Diff, dlist, envparse, filepath, lib
+, MonadRandom, mtl, optparse-applicative, path, path-io
+, pretty-show, QuickCheck, quickcheck-io, random, random-shuffle
+, safe, safe-coloured-text, safe-coloured-text-terminfo, split, stm
+, sydtest-discover, text
+}:
+mkDerivation {
+  pname = "sydtest";
+  version = "0.12.0.1";
+  sha256 = "1c7186d0e41145aefcb6eae9727938d757e07ebd8f8287feb19a447567d8565f";
+  libraryHaskellDepends = [
+    async autodocodec autodocodec-yaml base bytestring containers Diff
+    dlist envparse filepath MonadRandom mtl optparse-applicative path
+    path-io pretty-show QuickCheck quickcheck-io random random-shuffle
+    safe safe-coloured-text safe-coloured-text-terminfo split stm text
+  ];
+  testHaskellDepends = [
+    base bytestring path path-io QuickCheck random safe-coloured-text
+    stm text
+  ];
+  testToolDepends = [ sydtest-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/NorfairKing/sydtest#readme";
+  description = "A modern testing framework for Haskell with good defaults and advanced testing features";
+  license = "unknown";
+}
\ No newline at end of file
diff --git a/pkgs/tasty-discover.nix b/pkgs/tasty-discover.nix
new file mode 100644
index 00000000..c5ec1ef3
--- /dev/null
+++ b/pkgs/tasty-discover.nix
@@ -0,0 +1,33 @@
+{ mkDerivation, base, bytestring, containers, directory, filepath
+, Glob, hedgehog, hspec, hspec-core, lib, tasty, tasty-golden
+, tasty-hedgehog, tasty-hspec, tasty-hunit, tasty-quickcheck
+, tasty-smallcheck
+}:
+mkDerivation {
+  pname = "tasty-discover";
+  version = "5.0.0";
+  sha256 = "eeb27da5f928d5043385b114e817cc80b0605de45fd490ed6b2973094d1d7028";
+  revision = "1";
+  editedCabalFile = "1a44ak08ja1j78lrqm46szihy9nzx2vrvvdb8bwf6961fymd5697";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base containers directory filepath Glob tasty
+  ];
+  executableHaskellDepends = [
+    base containers directory filepath Glob
+  ];
+  testHaskellDepends = [
+    base bytestring containers directory filepath Glob hedgehog hspec
+    hspec-core tasty tasty-golden tasty-hedgehog tasty-hspec
+    tasty-hunit tasty-quickcheck tasty-smallcheck
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-works/tasty-discover";
+  description = "Test discovery for the tasty framework";
+  license = lib.licenses.mit;
+  mainProgram = "tasty-discover";
+}
\ No newline at end of file
diff --git a/pkgs/tasty-hedgehog.nix b/pkgs/tasty-hedgehog.nix
new file mode 100644
index 00000000..33af52b9
--- /dev/null
+++ b/pkgs/tasty-hedgehog.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, fetchgit, hedgehog, lib, tagged, tasty
+, tasty-expected-failure
+}:
+mkDerivation {
+  pname = "tasty-hedgehog";
+  version = "1.2.0.0";
+  src = fetchgit {
+    url = "https://github.com/locallycompact/tasty-hedgehog";
+    sha256 = "1ql4wsah4zz2dizakgh3lfgbbq9c3c6nmypcp6fl3i96pbdj2bh5";
+    rev = "4a3477578ed21aa82e5b74f387d08e5d750635d6";
+    fetchSubmodules = true;
+  };
+  libraryHaskellDepends = [ base hedgehog tagged tasty ];
+  testHaskellDepends = [
+    base hedgehog tasty tasty-expected-failure
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/qfpl/tasty-hedgehog";
+  description = "Integration for tasty and hedgehog";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/tasty-hunit.nix b/pkgs/tasty-hunit.nix
new file mode 100644
index 00000000..67d7225e
--- /dev/null
+++ b/pkgs/tasty-hunit.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, call-stack, fetchgit, lib, tasty }:
+mkDerivation {
+  pname = "tasty-hunit";
+  version = "0.10.0.2";
+  src = fetchgit {
+    url = "https://github.com/UnkindPartition/tasty";
+    sha256 = "0mbzw9plh5gffpdzbnw6749b45dpal29wdak2y04qlmjs42wxcv1";
+    rev = "207d3453a64b414593512c1e968171d64a8dbe61";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/hunit/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [ base call-stack tasty ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/UnkindPartition/tasty";
+  description = "HUnit support for the Tasty test framework";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/tasty-wai.nix b/pkgs/tasty-wai.nix
new file mode 100644
index 00000000..39c3ec68
--- /dev/null
+++ b/pkgs/tasty-wai.nix
@@ -0,0 +1,18 @@
+{ mkDerivation, base, bytestring, http-types, HUnit, lib, tasty
+, wai, wai-extra
+}:
+mkDerivation {
+  pname = "tasty-wai";
+  version = "0.1.2.0";
+  sha256 = "6f6f224d6dee893ce550f512832389a9ae0e490917a99b5362c9a4f73f16dca3";
+  libraryHaskellDepends = [
+    base bytestring http-types HUnit tasty wai wai-extra
+  ];
+  testHaskellDepends = [ base http-types tasty wai ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Test 'wai' endpoints via Test.Tasty";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/tasty.nix b/pkgs/tasty.nix
new file mode 100644
index 00000000..0b2b54fe
--- /dev/null
+++ b/pkgs/tasty.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, ansi-terminal, base, containers, fetchgit, lib
+, optparse-applicative, stm, tagged, transformers, unix
+}:
+mkDerivation {
+  pname = "tasty";
+  version = "1.4.2.3";
+  src = fetchgit {
+    url = "https://github.com/UnkindPartition/tasty";
+    sha256 = "0mbzw9plh5gffpdzbnw6749b45dpal29wdak2y04qlmjs42wxcv1";
+    rev = "207d3453a64b414593512c1e968171d64a8dbe61";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/core/; echo source root reset to $sourceRoot";
+  libraryHaskellDepends = [
+    ansi-terminal base containers optparse-applicative stm tagged
+    transformers unix
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/UnkindPartition/tasty";
+  description = "Modern and extensible testing framework";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/text-zipper.nix b/pkgs/text-zipper.nix
new file mode 100644
index 00000000..0d4ae284
--- /dev/null
+++ b/pkgs/text-zipper.nix
@@ -0,0 +1,17 @@
+{ mkDerivation, base, deepseq, hspec, lib, QuickCheck, text, vector
+}:
+mkDerivation {
+  pname = "text-zipper";
+  version = "0.12";
+  sha256 = "86aba7244c9ed0d8e24e9d1fa64ee317a062e7bd777018053517daefb0696702";
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [ base deepseq text vector ];
+  testHaskellDepends = [ base hspec QuickCheck text ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jtdaugherty/text-zipper/";
+  description = "A text editor zipper library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/th-extras.nix b/pkgs/th-extras.nix
new file mode 100644
index 00000000..61e7c69c
--- /dev/null
+++ b/pkgs/th-extras.nix
@@ -0,0 +1,18 @@
+{ mkDerivation, base, containers, lib, syb, template-haskell
+, th-abstraction
+}:
+mkDerivation {
+  pname = "th-extras";
+  version = "0.0.0.6";
+  sha256 = "02bf23940c0233a6ef6f61868e827ebd4554afe8d71cef2a1eb8e286a7f07c4a";
+  libraryHaskellDepends = [
+    base containers syb template-haskell th-abstraction
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/mokus0/th-extras";
+  description = "A grab bag of functions for use with Template Haskell";
+  license = lib.licenses.publicDomain;
+}
\ No newline at end of file
diff --git a/pkgs/th-lift-instances.nix b/pkgs/th-lift-instances.nix
new file mode 100644
index 00000000..d75ef237
--- /dev/null
+++ b/pkgs/th-lift-instances.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, base, bytestring, containers, lib, QuickCheck
+, template-haskell, text, th-lift, transformers, vector
+}:
+mkDerivation {
+  pname = "th-lift-instances";
+  version = "0.1.20";
+  sha256 = "f533c3f95addcca461a0ccd1aafef75dd801bfa6599c0d1184d54bfffb61d870";
+  libraryHaskellDepends = [
+    base bytestring containers template-haskell text th-lift
+    transformers vector
+  ];
+  testHaskellDepends = [
+    base bytestring containers QuickCheck template-haskell text vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/bennofs/th-lift-instances/";
+  description = "Lift instances for template-haskell for common data types";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/these.nix b/pkgs/these.nix
new file mode 100644
index 00000000..cbf481c1
--- /dev/null
+++ b/pkgs/these.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, assoc, base, binary, deepseq, hashable, lib }:
+mkDerivation {
+  pname = "these";
+  version = "1.1.1.1";
+  sha256 = "d798c9f56e17def441e8f51e54cc11afdb3e76c6a9d1e9ee154e9a78da0bf508";
+  revision = "6";
+  editedCabalFile = "12ll5l8m482qkb8zn79vx51bqlwc89fgixf8jv33a32b4qzc3499";
+  libraryHaskellDepends = [ assoc base binary deepseq hashable ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskellari/these";
+  description = "An either-or-both data type";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/tidal.nix b/pkgs/tidal.nix
new file mode 100644
index 00000000..8ec0e9ca
--- /dev/null
+++ b/pkgs/tidal.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, base, bifunctors, bytestring, clock, colour
+, containers, criterion, deepseq, exceptions, hosc, lib, microspec
+, mtl, network, parsec, primitive, random, text, transformers
+, weigh
+}:
+mkDerivation {
+  pname = "tidal";
+  version = "1.8.1";
+  sha256 = "093611c3d977bc5972a4446573de5358e80ef015185ed84ad27af82415040000";
+  revision = "1";
+  editedCabalFile = "0mnxl1ynxf2cgqlrbkshw8qngiw7b6lf0lsjkd6hjhkh2xbxgxzx";
+  enableSeparateDataOutput = true;
+  libraryHaskellDepends = [
+    base bifunctors bytestring clock colour containers deepseq
+    exceptions hosc mtl network parsec primitive random text
+    transformers
+  ];
+  testHaskellDepends = [
+    base containers deepseq hosc microspec parsec
+  ];
+  benchmarkHaskellDepends = [ base criterion weigh ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://tidalcycles.org/";
+  description = "Pattern language for improvised music";
+  license = lib.licenses.gpl3Only;
+}
\ No newline at end of file
diff --git a/pkgs/time-compat.nix b/pkgs/time-compat.nix
new file mode 100644
index 00000000..6da68b9a
--- /dev/null
+++ b/pkgs/time-compat.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, base, base-compat, base-orphans, deepseq, hashable
+, HUnit, lib, QuickCheck, tagged, tasty, tasty-hunit
+, tasty-quickcheck, time
+}:
+mkDerivation {
+  pname = "time-compat";
+  version = "1.9.6.1";
+  sha256 = "ad07bb00eb9678c2136d3680752b00acc4cbc522654bb3199bf31c61ef1e6b80";
+  revision = "4";
+  editedCabalFile = "1n39yfk21xz8y1xvkh01651yysk2zp5qac22l5pq2hi7scczmxaw";
+  libraryHaskellDepends = [
+    base base-orphans deepseq hashable time
+  ];
+  testHaskellDepends = [
+    base base-compat deepseq hashable HUnit QuickCheck tagged tasty
+    tasty-hunit tasty-quickcheck time
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskellari/time-compat";
+  description = "Compatibility package for time";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/type-equality.nix b/pkgs/type-equality.nix
new file mode 100644
index 00000000..90988d2b
--- /dev/null
+++ b/pkgs/type-equality.nix
@@ -0,0 +1,16 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "type-equality";
+  version = "1";
+  sha256 = "4728b502a211454ef682a10d7a3e817c22d06ba509df114bb267ef9d43a08ce8";
+  revision = "4";
+  editedCabalFile = "0sajw67mmk5syhbrwx4bz82j5cjhm04n4kjl0pp3dnphxg1m5nbw";
+  libraryHaskellDepends = [ base ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/hesselink/type-equality";
+  description = "Data.Type.Equality compat package";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/type-errors-pretty.nix b/pkgs/type-errors-pretty.nix
new file mode 100644
index 00000000..a2c3a732
--- /dev/null
+++ b/pkgs/type-errors-pretty.nix
@@ -0,0 +1,15 @@
+{ mkDerivation, base, doctest, Glob, lib }:
+mkDerivation {
+  pname = "type-errors-pretty";
+  version = "0.0.1.2";
+  sha256 = "cb2cfc24870d02a1eb96565eae12e1b28a11206b78a9ed87cca59dc36b59ed07";
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base doctest Glob ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/kowainik/type-errors-pretty";
+  description = "Combinators for writing pretty type errors easily";
+  license = lib.licenses.mpl20;
+}
\ No newline at end of file
diff --git a/pkgs/type-errors.nix b/pkgs/type-errors.nix
new file mode 100644
index 00000000..15600021
--- /dev/null
+++ b/pkgs/type-errors.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, doctest, first-class-families, lib, syb
+, template-haskell, th-abstraction
+}:
+mkDerivation {
+  pname = "type-errors";
+  version = "0.2.0.0";
+  sha256 = "174d509c30ec806117a244add923fee578ba5f3505b0156f4e03a32023892eb4";
+  revision = "3";
+  editedCabalFile = "0ig8qd2g8rd5n78039xhbq7n8r514f8kvbh0mgajav2a5lp549s1";
+  libraryHaskellDepends = [
+    base first-class-families syb template-haskell th-abstraction
+  ];
+  testHaskellDepends = [
+    base doctest first-class-families syb template-haskell
+    th-abstraction
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/isovector/type-errors#readme";
+  description = "Tools for writing better type errors";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/unicode-collation.nix b/pkgs/unicode-collation.nix
new file mode 100644
index 00000000..9e2c1cf6
--- /dev/null
+++ b/pkgs/unicode-collation.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, base, binary, bytestring, containers, lib, parsec
+, QuickCheck, quickcheck-instances, tasty, tasty-bench, tasty-hunit
+, tasty-quickcheck, template-haskell, text, text-icu
+, th-lift-instances, unicode-transforms
+}:
+mkDerivation {
+  pname = "unicode-collation";
+  version = "0.1.3.2";
+  sha256 = "ec54952221a8bb79d5dbd9abd4501ffcce4be07fbe500928394c108ea010cb66";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base binary bytestring containers parsec template-haskell text
+    th-lift-instances
+  ];
+  testHaskellDepends = [
+    base bytestring tasty tasty-hunit tasty-quickcheck text
+    unicode-transforms
+  ];
+  benchmarkHaskellDepends = [
+    base QuickCheck quickcheck-instances tasty-bench text text-icu
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jgm/unicode-collation";
+  description = "Haskell implementation of the Unicode Collation Algorithm";
+  license = lib.licenses.bsd2;
+}
\ No newline at end of file
diff --git a/pkgs/unicode-data.nix b/pkgs/unicode-data.nix
new file mode 100644
index 00000000..beea50fe
--- /dev/null
+++ b/pkgs/unicode-data.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, deepseq, hspec, hspec-discover, lib, tasty
+, tasty-bench
+}:
+mkDerivation {
+  pname = "unicode-data";
+  version = "0.4.0";
+  sha256 = "4890d5a26cae879ea573dc07408e833ad49937a9a551a3bbdc4fa77718644127";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [ base ];
+  testHaskellDepends = [ base hspec ];
+  testToolDepends = [ hspec-discover ];
+  benchmarkHaskellDepends = [ base deepseq tasty tasty-bench ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/composewell/unicode-data";
+  description = "Access Unicode Character Database (UCD)";
+  license = lib.licenses.asl20;
+}
\ No newline at end of file
diff --git a/pkgs/unicode-transforms.nix b/pkgs/unicode-transforms.nix
new file mode 100644
index 00000000..12d767ca
--- /dev/null
+++ b/pkgs/unicode-transforms.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, base, bytestring, deepseq, filepath, ghc-prim
+, hspec, lib, path, path-io, QuickCheck, split, tasty-bench, text
+, unicode-data
+}:
+mkDerivation {
+  pname = "unicode-transforms";
+  version = "0.4.0.1";
+  sha256 = "3278e1e1d648da4bcd7368658ae091a89080e88a2f44db9df5136711e99649fc";
+  revision = "1";
+  editedCabalFile = "0ml5j3j3dan7fgbyd3vgmlrij7bgszgfh244b1sppciis1v4m94p";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base bytestring ghc-prim text unicode-data
+  ];
+  testHaskellDepends = [
+    base bytestring deepseq hspec QuickCheck split text unicode-data
+  ];
+  benchmarkHaskellDepends = [
+    base deepseq filepath path path-io tasty-bench text
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/composewell/unicode-transforms";
+  description = "Unicode normalization";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/unordered-containers.nix b/pkgs/unordered-containers.nix
new file mode 100644
index 00000000..100a625f
--- /dev/null
+++ b/pkgs/unordered-containers.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, base, bytestring, ChasingBottoms, containers
+, deepseq, hashable, hashmap, HUnit, lib, mtl, nothunks, QuickCheck
+, random, tasty, tasty-bench, tasty-hunit, tasty-quickcheck
+, template-haskell
+}:
+mkDerivation {
+  pname = "unordered-containers";
+  version = "0.2.19.1";
+  sha256 = "1b27bec5e0d522b27a6029ebf4c4a6d40acbc083c787008e32fb55c4b1d128d2";
+  revision = "1";
+  editedCabalFile = "0fcax3apnpxxy9maymclr6s2b4c28d3pkl3plbg0lv1mn0mh84fv";
+  libraryHaskellDepends = [ base deepseq hashable template-haskell ];
+  testHaskellDepends = [
+    base ChasingBottoms containers hashable HUnit nothunks QuickCheck
+    random tasty tasty-hunit tasty-quickcheck
+  ];
+  benchmarkHaskellDepends = [
+    base bytestring containers deepseq hashable hashmap mtl random
+    tasty-bench
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-unordered-containers/unordered-containers";
+  description = "Efficient hashing-based container types";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/vault.nix b/pkgs/vault.nix
new file mode 100644
index 00000000..ac37ec00
--- /dev/null
+++ b/pkgs/vault.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, containers, hashable, lib
+, unordered-containers
+}:
+mkDerivation {
+  pname = "vault";
+  version = "0.3.1.5";
+  sha256 = "ac2a6b6adf58598c5c8faa931ae961a8a2aa50ddb2f0f7a2044ff6e8c3d433a0";
+  revision = "2";
+  editedCabalFile = "1bjwv3nv8jfhrdxa5kn3gvgxmyalpq7592bvyl7bpvcc7bbkfkf3";
+  libraryHaskellDepends = [
+    base containers hashable unordered-containers
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/HeinrichApfelmus/vault";
+  description = "a persistent store for values of arbitrary types";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/vector-algorithms.nix b/pkgs/vector-algorithms.nix
new file mode 100644
index 00000000..92decc1d
--- /dev/null
+++ b/pkgs/vector-algorithms.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, bitvec, bytestring, containers, lib
+, mwc-random, primitive, QuickCheck, vector
+}:
+mkDerivation {
+  pname = "vector-algorithms";
+  version = "0.9.0.1";
+  sha256 = "2ba7c0d3a8f26ef3ada24ff4abe81609225ecbab3b5754f048f8a0a3ecc33841";
+  revision = "1";
+  editedCabalFile = "1bma0m4g7770y4xnqsinspqkgf4swpdwddfbcby81szjxd8mik1l";
+  libraryHaskellDepends = [
+    base bitvec bytestring primitive vector
+  ];
+  testHaskellDepends = [
+    base bytestring containers QuickCheck vector
+  ];
+  benchmarkHaskellDepends = [ base mwc-random vector ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/erikd/vector-algorithms/";
+  description = "Efficient algorithms for vector arrays";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/vector.nix b/pkgs/vector.nix
new file mode 100644
index 00000000..a0f0aa26
--- /dev/null
+++ b/pkgs/vector.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, base, base-orphans, deepseq, doctest, HUnit, lib
+, primitive, QuickCheck, random, tasty, tasty-bench, tasty-hunit
+, tasty-inspection-testing, tasty-quickcheck, template-haskell
+, transformers, vector-stream
+}:
+mkDerivation {
+  pname = "vector";
+  version = "0.13.0.0";
+  sha256 = "c5d3167d15e12f52e00879ddf304a591672a74e369cc47bc5c7fa1d5a8d15b4f";
+  revision = "1";
+  editedCabalFile = "12cwdaqsy9dv7j7cwq6r6kdyfxqiya8khm6ccaabjhhpa2aqwljl";
+  libraryHaskellDepends = [ base deepseq primitive vector-stream ];
+  testHaskellDepends = [
+    base base-orphans doctest HUnit primitive QuickCheck random tasty
+    tasty-hunit tasty-inspection-testing tasty-quickcheck
+    template-haskell transformers
+  ];
+  benchmarkHaskellDepends = [ base random tasty tasty-bench ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell/vector";
+  description = "Efficient Arrays";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/vinyl.nix b/pkgs/vinyl.nix
new file mode 100644
index 00000000..7aaea5b3
--- /dev/null
+++ b/pkgs/vinyl.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, aeson, array, base, criterion, deepseq, ghc-prim
+, hspec, lens, lens-aeson, lib, linear, microlens, mtl, mwc-random
+, primitive, should-not-typecheck, tagged, text
+, unordered-containers, vector
+}:
+mkDerivation {
+  pname = "vinyl";
+  version = "0.14.3";
+  sha256 = "e6789cbf9d3db493065cc85251e1a4596e4ab561c857d2757ae2593dd53ce6d2";
+  libraryHaskellDepends = [ array base deepseq ghc-prim ];
+  testHaskellDepends = [
+    aeson base hspec lens lens-aeson microlens mtl should-not-typecheck
+    text unordered-containers vector
+  ];
+  benchmarkHaskellDepends = [
+    base criterion linear microlens mwc-random primitive tagged vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  description = "Extensible Records";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/vty.nix b/pkgs/vty.nix
new file mode 100644
index 00000000..bf2699fb
--- /dev/null
+++ b/pkgs/vty.nix
@@ -0,0 +1,38 @@
+{ mkDerivation, ansi-terminal, base, binary, blaze-builder
+, bytestring, Cabal, containers, deepseq, directory, filepath
+, hashable, HUnit, lib, microlens, microlens-mtl, microlens-th, mtl
+, parallel, parsec, QuickCheck, quickcheck-assertions, random
+, smallcheck, stm, string-qq, terminfo, test-framework
+, test-framework-hunit, test-framework-smallcheck, text
+, transformers, unix, utf8-string, vector
+}:
+mkDerivation {
+  pname = "vty";
+  version = "5.37";
+  sha256 = "67e1376b735232c3a5e7fa3c3eff00fdc457bdd5ba7dcf3a758aee6b8b60cdf0";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    ansi-terminal base binary blaze-builder bytestring containers
+    deepseq directory filepath hashable microlens microlens-mtl
+    microlens-th mtl parallel parsec stm terminfo text transformers
+    unix utf8-string vector
+  ];
+  executableHaskellDepends = [
+    base containers directory filepath microlens microlens-mtl mtl
+  ];
+  testHaskellDepends = [
+    base blaze-builder bytestring Cabal containers deepseq HUnit
+    microlens microlens-mtl mtl QuickCheck quickcheck-assertions random
+    smallcheck stm string-qq terminfo test-framework
+    test-framework-hunit test-framework-smallcheck text unix
+    utf8-string vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/jtdaugherty/vty";
+  description = "A simple terminal UI library";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/wai-middleware-static.nix b/pkgs/wai-middleware-static.nix
new file mode 100644
index 00000000..de1b5f85
--- /dev/null
+++ b/pkgs/wai-middleware-static.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, base, base16-bytestring, bytestring, containers
+, cryptohash-sha1, directory, expiring-cache-map, filepath, hspec
+, hspec-discover, hspec-expectations-lifted, hspec-wai, http-types
+, lib, mime-types, mockery, old-locale, scotty, semigroups, text
+, time, wai, wai-extra
+}:
+mkDerivation {
+  pname = "wai-middleware-static";
+  version = "0.9.2";
+  sha256 = "6c0c87558f04807896377535f7801a16b4ddfd9de1a203ef5a45de915907d5fa";
+  revision = "1";
+  editedCabalFile = "1zran8wpwizrwdw23a5qckmiplyk6xf2z8x4his0ipfy2zzl5ql6";
+  libraryHaskellDepends = [
+    base base16-bytestring bytestring containers cryptohash-sha1
+    directory expiring-cache-map filepath http-types mime-types
+    old-locale semigroups text time wai
+  ];
+  testHaskellDepends = [
+    base hspec hspec-expectations-lifted hspec-wai http-types mockery
+    scotty wai-extra
+  ];
+  testToolDepends = [ hspec-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/scotty-web/wai-middleware-static";
+  description = "WAI middleware that serves requests to static files";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/warp-tls.nix b/pkgs/warp-tls.nix
new file mode 100644
index 00000000..09b52eb2
--- /dev/null
+++ b/pkgs/warp-tls.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, base, bytestring, cryptonite, data-default-class
+, lib, network, streaming-commons, tls, tls-session-manager
+, unliftio, wai, warp
+}:
+mkDerivation {
+  pname = "warp-tls";
+  version = "3.3.3";
+  sha256 = "5c44be7a903b863b330d1b9c152100ed7d1709f972e25401018bab407d3f69a0";
+  libraryHaskellDepends = [
+    base bytestring cryptonite data-default-class network
+    streaming-commons tls tls-session-manager unliftio wai warp
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/yesodweb/wai";
+  description = "HTTP over TLS support for Warp via the TLS package";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/warp.nix b/pkgs/warp.nix
new file mode 100644
index 00000000..8e65ace1
--- /dev/null
+++ b/pkgs/warp.nix
@@ -0,0 +1,38 @@
+{ mkDerivation, array, async, auto-update, base, bsb-http-chunked
+, bytestring, case-insensitive, containers, directory, gauge
+, ghc-prim, hashable, hspec, hspec-discover, http-client, http-date
+, http-types, http2, HUnit, iproute, lib, network, process
+, QuickCheck, simple-sendfile, stm, streaming-commons, text, time
+, time-manager, unix, unix-compat, unliftio, vault, wai, word8
+, x509
+}:
+mkDerivation {
+  pname = "warp";
+  version = "3.3.22";
+  sha256 = "ea26386fa12f86bc8d04446cc551ccc5c918debe4ad947f6c6bf514da3f04f3e";
+  libraryHaskellDepends = [
+    array auto-update base bsb-http-chunked bytestring case-insensitive
+    containers ghc-prim hashable http-date http-types http2 iproute
+    network simple-sendfile stm streaming-commons text time-manager
+    unix unix-compat unliftio vault wai word8 x509
+  ];
+  testHaskellDepends = [
+    array async auto-update base bsb-http-chunked bytestring
+    case-insensitive containers directory ghc-prim hashable hspec
+    http-client http-date http-types http2 HUnit iproute network
+    process QuickCheck simple-sendfile stm streaming-commons text time
+    time-manager unix unix-compat unliftio vault wai word8 x509
+  ];
+  testToolDepends = [ hspec-discover ];
+  benchmarkHaskellDepends = [
+    auto-update base bytestring containers gauge hashable http-date
+    http-types network time-manager unix unix-compat unliftio x509
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/yesodweb/wai";
+  description = "A fast, light-weight web server for WAI applications";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
diff --git a/pkgs/with-utf8.nix b/pkgs/with-utf8.nix
new file mode 100644
index 00000000..4af52eda
--- /dev/null
+++ b/pkgs/with-utf8.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, base, deepseq, directory, filepath, hedgehog, HUnit
+, lib, process, safe-exceptions, tasty, tasty-discover
+, tasty-hedgehog, tasty-hunit, temporary, text, th-env, unix
+}:
+mkDerivation {
+  pname = "with-utf8";
+  version = "1.0.2.3";
+  sha256 = "0707ce5868c96379ed4f8486e1791a798cf2a254fda9801a7fb65944aeb5b035";
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [ base safe-exceptions text ];
+  executableHaskellDepends = [
+    base directory filepath process safe-exceptions text th-env
+  ];
+  testHaskellDepends = [
+    base deepseq hedgehog HUnit safe-exceptions tasty tasty-hedgehog
+    tasty-hunit temporary text unix
+  ];
+  testToolDepends = [ tasty-discover ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/serokell/haskell-with-utf8#readme";
+  description = "Get your IO right on the first try";
+  license = lib.licenses.mpl20;
+  mainProgram = "utf8-troubleshoot";
+}
\ No newline at end of file
diff --git a/pkgs/witherable.nix b/pkgs/witherable.nix
new file mode 100644
index 00000000..01d38eb5
--- /dev/null
+++ b/pkgs/witherable.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, base, base-orphans, containers, hashable
+, indexed-traversable, indexed-traversable-instances, lib
+, QuickCheck, quickcheck-instances, tasty, tasty-quickcheck
+, transformers, unordered-containers, vector
+}:
+mkDerivation {
+  pname = "witherable";
+  version = "0.4.2";
+  sha256 = "790d2bb274283419173bd89104439860675a9410f70f21912973ecd9098b4104";
+  revision = "3";
+  editedCabalFile = "1f2bvl41by904lnr0dk6qgasqwadq2w48l7fj51bp2h8bqbkdjyc";
+  libraryHaskellDepends = [
+    base base-orphans containers hashable indexed-traversable
+    indexed-traversable-instances transformers unordered-containers
+    vector
+  ];
+  testHaskellDepends = [
+    base containers hashable QuickCheck quickcheck-instances tasty
+    tasty-quickcheck transformers unordered-containers vector
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/fumieval/witherable";
+  description = "filterable traversable";
+  license = lib.licenses.bsd3;
+}
\ No newline at end of file
diff --git a/pkgs/xml-conduit.nix b/pkgs/xml-conduit.nix
new file mode 100644
index 00000000..6a6b0d37
--- /dev/null
+++ b/pkgs/xml-conduit.nix
@@ -0,0 +1,29 @@
+{ mkDerivation, attoparsec, base, blaze-html, blaze-markup
+, bytestring, Cabal, cabal-doctest, conduit, conduit-extra
+, containers, data-default-class, deepseq, doctest, hspec, HUnit
+, lib, resourcet, text, transformers, xml-types
+}:
+mkDerivation {
+  pname = "xml-conduit";
+  version = "1.9.1.1";
+  sha256 = "bdb117606c0b56ca735564465b14b50f77f84c9e52e31d966ac8d4556d3ff0ff";
+  revision = "1";
+  editedCabalFile = "0x4is0956lfpxnxf2hqv5yvl1v8r1d41h3a22qqkvbqi13xz2hzv";
+  setupHaskellDepends = [ base Cabal cabal-doctest ];
+  libraryHaskellDepends = [
+    attoparsec base blaze-html blaze-markup bytestring conduit
+    conduit-extra containers data-default-class deepseq resourcet text
+    transformers xml-types
+  ];
+  testHaskellDepends = [
+    base blaze-markup bytestring conduit conduit-extra containers
+    doctest hspec HUnit resourcet text transformers xml-types
+  ];
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/snoyberg/xml";
+  description = "Pure-Haskell utilities for dealing with XML with the conduit package";
+  license = lib.licenses.mit;
+}
\ No newline at end of file
-- 
GitLab