diff --git a/.build-all.dhall b/.build-all.dhall
new file mode 100644
index 0000000000000000000000000000000000000000..c8c56667e595663310489d36bd4007eb28666566
--- /dev/null
+++ b/.build-all.dhall
@@ -0,0 +1,22 @@
+let Prelude =
+        env:DHALL_PRELUDE
+      ? https://raw.githubusercontent.com/dhall-lang/dhall-lang/v20.1.0/Prelude/package.dhall
+          sha256:26b0ef498663d269e4dc6a82b0ee289ec565d683ef4c00d0ebdd25333a5a3c98
+
+let H = ./horizon-spec.dhall
+
+let toStep
+    : Text → Text
+    = λ(x : Text) → ".#${x}"
+
+let input = Prelude.Map.keys Text H.HaskellPackage.Type ./horizon.dhall
+
+let packages = Prelude.List.map Text Text toStep (input : List Text)
+
+in      "nix build -L"
+    ++  Prelude.List.fold
+          Text
+          packages
+          Text
+          (λ(x : Text) → λ(y : Text) → x ++ " " ++ y)
+          ""
diff --git a/.gitignore b/.gitignore
index 1f594a88a6fd6819a5d9c52f3112694ef04afdb4..7397c00162d14d73ca680252835a4cb0713c5ef5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
-result
+result*
 dist-newstyle
diff --git a/.gitlab-ci.dhall b/.gitlab-ci.dhall
index 11ded9f593caddcc28b3cf17e0e5bd6b8a8d3cf7..a35ba4f4ac847950f0eef899b92e8708503863cb 100644
--- a/.gitlab-ci.dhall
+++ b/.gitlab-ci.dhall
@@ -12,19 +12,15 @@ let toStep
     = λ(id : Text) →
       λ(prefix : Text) →
       λ(x : Text) →
-        { mapKey = id
-        , mapValue.script = [ "nix build -L .#${prefix}.${x}" ]
-        }
+        { mapKey = id, mapValue.script = [ "nix build -L .#${prefix}.${x}" ] }
 
 let input = Prelude.Map.keys Text H.HaskellPackage.Type ./horizon.dhall
 
 let packages =
       Prelude.List.map
-        (Text)
+        Text
         (H.Attr Step)
