diff --git a/manifest.dhall b/manifest.dhall
index 6fc25a4d5b558a449829d1d412fc0388b6ca3baf..082be982f37de873d8af3212356ac2f4b40b28c6 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -38,21 +38,25 @@ let callCabal2nix
         , mapValue = HsPkg::{ source = HsSrc.FromGit { url, revision, subdir } }
         }
 
+let callCardanoLedger
+    : ∀(name : Text) →
+      ∀(subdir : Text) →
+        Attr HsPkg.Type
+    = λ(name : Text) →
+      λ(subdir : Text) →
+        callCabal2nix
+          name
+          "https://github.com/milloni/cardano-ledger"
+          (Some "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19")
+          (Some subdir)
+
 in  [ callHackage "PyF" "0.11.0.0"
     , callHackage "Unique" "0.4.7.9"
     , callHackage "algebraic-graphs" "0.7"
     , callHackage "base64-bytestring-type" "1.0.1"
     , callHackage "bech32" "1.1.2"
-    , callCabal2nix
-        "byron-spec-chain"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "2857b079bdab6e1545c60c614157ba8e7d19233e")
-        (Some "eras/byron/chain/executable-spec")
-    , callCabal2nix
-        "byron-spec-ledger"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "2857b079bdab6e1545c60c614157ba8e7d19233e")
-        (Some "eras/byron/ledger/executable-spec")
+    , callCardanoLedger "byron-spec-chain" "eras/byron/chain/executable-spec"
+    , callCardanoLedger "byron-spec-ledger" "eras/byron/ledger/executable-spec"
     , callHackage "canonical-json" "0.6.0.1"
     , callCabal2nix
         "cardano-binary"
@@ -79,41 +83,13 @@ in  [ callHackage "PyF" "0.11.0.0"
         "https://github.com/input-output-hk/cardano-base"
         (Some "46cd4c97cff9f1f0a0da976aa9e32bd2899c85ee")
         (Some "cardano-crypto-praos")
-    , callCabal2nix
-        "cardano-crypto-test"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "2857b079bdab6e1545c60c614157ba8e7d19233e")
-        (Some "eras/byron/crypto/test")
-    , callCabal2nix
-        "cardano-crypto-wrapper"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "2857b079bdab6e1545c60c614157ba8e7d19233e")
-        (Some "eras/byron/crypto")
-    , callCabal2nix
-        "cardano-data"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "bc859395040abf075f4ca44b4ce8c221d2c4bb66")
-        (Some "libs/cardano-data")
-    , callCabal2nix
-        "cardano-ledger-byron"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "2857b079bdab6e1545c60c614157ba8e7d19233e")
-        (Some "eras/byron/ledger/impl")
-    , callCabal2nix
-        "cardano-ledger-core"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "bc859395040abf075f4ca44b4ce8c221d2c4bb66")
-        (Some "libs/cardano-ledger-core")
-    , callCabal2nix
-        "cardano-ledger-shelley"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "bc859395040abf075f4ca44b4ce8c221d2c4bb66")
-        (Some "eras/shelley/impl")
-    , callCabal2nix
-        "cardano-ledger-shelley-ma"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19")
-        (Some "eras/shelley-ma/impl")
+    , 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-core" "libs/cardano-ledger-core"
+    , callCardanoLedger "cardano-ledger-shelley" "eras/shelley/impl"
+    , callCardanoLedger "cardano-ledger-shelley-ma" "eras/shelley-ma/impl"
     , callCabal2nix
         "cardano-slotting"
         "https://github.com/input-output-hk/cardano-base"
@@ -175,11 +151,7 @@ in  [ callHackage "PyF" "0.11.0.0"
         "https://github.com/milloni/moo"
         (Some "20e4c6ee880e7d62b18b995750063dd7349a3f8e")
         (None Text)
-    , callCabal2nix
-        "non-integral"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "bc859395040abf075f4ca44b4ce8c221d2c4bb66")
-        (Some "libs/non-integral")
+    , callCardanoLedger "non-integral" "libs/non-integral"
     , callCabal2nix
         "nothunks"
         "https://github.com/locallycompact/nothunks"