-        ( λ(x : Text) →
-            toStep "Package ${x}" "packages.x86_64-linux" x
-        )
+        (λ(x : Text) → toStep "Package ${x}" "packages.x86_64-linux" x)
         (input : List Text)
 
 in  packages
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..d358c76fc3b70b38bf2f177749092368d2c26a37
--- /dev/null
+++ b/README.md
@@ -0,0 +1,22 @@
+# horizon-plutus
+
+horizon-plutus is an overlay for horizon-platform containing cardano and plutus
+libraries
+
+## development with feedback
+
+You can get live feedback using the
+[feedback](https://hackage.haskell.org/package/feedback) tool and
+running the following commands in three separate terminals
+
+```
+feedback build
+```
+
+```
+feedback check
+```
+
+```
+feedback gen
+```
diff --git a/configuration.nix b/configuration.nix
index 7bf29efbf8d905e72c4c4c22a3c3656df3eb53e1..bb9493cd6d2f234fac7876e7e427ce3f5bc0ee51 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -10,6 +10,8 @@ final: prev: {
 
   cardano-crypto-praos = addPkgconfigDepend prev.cardano-crypto-praos pkgs.libsodium;
 
+  cardano-crypto-tests = enableCabalFlag prev.cardano-crypto-tests "development";
+
   cardano-prelude = enableCabalFlag prev.cardano-prelude "development";
 
   plutus-core = setBuildTarget (dontBenchmark prev.plutus-core) "plc";
diff --git a/feedback.yaml b/feedback.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..eb8acb8f49f5b5cf07623d3ec8e686e75e5c2d86
--- /dev/null
+++ b/feedback.yaml
@@ -0,0 +1,10 @@
+loops:
+  build:
+    command: cat .build-all.dhall | dhall text | bash
+    filter:
+      find: '*.nix'
+  check: nix flake check -L
+  gen:
+    command: nix run .#horizon-gen-nix overlay
+    filter:
+      find: horizon.dhall
diff --git a/flake.nix b/flake.nix
index ccc9969c1b69646297a91aa88b1b04bd0b298a3f..af432667e9ed1d42ac5edefc65b5d2ba2beba27b 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,4 +1,6 @@
 {
+  description = "horizon-plutus overlay";
+
   inputs = {
     get-flake.url = "github:ursi/get-flake";
     horizon-platform.url = "git+https://gitlab.homotopic.tech/horizon/horizon-platform?rev=51ffeae6e4cb64c4c0b5c2af322990d3d4089ca2";
@@ -10,48 +12,68 @@
     nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
     nixpkgs-libR.url = "github:nixos/nixpkgs/602748c14b82a2e17078713686fe1df2824fa502";
   };
-  outputs = inputs@{ self, get-flake, nixpkgs, nixpkgs-libR, horizon-gen-nix, horizon-platform, flake-utils, lint-utils, ... }:
+
+  outputs =
+    inputs@
+    { self
+    , flake-utils
+    , get-flake
+    , horizon-gen-nix
+    , horizon-platform
+    , lint-utils
+    , nixpkgs
+    , nixpkgs-libR
+    , ...
+    }:
     flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
-      let
-        pkgs-libR = import nixpkgs-libR { inherit system; };
-        pkgs = import nixpkgs { inherit system; };
+    let
+      pkgs-libR = import nixpkgs-libR { inherit system; };
+      pkgs = import nixpkgs { inherit system; };
+    in
+    with pkgs.lib;
+    with pkgs.writers;
+    let
+      horizon-gen-nix-app = get-flake horizon-gen-nix;
 
-        horizon-gen-nix-app = get-flake horizon-gen-nix;
+      overrides = composeManyExtensions [
+        (import ./overlay.nix { inherit pkgs; })
+        (import ./configuration.nix { inherit pkgs pkgs-libR; })
+      ];
 
-        plutus-overlay = pkgs.lib.composeManyExtensions [
-            (import ./overlay.nix { inherit pkgs; })
-            (import ./configuration.nix { inherit pkgs pkgs-libR; })
-          ];
+      legacyPackages = horizon-platform.legacyPackages.${system}.override {
+        inherit overrides;
+      };
 
-        legacyPackages = horizon-platform.legacyPackages.${system}.override {
-          overrides = plutus-overlay;
-        };
+      packages = filterAttrs
+        (n: v: v != null
+          && builtins.typeOf v == "set"
+          && pkgs.lib.hasAttr "type" v
+          && v.type == "derivation"
+          && v.meta.broken == false)
+        legacyPackages;
 
-        packages = pkgs.lib.filterAttrs
-          (n: v: v != null
-            && builtins.typeOf v == "set"
-            && pkgs.lib.hasAttr "type" v
-            && v.type == "derivation"
-            && v.meta.broken == false)
-          legacyPackages;
-        horizon-gen-gitlab-ci = pkgs.writers.writeBashBin "gen-gitlab-ci" "${pkgs.dhall-json}/bin/dhall-to-yaml --file .gitlab-ci.dhall";
-      in
-      {
-        apps = {
-          horizon-gen-nix = horizon-gen-nix-app.apps.${system}.horizon-gen-nix;
-          horizon-gen-gitlab-ci = {
-            type = "app";
-            program = "${horizon-gen-gitlab-ci}/bin/gen-gitlab-ci";
-          };
-        };
-        checks = {
-          dhall-format = lint-utils.outputs.linters.x86_64-linux.dhall-format ./.;
-          nixpkgs-fmt = lint-utils.outputs.linters.x86_64-linux.nixpkgs-fmt ./.;
+      horizon-gen-gitlab-ci = writeBashBin "gen-gitlab-ci" "${pkgs.dhall-json}/bin/dhall-to-yaml --file .gitlab-ci.dhall";
+
+    in
+    {
+      apps = {
+
+        horizon-gen-nix = horizon-gen-nix-app.apps.${system}.horizon-gen-nix;
+
+        horizon-gen-gitlab-ci = {
+          type = "app";
+          program = "${horizon-gen-gitlab-ci}/bin/gen-gitlab-ci";
         };
 
-        overlays.default = plutus-overlay;
+      };
+
+      checks = {
+        dhall-format = lint-utils.outputs.linters.${system}.dhall-format ./.;
+        nixpkgs-fmt = lint-utils.outputs.linters.${system}.nixpkgs-fmt ./.;
+      };
 
-        inherit legacyPackages;
-        inherit packages;
-      });
+      inherit legacyPackages;
+      inherit overrides;
+      inherit packages;
+    });
 }
diff --git a/horizon.dhall b/horizon.dhall
index a0bdd51b3353fa3fddfa90505e8fff03f5b4edff..c33b0ee6b5331c28634408e690d78c93a1cfdccb 100644
--- a/horizon.dhall
+++ b/horizon.dhall
@@ -1,236 +1,272 @@
 let H = ./horizon-spec.dhall
 
-let callCardanoLedger
-    : ∀(name : Text) →
-      ∀(subdir : Text) →
-        H.Attr H.HaskellPackage.Type
-    = λ(name : Text) →
-      λ(subdir : Text) →
-        H.callCabal2nix
-          name
-          "https://github.com/milloni/cardano-ledger"
-          "3aa1fd8469424778454644f0d371988fb4490b4a"
-          (Some subdir)
-
-let mods = H.Modifiers :: { enableProfiling = False }
+let callRepository
+    : H.Url → H.Revision → H.Name → H.Subdir → H.Attr H.HaskellPackage.Type
+    = λ(repo : H.Url) →
+      λ(revision : H.Revision) →
+      λ(name : H.Name) →
+      λ(subdir : H.Subdir) →
+        H.callCabal2nix name repo revision (Some subdir)
 
-in  H.modPackageList mods
-    [ callCardanoLedger "cardano-ledger-alonzo-test" "eras/alonzo/test-suite"
-    , callCardanoLedger "cardano-ledger-alonzo" "eras/alonzo/impl"
-    , callCardanoLedger "cardano-ledger-babbage" "eras/babbage/impl"
-    , callCardanoLedger "cardano-ledger-babbage-test" "eras/babbage/test-suite"
-    , callCardanoLedger "cardano-ledger-conway" "eras/conway/impl"
-    , callCardanoLedger "cardano-ledger-conway-test" "eras/conway/test-suite"
-    , callCardanoLedger "cardano-ledger-pretty" "libs/cardano-ledger-pretty"
-    , callCardanoLedger "cardano-ledger-shelley" "eras/shelley/impl"
-    , callCardanoLedger "cardano-ledger-shelley-test" "eras/shelley/test-suite"
-    , callCardanoLedger "cardano-ledger-shelley-ma" "eras/shelley-ma/impl"
-    , callCardanoLedger "cardano-ledger-shelley-ma-test" "eras/shelley-ma/test-suite"
-    , callCardanoLedger "cardano-ledger-test" "libs/cardano-ledger-test"
-    , callCardanoLedger "cardano-protocol-tpraos" "libs/cardano-protocol-tpraos"
-    , H.callCabal2nix
-        "plutus-core"
-        "https://github.com/milloni/plutus"
-        "81cd1ada745c12af2c2c28afce1f6b6b28b38fdd"
-        (Some "plutus-core")
-    , H.callCabal2nix
-        "plutus-ledger-api"
-        "https://github.com/milloni/plutus"
-        "81cd1ada745c12af2c2c28afce1f6b6b28b38fdd"
-        (Some "plutus-ledger-api")
-     , H.callCabal2nix
-        "plutus-tx"
-        "https://github.com/milloni/plutus"
-        "81cd1ada745c12af2c2c28afce1f6b6b28b38fdd"
-        (Some "plutus-tx")
-    ]
-    #
-    [ H.callHackage "HTF" "0.15.0.0"
-    , H.callHackage "PyF" "0.11.0.0"
-    , H.callHackage "Stream" "0.4.7.2"
-    , H.callHackage "Unique" "0.4.7.9"
-    , H.callHackage "algebraic-graphs" "0.7"
-    , H.callHackage "base58-bytestring" "0.1.0"
-    , H.callHackage "base64-bytestring-type" "1.0.1"
-    , H.callCabal2nix
-        "base-deriving-via"
-        "https://github.com/input-output-hk/cardano-base"
-        "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee"
-        (Some "base-deriving-via")
-    , H.callHackage "base-prelude" "1.6.1"
-    , H.callHackage "bech32" "1.1.2"
-    , H.callHackage "bin" "0.1.2"
-    , callCardanoLedger "byron-spec-chain" "eras/byron/chain/executable-spec"
-    , callCardanoLedger "byron-spec-ledger" "eras/byron/ledger/executable-spec"
-    , H.callHackage "canonical-json" "0.6.0.1"
-    , H.callCabal2nix
-        "cardano-binary"
-        "https://github.com/input-output-hk/cardano-base"
-        "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee"
-        (Some "binary")
-    , H.callCabal2nix
-        "cardano-binary-test"
-        "https://github.com/input-output-hk/cardano-base"
-        "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee"
-        (Some "binary/test")
-    , H.callCabal2nix
-        "cardano-crypto"
-        "https://github.com/input-output-hk/cardano-crypto"
-        "07397f0e50da97eaa0575d93bee7ac4b2b2576ec"
-        (None Text)
-    , H.callCabal2nix
-        "cardano-crypto-class"
-        "https://github.com/input-output-hk/cardano-base"
-        "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee"
-        (Some "cardano-crypto-class")
-    , H.callCabal2nix
-        "cardano-crypto-praos"
-        "https://github.com/input-output-hk/cardano-base"
-        "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee"
-        (Some "cardano-crypto-praos")
-    , callCardanoLedger "cardano-crypto-test" "eras/byron/crypto/test"
-    , callCardanoLedger "cardano-crypto-wrapper" "eras/byron/crypto"
-    , callCardanoLedger "cardano-data" "libs/cardano-data"
-    , callCardanoLedger "cardano-ledger-api" "libs/cardano-ledger-api"
-    , callCardanoLedger "cardano-ledger-byron" "eras/byron/ledger/impl"
-    , callCardanoLedger "cardano-ledger-byron-test" "eras/byron/ledger/impl/test"
-    , callCardanoLedger "cardano-ledger-core" "libs/cardano-ledger-core"
-    , H.callCabal2nix
-        "cardano-slotting"
-        "https://github.com/input-output-hk/cardano-base"
-        "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee"
-        (Some "slotting")
-    , H.callCabal2nix
-        "cardano-strict-containers"
-        "https://github.com/input-output-hk/cardano-base"
-        "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee"
-        (Some "cardano-strict-containers")
-    , H.callCabal2nix
-        "cardano-prelude"
-        "https://github.com/input-output-hk/cardano-prelude"
-        "b6053a23f53acd5c519cc559c3861dda3ebf8b35"
-        (Some "cardano-prelude")
-    , H.callCabal2nix
-        "cardano-prelude-test"
-        "https://github.com/input-output-hk/cardano-prelude"
-        "b6053a23f53acd5c519cc559c3861dda3ebf8b35"
-        (Some "cardano-prelude-test")
-    , H.callHackage "composition-prelude" "3.0.0.2"
-    , H.callHackage "contra-tracer" "0.2.0.0"
-    , H.callHackage "data-ordlist" "0.4.7.0"
-    , H.callHackage "dependent-sum-template" "0.1.1.1"
-    , H.callHackage "deriving-compat" "0.6.1"
-    , H.callHackage "dictionary-sharing" "0.1.0.0"
-    , H.callHackage "dom-lt" "0.2.3"
-    , H.callCabal2nix
-        "flat"
-        "https://github.com/Quid2/flat"
-        "2121ee96201e39764e3a6fcbc53241afb0050647"
-        (None Text)
-    , H.callHackage "generic-monoid" "0.1.0.1"
-    , H.callCabal2nix
-        "ghc-typelits-knownnat"
-        "https://github.com/clash-lang/ghc-typelits-knownnat"
-        "1bc4ee33e005e96d1f7785c715588a289707cd48"
-        (None Text)
-    , H.callCabal2nix
-        "ghc-typelits-natnormalise"
-        "https://github.com/clash-lang/ghc-typelits-natnormalise"
-        "e0af5b3c69a7d8e1dd402eb727631801e7d9be3d"
-        (None Text)
-    , H.callCabal2nix
-        "goblins"
-        "https://github.com/newhoggy/goblins"
-        "a315f41ec7250097fa6073b5ef4773e45758578f"
-        (None Text)
-    , H.callCabal2nix
-        "gray-code"
-        "https://github.com/milloni/gray-code-0.3.1"
-        "f310a19e44416206633cfd084f10ffb7cfea9f1d"
-        (None Text)
-    , H.callHackage "haskell-src" "1.0.4"
-    , H.callCabal2nix
-        "heapwords"
-        "https://github.com/input-output-hk/cardano-base"
-        "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee"
-        (Some "heapwords")
-    , H.callHackage "hedgehog-fn" "1.0"
-    , H.callHackage "hedgehog-quickcheck" "0.1.1"
-    , H.callHackage "heredoc" "0.2.0.0"
-    , H.callHackage "hex-text" "0.1.0.7"
-    , H.callHackage "hxt" "9.3.1.22"
-    , H.callHackage "hxt-charproperties" "9.5.0.0"
-    , H.callHackage "hxt-regex-xmlschema" "9.2.0.7"
-    , H.callHackage "hxt-unicode" "9.0.2.4"
-    , H.callHackage "inline-c" "0.9.1.6"
-    , H.callCabal2nix
-        "inline-r"
-        "https://github.com/tweag/HaskellR"
-        "fe9b5bd06cd4d3988e47b9933b11d83b6108e255"
-        (Some "inline-r")
-    , H.callHackage "int-cast" "0.2.0.0"
-    , H.callCabal2nix
-        "measures"
+let callCardanoBase
+    : H.Name → H.Subdir → H.Attr H.HaskellPackage.Type
+    = callRepository
         "https://github.com/input-output-hk/cardano-base"
         "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee"
-        (Some "measures")
-    , H.callHackage "mersenne-random-pure64" "0.2.2.0"
-    , H.callHackage "monoidal-containers" "0.6.3.0"
-    , H.callCabal2nix
-        "moo"
-        "https://github.com/astanin/moo"
-        "dbda5e76ac3b4c72c805ec0cdb9bcdff7bb6247d"
-        (None Text)
-    , H.callHackage "mtl-prelude" "2.0.3.1"
-    , H.callHackage "multiset" "0.3.4.3"
-    , H.callHackage "lazysmallcheck" "0.6"
-    , H.callHackage "lazy-search" "0.1.3.0"
-    , H.callHackage "list-t" "1.0.5.3"
-    , H.callHackage "newtype" "0.2.2.0"
-    , H.callHackage "nonempty-vector" "0.2.1.0"
-    , callCardanoLedger "non-integral" "libs/non-integral"
-    , H.callCabal2nix
-        "nothunks"
-        "https://github.com/locallycompact/nothunks"
-        "0d7e3565407aa4eb21d861d075dff6f20d090f97"
-        (None Text)
-    , H.callHackage "partial-order" "0.2.0.0"
-    , callCardanoLedger "plutus-preprocessor" "libs/plutus-preprocessor"
-    , H.callCabal2nix
-        "prettyprinter-configurable"
-        "https://github.com/milloni/plutus"
-        "81cd1ada745c12af2c2c28afce1f6b6b28b38fdd"
-        (Some "prettyprinter-configurable")
-    , H.callHackage "protolude" "0.3.2"
-    , H.callHackage "quiet" "0.2"
-    , H.callHackage "ral" "0.1"
-    , H.callHackage "recursion-schemes" "5.2.2.2"
-    , H.callHackage "ref-tf" "0.5.0.1"
-    , callCardanoLedger "set-algebra" "libs/set-algebra"
-    , H.callHackage "singletons-th" "3.1.1"
-    , callCardanoLedger "small-steps" "libs/small-steps"
-    , callCardanoLedger "small-steps-test" "libs/small-steps-test"
-    , H.callHackage "streaming-binary" "0.3.0.1"
-    , H.callHackage "streaming-bytestring" "0.2.4"
-    , H.callCabal2nix
-        "strict-containers"
-        "https://github.com/milloni/strict-containers"
-        "9e833be00bc2c5cdb0b4e743b7a2cde00dd4f616"
-        (Some "strict-containers")
-    , H.callHackage "testing-type-modifiers" "0.1.0.1"
-    , H.callHackage "th-desugar" "1.14"
-    , H.callCabal2nix
-        "typerep-map"
-        "https://github.com/parsonsmatt/typerep-map"
-        "75b7cd5d45986be07420a6821d352ad2adc0b697"
-        (None Text)
-    , H.callHackage "validation-selective" "0.1.0.2"
-    , callCardanoLedger "vector-map" "libs/vector-map"
-    , H.callCabal2nix
-        "word-array"
+
+let callCardanoLedger
+    : H.Name → H.Subdir → H.Attr H.HaskellPackage.Type
+    = callRepository
+        "https://github.com/milloni/cardano-ledger"
+        "3aa1fd8469424778454644f0d371988fb4490b4a"
+
+let callCardanoNode
+    : H.Name → H.Subdir → H.Attr H.HaskellPackage.Type
+    = callRepository
+        "https://github.com/input-output-hk/cardano-node"
+        "4198592a7ea9c4873def316d6f80df1d20d37891"
+
+let callIoSim
+    : H.Name → H.Subdir → H.Attr H.HaskellPackage.Type
+    = callRepository
+        "https://github.com/input-output-hk/io-sim"
+        "dcafd44cdc101a3e213de6a2d5ba7f674c2bc13c"
+
+let callIohkMonitoringFramework
+    : H.Name → H.Subdir → H.Attr H.HaskellPackage.Type
+    = callRepository
+        "https://github.com/input-output-hk/iohk-monitoring-framework"
+        "1b5ae75d3186159f8175ad625db324d075450343"
+
+let callOuroborosNetwork
+    : H.Name → H.Subdir → H.Attr H.HaskellPackage.Type
+    = callRepository
+        "https://github.com/input-output-hk/ouroboros-network"
+        "3a2c7c296fa4d9748d89dbe592375bf7f60cd656"
+
+let callPlutusApps
+    : H.Name → H.Subdir → H.Attr H.HaskellPackage.Type
+    = callRepository
+        "https://github.com/input-output-hk/plutus-apps"
+        "b7ac5b2035f3675b3ceb289cf3a1551230714987"
+
+let callPlutus
+    : H.Name → H.Subdir → H.Attr H.HaskellPackage.Type
+    = callRepository
         "https://github.com/milloni/plutus"
         "81cd1ada745c12af2c2c28afce1f6b6b28b38fdd"
-        (Some "word-array")
-    , H.callHackage "xmlgen" "0.6.2.2"
-    , H.callHackage "size-based" "0.1.3.1"
-    ]
+
+let callTypedProtocols
+    : H.Name → H.Subdir → H.Attr H.HaskellPackage.Type
+    = callRepository
+        "https://github.com/input-output-hk/typed-protocols"
+        "ab4e0346c3215daad4c823f3ddc0eefae32091ff"
+
+let plutusLibraries =
+      H.modPackageList
+        H.Modifiers::{ enableProfiling = False }
+        [ callCardanoLedger
+            "cardano-ledger-alonzo-test"
+            "eras/alonzo/test-suite"
+        , callCardanoLedger "cardano-ledger-alonzo" "eras/alonzo/impl"
+        , callCardanoLedger "cardano-ledger-api" "libs/cardano-ledger-api"
+        , callCardanoLedger "cardano-ledger-babbage" "eras/babbage/impl"
+        , callCardanoLedger
+            "cardano-ledger-babbage-test"
+            "eras/babbage/test-suite"
+        , callCardanoLedger "cardano-ledger-conway" "eras/conway/impl"
+        , callCardanoLedger
+            "cardano-ledger-conway-test"
+            "eras/conway/test-suite"
+        , callCardanoLedger "cardano-ledger-pretty" "libs/cardano-ledger-pretty"
+        , callCardanoLedger "cardano-ledger-shelley" "eras/shelley/impl"
+        , callCardanoLedger
+            "cardano-ledger-shelley-test"
+            "eras/shelley/test-suite"
+        , callCardanoLedger "cardano-ledger-shelley-ma" "eras/shelley-ma/impl"
+        , callCardanoLedger
+            "cardano-ledger-shelley-ma-test"
+            "eras/shelley-ma/test-suite"
+        , callCardanoLedger "cardano-ledger-test" "libs/cardano-ledger-test"
+        , callCardanoLedger
+            "cardano-protocol-tpraos"
+            "libs/cardano-protocol-tpraos"
+        , callPlutus "plutus-core" "plutus-core"
+        , callPlutus "plutus-ledger-api" "plutus-ledger-api"
+        , callCardanoLedger "plutus-preprocessor" "libs/plutus-preprocessor"
+        , callPlutus "plutus-tx" "plutus-tx"
+        ]
+
+let otherLibraries =
+      [ H.callHackage "HTF" "0.15.0.0"
+      , H.callHackage "PyF" "0.11.0.0"
+      , H.callHackage "Stream" "0.4.7.2"
+      , H.callHackage "Unique" "0.4.7.9"
+      , H.callHackage "algebraic-graphs" "0.7"
+      , H.callHackage "base58-bytestring" "0.1.0"
+      , H.callHackage "base64-bytestring-type" "1.0.1"
+      , callCardanoBase "base-deriving-via" "base-deriving-via"
+      , H.callHackage "base-prelude" "1.6.1"
+      , H.callHackage "bech32" "1.1.2"
+      , H.callHackage "bin" "0.1.2"
+      , callCardanoLedger "byron-spec-chain" "eras/byron/chain/executable-spec"
+      , callCardanoLedger
+          "byron-spec-ledger"
+          "eras/byron/ledger/executable-spec"
+      , H.callHackage "canonical-json" "0.6.0.1"
+      , callCardanoBase "cardano-binary" "binary"
+      , callCardanoBase "cardano-binary-test" "binary/test"
+      , H.callCabal2nix
+          "cardano-crypto"
+          "https://github.com/input-output-hk/cardano-crypto"
+          "07397f0e50da97eaa0575d93bee7ac4b2b2576ec"
+          (None H.Subdir)
+      , callCardanoBase "cardano-crypto-class" "cardano-crypto-class"
+      , callCardanoBase "cardano-crypto-praos" "cardano-crypto-praos"
+      , callCardanoBase "cardano-crypto-tests" "cardano-crypto-tests"
+      , callCardanoLedger "cardano-crypto-test" "eras/byron/crypto/test"
+      , callCardanoLedger "cardano-crypto-wrapper" "eras/byron/crypto"
+      , callCardanoLedger "cardano-data" "libs/cardano-data"
+      , callCardanoLedger "cardano-ledger-byron" "eras/byron/ledger/impl"
+      , callCardanoLedger
+          "cardano-ledger-byron-test"
+          "eras/byron/ledger/impl/test"
+      , callCardanoLedger "cardano-ledger-core" "libs/cardano-ledger-core"
+      , callCardanoBase "cardano-slotting" "slotting"
+      , callCardanoBase "cardano-strict-containers" "cardano-strict-containers"
+      , H.callCabal2nix
+          "cardano-prelude"
+          "https://github.com/input-output-hk/cardano-prelude"
+          "b6053a23f53acd5c519cc559c3861dda3ebf8b35"
+          (Some "cardano-prelude")
+      , H.callCabal2nix
+          "cardano-prelude-test"
+          "https://github.com/input-output-hk/cardano-prelude"
+          "b6053a23f53acd5c519cc559c3861dda3ebf8b35"
+          (Some "cardano-prelude-test")
+      , H.callHackage "composition-prelude" "3.0.0.2"
+      , H.callHackage "contra-tracer" "0.2.0.0"
+      , H.callHackage "data-ordlist" "0.4.7.0"
+      , H.callHackage "dependent-sum-template" "0.1.1.1"
+      , H.callHackage "deque" "0.4.4"
+      , H.callHackage "deriving-compat" "0.6.1"
+      , H.callHackage "dictionary-sharing" "0.1.0.0"
+      , H.callHackage "doctest-discover" "0.2.0.0"
+      , H.callHackage "dom-lt" "0.2.3"
+      , H.callCabal2nix
+          "flat"
+          "https://github.com/Quid2/flat"
+          "2121ee96201e39764e3a6fcbc53241afb0050647"
+          (None H.Subdir)
+      , H.callHackage "generic-monoid" "0.1.0.1"
+      , H.callCabal2nix
+          "ghc-typelits-knownnat"
+          "https://github.com/clash-lang/ghc-typelits-knownnat"
+          "1bc4ee33e005e96d1f7785c715588a289707cd48"
+          (None H.Subdir)
+      , H.callCabal2nix
+          "ghc-typelits-natnormalise"
+          "https://github.com/clash-lang/ghc-typelits-natnormalise"
+          "e0af5b3c69a7d8e1dd402eb727631801e7d9be3d"
+          (None H.Subdir)
+      , H.callCabal2nix
+          "goblins"
+          "https://github.com/newhoggy/goblins"
+          "a315f41ec7250097fa6073b5ef4773e45758578f"
+          (None H.Subdir)
+      , H.callCabal2nix
+          "gray-code"
+          "https://github.com/milloni/gray-code-0.3.1"
+          "f310a19e44416206633cfd084f10ffb7cfea9f1d"
+          (None H.Subdir)
+      , H.callHackage "haskell-src" "1.0.4"
+      , callCardanoBase "heapwords" "heapwords"
+      , H.callCabal2nix
+          "hedgehog-extras"
+          "https://github.com/input-output-hk/hedgehog-extras"
+          "26b76bbcecfe48d0a87099f213f58e3778aa1f59"
+          (None H.Subdir)
+      , H.callHackage "hedgehog-fn" "1.0"
+      , H.callHackage "hedgehog-quickcheck" "0.1.1"
+      , H.callHackage "heredoc" "0.2.0.0"
+      , H.callHackage "hex-text" "0.1.0.7"
+      , H.callHackage "hw-aeson" "0.1.8.0"
+      , H.callHackage "hxt" "9.3.1.22"
+      , H.callHackage "hxt-charproperties" "9.5.0.0"
+      , H.callHackage "hxt-regex-xmlschema" "9.2.0.7"
+      , H.callHackage "hxt-unicode" "9.0.2.4"
+      , H.callHackage "inline-c" "0.9.1.6"
+      , H.callCabal2nix
+          "inline-r"
+          "https://github.com/tweag/HaskellR"
+          "fe9b5bd06cd4d3988e47b9933b11d83b6108e255"
+          (Some "inline-r")
+      , H.callHackage "int-cast" "0.2.0.0"
+      , callCardanoBase "measures" "measures"
+      , H.callHackage "mersenne-random-pure64" "0.2.2.0"
+      , H.callHackage "monoidal-containers" "0.6.3.0"
+      , H.callCabal2nix
+          "moo"
+          "https://github.com/astanin/moo"
+          "dbda5e76ac3b4c72c805ec0cdb9bcdff7bb6247d"
+          (None H.Subdir)
+      , H.callHackage "mtl-prelude" "2.0.3.1"
+      , H.callHackage "multiset" "0.3.4.3"
+      , H.callHackage "lazysmallcheck" "0.6"
+      , H.callHackage "lazy-search" "0.1.3.0"
+      , H.callHackage "list-t" "1.0.5.3"
+      , H.callHackage "newtype" "0.2.2.0"
+      , H.callHackage "nonempty-vector" "0.2.1.0"
+      , callCardanoLedger "non-integral" "libs/non-integral"
+      , H.callCabal2nix
+          "nothunks"
+          "https://github.com/locallycompact/nothunks"
+          "0d7e3565407aa4eb21d861d075dff6f20d090f97"
+          (None H.Subdir)
+      , H.callHackage "openapi3" "3.2.2"
+      , H.callCabal2nix
+          "optparse-applicative-fork"
+          "https://github.com/input-output-hk/optparse-applicative/"
+          "7497a29cb998721a9068d5725d49461f2bba0e7a"
+          (None H.Subdir)
+      , H.callHackage "optparse-generic" "1.4.8"
+      , H.callHackage "partial-order" "0.2.0.0"
+      , H.callCabal2nix
+          "prettyprinter-configurable"
+          "https://github.com/milloni/plutus"
+          "81cd1ada745c12af2c2c28afce1f6b6b28b38fdd"
+          (Some "prettyprinter-configurable")
+      , H.callHackage "protolude" "0.3.2"
+      , H.callHackage "quiet" "0.2"
+      , H.callHackage "ral" "0.1"
+      , H.callHackage "recursion-schemes" "5.2.2.2"
+      , H.callHackage "ref-tf" "0.5.0.1"
+      , callCardanoLedger "set-algebra" "libs/set-algebra"
+      , H.callHackage "singletons-th" "3.1.1"
+      , H.callHackage "size-based" "0.1.3.1"
+      , callCardanoLedger "small-steps" "libs/small-steps"
+      , callCardanoLedger "small-steps-test" "libs/small-steps-test"
+      , H.callHackage "streaming-binary" "0.3.0.1"
+      , H.callHackage "streaming-bytestring" "0.2.4"
+      , H.callCabal2nix
+          "strict-containers"
+          "https://github.com/milloni/strict-containers"
+          "9e833be00bc2c5cdb0b4e743b7a2cde00dd4f616"
+          (Some "strict-containers")
+      , H.callHackage "strict-list" "0.1.7"
+      , H.callHackage "testing-type-modifiers" "0.1.0.1"
+      , H.callHackage "th-desugar" "1.14"
+      , H.callHackage "time-units" "1.0.0"
+      , H.callHackage "transformers-except" "0.1.2"
+      , H.callCabal2nix
+          "typerep-map"
+          "https://github.com/parsonsmatt/typerep-map"
+          "75b7cd5d45986be07420a6821d352ad2adc0b697"
+          (None H.Subdir)
+      , H.callHackage "validation-selective" "0.1.0.2"
+      , callCardanoLedger "vector-map" "libs/vector-map"
+      , callPlutus "word-array" "word-array"
+      , H.callHackage "xmlgen" "0.6.2.2"
+      ]
+
+in  plutusLibraries # otherLibraries
diff --git a/overlay.nix b/overlay.nix
index 8790375fde8591d06313f22df10de015bc30ff7f..e2fb45077b94fde84a77783e82fcb134dfb55a4b 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -41,6 +41,8 @@ final: prev: with pkgs.haskell.lib; {
 
   cardano-crypto-test = final.callPackage (./pkgs/cardano-crypto-test.nix) { };
 
+  cardano-crypto-tests = final.callPackage (./pkgs/cardano-crypto-tests.nix) { };
+
   cardano-crypto-wrapper = final.callPackage (./pkgs/cardano-crypto-wrapper.nix) { };
 
   cardano-data = final.callPackage (./pkgs/cardano-data.nix) { };
@@ -95,10 +97,14 @@ final: prev: with pkgs.haskell.lib; {
 
   dependent-sum-template = final.callPackage (./pkgs/dependent-sum-template.nix) { };
 
+  deque = final.callPackage (./pkgs/deque.nix) { };
+
   deriving-compat = final.callPackage (./pkgs/deriving-compat.nix) { };
 
   dictionary-sharing = final.callPackage (./pkgs/dictionary-sharing.nix) { };
 
+  doctest-discover = final.callPackage (./pkgs/doctest-discover.nix) { };
+
   dom-lt = final.callPackage (./pkgs/dom-lt.nix) { };
 
   flat = final.callPackage (./pkgs/flat.nix) { };
@@ -117,6 +123,8 @@ final: prev: with pkgs.haskell.lib; {
 
   heapwords = final.callPackage (./pkgs/heapwords.nix) { };
 
+  hedgehog-extras = final.callPackage (./pkgs/hedgehog-extras.nix) { };
+
   hedgehog-fn = final.callPackage (./pkgs/hedgehog-fn.nix) { };
 
   hedgehog-quickcheck = final.callPackage (./pkgs/hedgehog-quickcheck.nix) { };
@@ -125,6 +133,8 @@ final: prev: with pkgs.haskell.lib; {
 
   hex-text = final.callPackage (./pkgs/hex-text.nix) { };
 
+  hw-aeson = final.callPackage (./pkgs/hw-aeson.nix) { };
+
   hxt = final.callPackage (./pkgs/hxt.nix) { };
 
   hxt-charproperties = final.callPackage (./pkgs/hxt-charproperties.nix) { };
@@ -165,6 +175,12 @@ final: prev: with pkgs.haskell.lib; {
 
   nothunks = final.callPackage (./pkgs/nothunks.nix) { };
 
+  openapi3 = final.callPackage (./pkgs/openapi3.nix) { };
+
+  optparse-applicative-fork = final.callPackage (./pkgs/optparse-applicative-fork.nix) { };
+
+  optparse-generic = final.callPackage (./pkgs/optparse-generic.nix) { };
+
   partial-order = final.callPackage (./pkgs/partial-order.nix) { };
 
   plutus-core = final.callPackage (./pkgs/plutus-core.nix) { };
@@ -203,10 +219,16 @@ final: prev: with pkgs.haskell.lib; {
 
   strict-containers = final.callPackage (./pkgs/strict-containers.nix) { };
 
+  strict-list = final.callPackage (./pkgs/strict-list.nix) { };
+
   testing-type-modifiers = final.callPackage (./pkgs/testing-type-modifiers.nix) { };
 
   th-desugar = final.callPackage (./pkgs/th-desugar.nix) { };
 
+  time-units = final.callPackage (./pkgs/time-units.nix) { };
+
+  transformers-except = final.callPackage (./pkgs/transformers-except.nix) { };
+
   typerep-map = final.callPackage (./pkgs/typerep-map.nix) { };
 
   validation-selective = final.callPackage (./pkgs/validation-selective.nix) { };
diff --git a/pkgs/cardano-crypto-tests.nix b/pkgs/cardano-crypto-tests.nix
new file mode 100644
index 0000000000000000000000000000000000000000..68082b4d403f30a9637a77ea6f687593af469c3b
--- /dev/null
+++ b/pkgs/cardano-crypto-tests.nix
@@ -0,0 +1,71 @@
+{ mkDerivation
+, QuickCheck
+, base
+, bytestring
+, cardano-binary
+, cardano-crypto-class
+, cardano-crypto-praos
+, cborg
+, criterion
+, cryptonite
+, deepseq
+, fetchgit
+, formatting
+, lib
+, nothunks
+, pretty-show
+, quickcheck-instances
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "cardano-crypto-tests";
+  version = "2.0.0.1";
+  src = fetchgit {
+    url = "https://github.com/input-output-hk/cardano-base";
+    sha256 = "0qn56ahqmy79riwyaq5m0d4vpamdjkkk04b0x8zwlyd5y3pg58xd";
+    rev = "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee";
+    fetchSubmodules = true;
+  };
+  postUnpack = "sourceRoot+=/cardano-crypto-tests/; echo source root reset to $sourceRoot";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    cardano-binary
+    cardano-crypto-class
+    cardano-crypto-praos
+    cborg
+    criterion
+    cryptonite
+    deepseq
+    formatting
+    nothunks
+    pretty-show
+    QuickCheck
+    quickcheck-instances
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  testHaskellDepends = [
+    base
+    cardano-crypto-class
+    tasty
+    tasty-quickcheck
+  ];
+  benchmarkHaskellDepends = [ base cardano-crypto-class criterion ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Tests for cardano-crypto-class and -praos";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/cardano-ledger-api.nix b/pkgs/cardano-ledger-api.nix
index e53b9fcd9fa412bc6a663fbc079d03c1b505e2a7..40f91488d394ef96587b12323a5aca60ba8ff5da 100644
--- a/pkgs/cardano-ledger-api.nix
+++ b/pkgs/cardano-ledger-api.nix
@@ -53,8 +53,8 @@ mkDerivation {
     tasty
     tasty-quickcheck
   ];
-  enableLibraryProfiling = true;
-  enableExecutableProfiling = true;
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
   doHaddock = false;
   jailbreak = true;
   doCheck = false;
diff --git a/pkgs/deque.nix b/pkgs/deque.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7f659138afd09ab4ed66f7893624e13a91ddc83c
--- /dev/null
+++ b/pkgs/deque.nix
@@ -0,0 +1,42 @@
+{ mkDerivation
+, QuickCheck
+, base
+, deepseq
+, hashable
+, lib
+, mtl
+, quickcheck-instances
+, rerebase
+, strict-list
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "deque";
+  version = "0.4.4";
+  sha256 = "d646d82001cc6b1f17a969ab1d479c2f65f31547c1741dfd7d7c12f7709319f4";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq hashable mtl strict-list ];
+  testHaskellDepends = [
+    QuickCheck
+    quickcheck-instances
+    rerebase
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/nikita-volkov/deque";
+  description = "Double-ended queues";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/doctest-discover.nix b/pkgs/doctest-discover.nix
new file mode 100644
index 0000000000000000000000000000000000000000..58a61a454920bba09aacc438878f7552473d3825
--- /dev/null
+++ b/pkgs/doctest-discover.nix
@@ -0,0 +1,45 @@
+{ mkDerivation
+, aeson
+, base
+, bytestring
+, directory
+, doctest
+, filepath
+, lib
+}:
+mkDerivation {
+  pname = "doctest-discover";
+  version = "0.2.0.0";
+  sha256 = "a953aa50837e52efc766a77e382c2be2acbc887fa6dadbc54b756f59d6c49ec8";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    bytestring
+    directory
+    doctest
+    filepath
+  ];
+  executableHaskellDepends = [
+    aeson
+    base
+    bytestring
+    directory
+    doctest
+    filepath
+  ];
+  testHaskellDepends = [ base doctest ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/karun012/doctest-discover";
+  description = "Easy way to run doctests via cabal";
+  license = lib.licenses.publicDomain;
+  broken = false;
+}
diff --git a/pkgs/hedgehog-extras.nix b/pkgs/hedgehog-extras.nix
new file mode 100644
index 0000000000000000000000000000000000000000..358c2cc2e773e118cf0b3306c369f7dd26497898
--- /dev/null
+++ b/pkgs/hedgehog-extras.nix
@@ -0,0 +1,77 @@
+{ mkDerivation
+, aeson
+, aeson-pretty
+, async
+, base
+, bytestring
+, deepseq
+, directory
+, exceptions
+, fetchgit
+, filepath
+, hedgehog
+, hw-aeson
+, lib
+, mmorph
+, mtl
+, network
+, process
+, resourcet
+, stm
+, temporary
+, text
+, time
+, transformers
+, unliftio
+, unordered-containers
+, yaml
+}:
+mkDerivation {
+  pname = "hedgehog-extras";
+  version = "0.2.0.0";
+  src = fetchgit {
+    url = "https://github.com/input-output-hk/hedgehog-extras";
+    sha256 = "14fq596n48jx2yys7pzz2rfdssd6hj28z6wb7dl4pjzpkznbwj3a";
+    rev = "26b76bbcecfe48d0a87099f213f58e3778aa1f59";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    aeson-pretty
+    async
+    base
+    bytestring
+    deepseq
+    directory
+    exceptions
+    filepath
+    hedgehog
+    hw-aeson
+    mmorph
+    mtl
+    network
+    process
+    resourcet
+    stm
+    temporary
+    text
+    time
+    transformers
+    unliftio
+    unordered-containers
+    yaml
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Supplemental library for hedgehog";
+  license = lib.licenses.asl20;
+  broken = false;
+}
diff --git a/pkgs/hw-aeson.nix b/pkgs/hw-aeson.nix
new file mode 100644
index 0000000000000000000000000000000000000000..fe08b280825059e75ffc5669927c1c7f090a7f7a
--- /dev/null
+++ b/pkgs/hw-aeson.nix
@@ -0,0 +1,56 @@
+{ mkDerivation
+, aeson
+, base
+, bytestring
+, containers
+, doctest
+, doctest-discover
+, hashable
+, hedgehog
+, hspec
+, hspec-discover
+, lib
+, text
+, text-short
+, unordered-containers
+}:
+mkDerivation {
+  pname = "hw-aeson";
+  version = "0.1.8.0";
+  sha256 = "a20a8e21a2bf49fb33cefd09ab0fd521757280ab15603e837d9b5188df6d07f4";
+  revision = "2";
+  editedCabalFile = "04vjq54xc354scgzgf863px9fadvw4dr6kgli9rp4plw3sh4k3qg";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    aeson
+    base
+    bytestring
+    containers
+    hashable
+    text
+    text-short
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    aeson
+    base
+    doctest
+    doctest-discover
+    hedgehog
+    hspec
+  ];
+  testToolDepends = [ doctest-discover hspec-discover ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/haskell-works/hw-aeson#readme";
+  description = "Convenience functions for Aeson";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/openapi3.nix b/pkgs/openapi3.nix
new file mode 100644
index 0000000000000000000000000000000000000000..09f22ae22bc697acfdcfa85f8768a8abfda8179d
--- /dev/null
+++ b/pkgs/openapi3.nix
@@ -0,0 +1,111 @@
+{ mkDerivation
+, Cabal
+, Glob
+, HUnit
+, QuickCheck
+, aeson
+, aeson-pretty
+, base
+, base-compat-batteries
+, bytestring
+, cabal-doctest
+, containers
+, cookie
+, doctest
+, generics-sop
+, hashable
+, hspec
+, hspec-discover
+, http-media
+, insert-ordered-containers
+, lens
+, lib
+, mtl
+, network
+, optics-core
+, optics-th
+, quickcheck-instances
+, scientific
+, template-haskell
+, text
+, time
+, transformers
+, unordered-containers
+, utf8-string
+, uuid-types
+, vector
+}:
+mkDerivation {
+  pname = "openapi3";
+  version = "3.2.2";
+  sha256 = "325d491e305de60510f5267b3eccdc2719d4a8e5784577d7e79aef28368d6134";
+  revision = "2";
+  editedCabalFile = "1yc3wlc8j84glav3hzx1l4yq33k05bll252a8yl6ld275jjswn8p";
+  isLibrary = true;
+  isExecutable = true;
+  enableSeparateDataOutput = false;
+  setupHaskellDepends = [ base Cabal cabal-doctest ];
+  libraryHaskellDepends = [
+    aeson
+    aeson-pretty
+    base
+    base-compat-batteries
+    bytestring
+    containers
+    cookie
+    generics-sop
+    hashable
+    http-media
+    insert-ordered-containers
+    lens
+    mtl
+    network
+    optics-core
+    optics-th
+    QuickCheck
+    scientific
+    template-haskell
+    text
+    time
+    transformers
+    unordered-containers
+    uuid-types
+    vector
+  ];
+  executableHaskellDepends = [ aeson base lens text ];
+  testHaskellDepends = [
+    aeson
+    base
+    base-compat-batteries
+    bytestring
+    containers
+    doctest
+    Glob
+    hashable
+    hspec
+    HUnit
+    insert-ordered-containers
+    lens
+    mtl
+    QuickCheck
+    quickcheck-instances
+    template-haskell
+    text
+    time
+    unordered-containers
+    utf8-string
+    vector
+  ];
+  testToolDepends = [ hspec-discover ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/biocad/openapi3";
+  description = "OpenAPI 3.0 data model";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/optparse-applicative-fork.nix b/pkgs/optparse-applicative-fork.nix
new file mode 100644
index 0000000000000000000000000000000000000000..d10ca08a91f0791fa5d72f6c436183f43a91e5d8
--- /dev/null
+++ b/pkgs/optparse-applicative-fork.nix
@@ -0,0 +1,46 @@
+{ mkDerivation
+, QuickCheck
+, ansi-terminal
+, base
+, fetchgit
+, lib
+, prettyprinter
+, process
+, text
+, transformers
+, transformers-compat
+}:
+mkDerivation {
+  pname = "optparse-applicative-fork";
+  version = "0.16.1.0";
+  src = fetchgit {
+    url = "https://github.com/input-output-hk/optparse-applicative/";
+    sha256 = "1gvsrg925vynwgqwplgjmp53vj953qyh3wbdf34pw21c8r47w35r";
+    rev = "7497a29cb998721a9068d5725d49461f2bba0e7a";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    ansi-terminal
+    base
+    prettyprinter
+    process
+    text
+    transformers
+    transformers-compat
+  ];
+  testHaskellDepends = [ base QuickCheck ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/pcapriotti/optparse-applicative-fork";
+  description = "Utilities and combinators for parsing command line options";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/optparse-generic.nix b/pkgs/optparse-generic.nix
new file mode 100644
index 0000000000000000000000000000000000000000..0b79016a6cad47d118f3a5bad7acd54f53a80ccf
--- /dev/null
+++ b/pkgs/optparse-generic.nix
@@ -0,0 +1,45 @@
+{ mkDerivation
+, Only
+, base
+, bytestring
+, lib
+, optparse-applicative
+, system-filepath
+, text
+, time
+, transformers
+, transformers-compat
+, void
+}:
+mkDerivation {
+  pname = "optparse-generic";
+  version = "1.4.8";
+  sha256 = "aa45862d5c59b21403fbd6f6771fa8047b7c82043efbd38bbe59e08ae5961a81";
+  revision = "1";
+  editedCabalFile = "0rgh8sy2w7rh5n1sz0jxcq892myplbli15snggi77dflv00ic7zd";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    base
+    bytestring
+    Only
+    optparse-applicative
+    system-filepath
+    text
+    time
+    transformers
+    transformers-compat
+    void
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "Auto-generate a command-line parser for your datatype";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/plutus-preprocessor.nix b/pkgs/plutus-preprocessor.nix
index 3643a20976cbe628af7cc30c5d1d63768b9e389e..9bfefda9b76f96a1033b5a187e8e595356d02eaa 100644
--- a/pkgs/plutus-preprocessor.nix
+++ b/pkgs/plutus-preprocessor.nix
@@ -13,8 +13,8 @@ mkDerivation {
   isExecutable = true;
   enableSeparateDataOutput = false;
   executableHaskellDepends = [ base cardano-ledger-alonzo ];
-  enableLibraryProfiling = true;
-  enableExecutableProfiling = true;
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
   doHaddock = false;
   jailbreak = true;
   doCheck = false;
diff --git a/pkgs/strict-list.nix b/pkgs/strict-list.nix
new file mode 100644
index 0000000000000000000000000000000000000000..5df276ea9d218a42e4a953b04a2396eb7ed3b40d
--- /dev/null
+++ b/pkgs/strict-list.nix
@@ -0,0 +1,41 @@
+{ mkDerivation
+, QuickCheck
+, base
+, deepseq
+, hashable
+, lib
+, quickcheck-instances
+, rerebase
+, semigroupoids
+, tasty
+, tasty-hunit
+, tasty-quickcheck
+}:
+mkDerivation {
+  pname = "strict-list";
+  version = "0.1.7";
+  sha256 = "70cd8accb5e1f68273b07c6cfe64e27f08815df59e2606bc5ed6f2fdcbb20e36";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base deepseq hashable semigroupoids ];
+  testHaskellDepends = [
+    QuickCheck
+    quickcheck-instances
+    rerebase
+    tasty
+    tasty-hunit
+    tasty-quickcheck
+  ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/nikita-volkov/strict-list";
+  description = "Strict linked list";
+  license = lib.licenses.mit;
+  broken = false;
+}
diff --git a/pkgs/time-units.nix b/pkgs/time-units.nix
new file mode 100644
index 0000000000000000000000000000000000000000..98f0308ebb1e29f3db674c237a84e8b5de7f257a
--- /dev/null
+++ b/pkgs/time-units.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, lib }:
+mkDerivation {
+  pname = "time-units";
+  version = "1.0.0";
+  sha256 = "e181997dd05321f09b21c5e0bf38524ccab51ecc588a6017253cc96db289e099";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/acw/time-units";
+  description = "A basic library for defining units of time as types";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
diff --git a/pkgs/transformers-except.nix b/pkgs/transformers-except.nix
new file mode 100644
index 0000000000000000000000000000000000000000..7528a39b5be4cd6a8ee75f1e20c5cbd130c4fb27
--- /dev/null
+++ b/pkgs/transformers-except.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, exceptions, lib, text, transformers }:
+mkDerivation {
+  pname = "transformers-except";
+  version = "0.1.2";
+  sha256 = "9925f82037b9aa9d382e98cff91a6ca12009093b7aaa1f583c91429b6ebcfd03";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base exceptions text transformers ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "http://github.com/tmcgilchrist/transformers-either/";
+  description = "An Except monad transformer with";
+  license = lib.licenses.bsd3;
+  broken = false;
+}