@@ -209,22 +181,10 @@ in  [ callHackage "PyF" "0.11.0.0"
     , callHackage "ral" "0.1"
     , callHackage "recursion-schemes" "5.2.2.2"
     , callHackage "ref-tf" "0.5.0.1"
-    , callCabal2nix
-        "set-algebra"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "bc859395040abf075f4ca44b4ce8c221d2c4bb66")
-        (Some "libs/set-algebra")
+    , callCardanoLedger "set-algebra" "libs/set-algebra"
     , callHackage "singletons-th" "3.1.1"
-    , callCabal2nix
-        "small-steps"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "2857b079bdab6e1545c60c614157ba8e7d19233e")
-        (Some "libs/small-steps")
-    , callCabal2nix
-        "small-steps-test"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "2857b079bdab6e1545c60c614157ba8e7d19233e")
-        (Some "libs/small-steps-test")
+    , callCardanoLedger "small-steps" "libs/small-steps"
+    , callCardanoLedger "small-steps-test" "libs/small-steps-test"
     , callHackage "streaming-bytestring" "0.2.4"
     , callCabal2nix
         "strict-containers"
@@ -237,11 +197,7 @@ in  [ callHackage "PyF" "0.11.0.0"
         "https://github.com/parsonsmatt/typerep-map"
         (Some "75b7cd5d45986be07420a6821d352ad2adc0b697")
         (None Text)
-    , callCabal2nix
-        "vector-map"
-        "https://github.com/milloni/cardano-ledger"
-        (Some "bc859395040abf075f4ca44b4ce8c221d2c4bb66")
-        (Some "libs/vector-map")
+    , callCardanoLedger "vector-map" "libs/vector-map"
     , callCabal2nix
         "word-array"
         "https://github.com/milloni/plutus"
diff --git a/pkgs/byron-spec-chain.nix b/pkgs/byron-spec-chain.nix
index b0ea2c33aaa6d44e22a65f43e0f6bb0c114be011..9967b935c1a31e90cc5ec95bb768b08a2c4eb272 100644
--- a/pkgs/byron-spec-chain.nix
+++ b/pkgs/byron-spec-chain.nix
@@ -22,8 +22,8 @@ mkDerivation {
   version = "0.1.0.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "0vzz5a3alzl4hh62krifc0qzc03pxpm42szhxq0p88qvjjy3cwkj";
-    rev = "2857b079bdab6e1545c60c614157ba8e7d19233e";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/eras/byron/chain/executable-spec/; echo source root reset to $sourceRoot";
diff --git a/pkgs/byron-spec-ledger.nix b/pkgs/byron-spec-ledger.nix
index 8c4cd25dadf995ca880026d49f4737fb3ec7f7b9..b1acac6343c14f4b8245a6f01348ad99d4f81fce 100644
--- a/pkgs/byron-spec-ledger.nix
+++ b/pkgs/byron-spec-ledger.nix
@@ -18,7 +18,6 @@
 , tasty
 , tasty-hedgehog
 , tasty-hunit
-, template-haskell
 , Unique
 }:
 mkDerivation {
@@ -26,8 +25,8 @@ mkDerivation {
   version = "0.1.0.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "0vzz5a3alzl4hh62krifc0qzc03pxpm42szhxq0p88qvjjy3cwkj";
-    rev = "2857b079bdab6e1545c60c614157ba8e7d19233e";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/eras/byron/ledger/executable-spec/; echo source root reset to $sourceRoot";
@@ -46,7 +45,6 @@ mkDerivation {
     nothunks
     small-steps
     small-steps-test
-    template-haskell
     Unique
   ];
   testHaskellDepends = [
diff --git a/pkgs/cardano-crypto-test.nix b/pkgs/cardano-crypto-test.nix
index f191a7572ddd44023a06b60a3d9200c213e8ce2e..ef66e84bc0c3f7dbf153e9f0d76de706657393ed 100644
--- a/pkgs/cardano-crypto-test.nix
+++ b/pkgs/cardano-crypto-test.nix
@@ -18,8 +18,8 @@ mkDerivation {
   version = "1.3.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "0vzz5a3alzl4hh62krifc0qzc03pxpm42szhxq0p88qvjjy3cwkj";
-    rev = "2857b079bdab6e1545c60c614157ba8e7d19233e";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/eras/byron/crypto/test/; echo source root reset to $sourceRoot";
diff --git a/pkgs/cardano-crypto-wrapper.nix b/pkgs/cardano-crypto-wrapper.nix
index 8cc0fc80180a7696aeda45835596d7cd04162f2a..30fbaea387a180024156775ce34d6b5a4ea26f5e 100644
--- a/pkgs/cardano-crypto-wrapper.nix
+++ b/pkgs/cardano-crypto-wrapper.nix
@@ -21,7 +21,6 @@
 , hedgehog
 , lib
 , memory
-, mtl
 , nothunks
 , text
 }:
@@ -30,8 +29,8 @@ mkDerivation {
   version = "1.3.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "0vzz5a3alzl4hh62krifc0qzc03pxpm42szhxq0p88qvjjy3cwkj";
-    rev = "2857b079bdab6e1545c60c614157ba8e7d19233e";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/eras/byron/crypto/; echo source root reset to $sourceRoot";
@@ -53,7 +52,6 @@ mkDerivation {
     formatting
     heapwords
     memory
-    mtl
     nothunks
     text
   ];
@@ -70,7 +68,6 @@ mkDerivation {
     formatting
     hedgehog
     memory
-    text
   ];
   doHaddock = false;
   jailbreak = true;
diff --git a/pkgs/cardano-data.nix b/pkgs/cardano-data.nix
index fc838297a571726f22e7c3de98e8d0f88370e376..71caad74031d68320c91bf531a7a3818dad0eddb 100644
--- a/pkgs/cardano-data.nix
+++ b/pkgs/cardano-data.nix
@@ -28,8 +28,8 @@ mkDerivation {
   version = "0.1.0.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "109piw0q5nlypsywkmkwng4ixalbfmzf379b4n931ghih54xzwja";
-    rev = "bc859395040abf075f4ca44b4ce8c221d2c4bb66";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/libs/cardano-data/; echo source root reset to $sourceRoot";
diff --git a/pkgs/cardano-ledger-byron.nix b/pkgs/cardano-ledger-byron.nix
index b769780a351a1e96215e0c63e5884c9b90f290ed..c418e33054db09a1faf650de33c6da7d2c36f544 100644
--- a/pkgs/cardano-ledger-byron.nix
+++ b/pkgs/cardano-ledger-byron.nix
@@ -21,7 +21,6 @@
 , containers
 , contra-tracer
 , cryptonite
-, deepseq
 , digest
 , directory
 , fetchgit
@@ -32,7 +31,6 @@
 , hedgehog
 , lib
 , microlens
-, mtl
 , nothunks
 , quiet
 , resourcet
@@ -52,8 +50,8 @@ mkDerivation {
   version = "0.1.0.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "0vzz5a3alzl4hh62krifc0qzc03pxpm42szhxq0p88qvjjy3cwkj";
-    rev = "2857b079bdab6e1545c60c614157ba8e7d19233e";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/eras/byron/ledger/impl/; echo source root reset to $sourceRoot";
@@ -75,13 +73,11 @@ mkDerivation {
     containers
     contra-tracer
     cryptonite
-    deepseq
     digest
     directory
     filepath
     formatting
     heapwords
-    mtl
     nothunks
     quiet
     resourcet
@@ -106,7 +102,6 @@ mkDerivation {
     cardano-crypto-wrapper
     cardano-prelude
     cardano-prelude-test
-    cborg
     containers
     directory
     filepath
diff --git a/pkgs/cardano-ledger-core.nix b/pkgs/cardano-ledger-core.nix
index ba3f05f4353844604624edb30e3f5ea9a2a4d8c6..2c547699438f0e1d6bbe9ccb35d8de69c8c74adb 100644
--- a/pkgs/cardano-ledger-core.nix
+++ b/pkgs/cardano-ledger-core.nix
@@ -44,8 +44,8 @@ mkDerivation {
   version = "0.1.0.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "109piw0q5nlypsywkmkwng4ixalbfmzf379b4n931ghih54xzwja";
-    rev = "bc859395040abf075f4ca44b4ce8c221d2c4bb66";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/libs/cardano-ledger-core/; echo source root reset to $sourceRoot";
diff --git a/pkgs/cardano-ledger-shelley.nix b/pkgs/cardano-ledger-shelley.nix
index 9e6f9c0d2cc678cfc0921d275d3b796580d0cdaa..4205138da329db07abbcc9790a47a7a53cb98e70 100644
--- a/pkgs/cardano-ledger-shelley.nix
+++ b/pkgs/cardano-ledger-shelley.nix
@@ -38,8 +38,8 @@ mkDerivation {
   version = "0.1.0.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "109piw0q5nlypsywkmkwng4ixalbfmzf379b4n931ghih54xzwja";
-    rev = "bc859395040abf075f4ca44b4ce8c221d2c4bb66";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/eras/shelley/impl/; echo source root reset to $sourceRoot";
diff --git a/pkgs/non-integral.nix b/pkgs/non-integral.nix
index 3c23db7f552977fc6ed4d5415fba07cdb636904a..b687ec0a83bfc115bc6e7d991c4d5c3507401b7b 100644
--- a/pkgs/non-integral.nix
+++ b/pkgs/non-integral.nix
@@ -4,8 +4,8 @@ mkDerivation {
   version = "0.1.0.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "109piw0q5nlypsywkmkwng4ixalbfmzf379b4n931ghih54xzwja";
-    rev = "bc859395040abf075f4ca44b4ce8c221d2c4bb66";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/libs/non-integral/; echo source root reset to $sourceRoot";
diff --git a/pkgs/set-algebra.nix b/pkgs/set-algebra.nix
index 04e347881556f4ffec479bf62a5b872f0767ae60..d2fede3672775c3c6697ad65d7e7d51286daadaf 100644
--- a/pkgs/set-algebra.nix
+++ b/pkgs/set-algebra.nix
@@ -14,8 +14,8 @@ mkDerivation {
   version = "0.1.0.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "109piw0q5nlypsywkmkwng4ixalbfmzf379b4n931ghih54xzwja";
-    rev = "bc859395040abf075f4ca44b4ce8c221d2c4bb66";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/libs/set-algebra/; echo source root reset to $sourceRoot";
diff --git a/pkgs/small-steps-test.nix b/pkgs/small-steps-test.nix
index f1f4e85f9dccedd11f3bdfbcf61d1a00899abc59..9bd891aa15eca8184088922f7c7d02ed0e084471 100644
--- a/pkgs/small-steps-test.nix
+++ b/pkgs/small-steps-test.nix
@@ -27,8 +27,8 @@ mkDerivation {
   version = "0.1.0.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "0vzz5a3alzl4hh62krifc0qzc03pxpm42szhxq0p88qvjjy3cwkj";
-    rev = "2857b079bdab6e1545c60c614157ba8e7d19233e";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/libs/small-steps-test/; echo source root reset to $sourceRoot";
diff --git a/pkgs/small-steps.nix b/pkgs/small-steps.nix
index 85d67c859e37312cfc1c20bd714fc4556e18267d..07ba41a9efca124e31b7eab894ec42c7dc09d3a4 100644
--- a/pkgs/small-steps.nix
+++ b/pkgs/small-steps.nix
@@ -18,8 +18,8 @@ mkDerivation {
   version = "0.1.0.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "0vzz5a3alzl4hh62krifc0qzc03pxpm42szhxq0p88qvjjy3cwkj";
-    rev = "2857b079bdab6e1545c60c614157ba8e7d19233e";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/libs/small-steps/; echo source root reset to $sourceRoot";
diff --git a/pkgs/vector-map.nix b/pkgs/vector-map.nix
index 268a7a112761b5fcc8a3b898f2ac27bca961ce7b..fae6dcc2003d1354d933d13aad4ff4b0a43cf986 100644
--- a/pkgs/vector-map.nix
+++ b/pkgs/vector-map.nix
@@ -21,8 +21,8 @@ mkDerivation {
   version = "0.1.0.0";
   src = fetchgit {
     url = "https://github.com/milloni/cardano-ledger";
-    sha256 = "109piw0q5nlypsywkmkwng4ixalbfmzf379b4n931ghih54xzwja";
-    rev = "bc859395040abf075f4ca44b4ce8c221d2c4bb66";
+    sha256 = "0qwq9ddsdq2kps5j1mpznxbh8lvq3qf54587kch1m0bya086bmxx";
+    rev = "e95d4aa2d7e39c856e8b0aaae3610ffb2391ac19";
     fetchSubmodules = true;
   };
   postUnpack = "sourceRoot+=/libs/vector-map/; echo source root reset to $sourceRoot";