diff --git a/flake.lock b/flake.lock
index 3cd0bbded9c62432f7fa82c84e2b80f2d0e80803..1d4bd2251c9616208088412cb998a7bad8411398 100644
--- a/flake.lock
+++ b/flake.lock
@@ -3,11 +3,11 @@
     "Cabal": {
       "flake": false,
       "locked": {
-        "lastModified": 1663468572,
-        "narHash": "sha256-mhl5d/3DTGI+tHnIJ4AEBXSCtbP+PTlxMBa2SMOY+sY=",
+        "lastModified": 1664636112,
+        "narHash": "sha256-AFNvWKvO/psPq5OPCFqvl/AejNmVC2l4OQkKLEyNT0A=",
         "ref": "master",
-        "rev": "182e2c15191cd96a477a7fda41f9f89192b665ff",
-        "revCount": 13167,
+        "rev": "a5106bed5a197e9f670a0949f803e714ad4ef403",
+        "revCount": 13196,
         "type": "git",
         "url": "https://gitlab.haskell.org/ghc/packages/Cabal"
       },
@@ -35,11 +35,11 @@
     "all-cabal-hashes": {
       "flake": false,
       "locked": {
-        "lastModified": 1663669089,
-        "narHash": "sha256-vlwG3n8Q+ROimoU60f6e0ehgHVhY6iNpYy8zxRj9usg=",
+        "lastModified": 1665080357,
+        "narHash": "sha256-J/abnrLrWzWaIA3v6Rp7yGFCnCVVS6vA5+6KPZb0VKs=",
         "owner": "commercialhaskell",
         "repo": "all-cabal-hashes",
-        "rev": "efe0ff8f8ced37a3d619e7849cf0217cfbbc3fad",
+        "rev": "9f72eda9849486e6b55762056e59dbee946cbcbf",
         "type": "github"
       },
       "original": {
@@ -52,11 +52,11 @@
     "all-cabal-hashes_2": {
       "flake": false,
       "locked": {
-        "lastModified": 1663590767,
-        "narHash": "sha256-1hDRgWXpj60PEeh5DH0km5CN/vXYmMZiNqLJnJbmfN0=",
+        "lastModified": 1664652215,
+        "narHash": "sha256-srogTegrD+241OSa1IVFnEzIRcdOi6rkQQ0z0v9S13E=",
         "owner": "commercialhaskell",
         "repo": "all-cabal-hashes",
-        "rev": "e456824564bb5457549a70dc03c7ae00b3dfaec3",
+        "rev": "21f7dfd6196d284ace4cfa5a6e1aa73072312e84",
         "type": "github"
       },
       "original": {
@@ -184,17 +184,17 @@
     "doctest": {
       "flake": false,
       "locked": {
-        "lastModified": 1652986762,
-        "narHash": "sha256-Ehlq1U6EUscYndVnH7IVe2MdjzHQTgqRQDEWR9wGVzk=",
-        "owner": "parsonsmatt",
+        "lastModified": 1664345633,
+        "narHash": "sha256-58Re5dTwbQHpj/IwNgMwazu65Gs4aPLY+XKuh0/8ScQ=",
+        "owner": "sol",
         "repo": "doctest",
-        "rev": "a5f696b80bb8220d284e34d90f0b94291b859e77",
+        "rev": "4eb97c213acf7abe965a3a1b67397199ed155f3c",
         "type": "github"
       },
       "original": {
-        "owner": "parsonsmatt",
+        "owner": "sol",
         "repo": "doctest",
-        "rev": "a5f696b80bb8220d284e34d90f0b94291b859e77",
+        "rev": "4eb97c213acf7abe965a3a1b67397199ed155f3c",
         "type": "github"
       }
     },
@@ -253,11 +253,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1661009076,
-        "narHash": "sha256-phAE40gctVygRq3G3B6LhvD7u2qdQT21xsz8DdRDYFo=",
+        "lastModified": 1664385320,
+        "narHash": "sha256-uSCHb9RUqHRjTpI8OzyaUuHckFnnxwZqlXEuo+yUpYQ=",
         "owner": "hercules-ci",
         "repo": "flake-parts",
-        "rev": "850d8a76026127ef02f040fb0dcfdb8b749dd9d9",
+        "rev": "45298bd207b26e1bcd030a0bb075aa2da29f8e30",
         "type": "github"
       },
       "original": {
@@ -274,11 +274,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1663071030,
-        "narHash": "sha256-vqdGU5iR2nKiSH6Z0bhNAwg/6szAicXaopv7lpMRNRg=",
+        "lastModified": 1664385320,
+        "narHash": "sha256-uSCHb9RUqHRjTpI8OzyaUuHckFnnxwZqlXEuo+yUpYQ=",
         "owner": "hercules-ci",
         "repo": "flake-parts",
-        "rev": "89cce5852d100df3d815c3c4a3fd39e55b3e1bfc",
+        "rev": "45298bd207b26e1bcd030a0bb075aa2da29f8e30",
         "type": "github"
       },
       "original": {
@@ -348,11 +348,11 @@
     "flat": {
       "flake": false,
       "locked": {
-        "lastModified": 1651405431,
-        "narHash": "sha256-vyU10XtlJGD83hG970EVmOiomdhB20pxztYhcSMP9OA=",
+        "lastModified": 1664966899,
+        "narHash": "sha256-j1ABQ4I9UlRz4PcJVpfVQMeRBB9UIkS/wljmmoDYG5w=",
         "owner": "Quid2",
         "repo": "flat",
-        "rev": "44dd79ab3d6547afd7674876f0307995fc40dfcf",
+        "rev": "dd323e72857806a2b03b27b579596586d0a4d583",
         "type": "github"
       },
       "original": {
@@ -361,13 +361,30 @@
         "type": "github"
       }
     },
+    "ghc-exactprint": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1664486261,
+        "narHash": "sha256-3SQPyJoQQTY7cG2S4TbpG9btPWS7U4F7AlGwAq5PXzk=",
+        "owner": "alanz",
+        "repo": "ghc-exactprint",
+        "rev": "8d3f0aa528e9a3fe5e0626cd733650641daaa2e9",
+        "type": "github"
+      },
+      "original": {
+        "owner": "alanz",
+        "ref": "ghc-9.4",
+        "repo": "ghc-exactprint",
+        "type": "github"
+      }
+    },
     "haskell-flake": {
       "locked": {
-        "lastModified": 1661726764,
-        "narHash": "sha256-YzzOoff6m3W4g4B0E8xd3omvOhEVuRu/Rdvnmy2H6Jc=",
+        "lastModified": 1664562023,
+        "narHash": "sha256-EYpGp8IlktZUF6k6StHZ8u8XaCY0JpTuG7u3FJWyPHM=",
         "owner": "srid",
         "repo": "haskell-flake",
-        "rev": "3c27b5ba2eafc52f4bed232a8ff74cf0a5a99375",
+        "rev": "c5843170f9581b33740b4c081fdf6e835720d85e",
         "type": "github"
       },
       "original": {
@@ -412,11 +429,11 @@
     "hlint": {
       "flake": false,
       "locked": {
-        "lastModified": 1663597420,
-        "narHash": "sha256-CUNiq0bwTEz8YmcmDgaU/z299cYxT9mNvKBHx14jpaU=",
+        "lastModified": 1663663215,
+        "narHash": "sha256-lrwi32UYEwttFe7H4JLaHCQOzb9o5eZD0/RhvMwQSQ0=",
         "owner": "ndmitchell",
         "repo": "hlint",
-        "rev": "08a25c6b7915e5f22aad7ee68da95d576225d55d",
+        "rev": "ca0226efb388671fc4bcd75e8993a8ba5b26b612",
         "type": "github"
       },
       "original": {
@@ -456,6 +473,7 @@
         "ema": "ema",
         "flake-parts": "flake-parts_2",
         "flake-utils": "flake-utils_2",
+        "ghc-exactprint": "ghc-exactprint",
         "haskell-src-meta": "haskell-src-meta",
         "hedgehog-golden": "hedgehog-golden",
         "hlint": "hlint",
@@ -472,11 +490,11 @@
         "unicode-data": "unicode-data"
       },
       "locked": {
-        "lastModified": 1663606203,
-        "narHash": "sha256-kpklnkrSiyJ8xPcCxieLU7U2q8WDjw1XpbhZpalLc5A=",
-        "ref": "refs/heads/master",
-        "rev": "e1598f0fe47496101c82f32c5f3df8d9f0f0b730",
-        "revCount": 110,
+        "lastModified": 1664656399,
+        "narHash": "sha256-XW7bxVaZcB3vUVatqlXPLDlxJ4iL2FdmcPIB40idRRc=",
+        "ref": "master",
+        "rev": "30191d3a4b44b0aa2db584d3836606bc6d3f695c",
+        "revCount": 116,
         "type": "git",
         "url": "https://gitlab.homotopic.tech/horizon/horizon-platform"
       },
@@ -512,7 +530,7 @@
       "locked": {
         "lastModified": 1655192403,
         "narHash": "sha256-XyKDvRGDh8VXA6zN8DUTnDaTMrk0MxMKg70MaAX1A2Y=",
-        "ref": "refs/heads/master",
+        "ref": "master",
         "rev": "a7ae54afdc4c05a5aabf202d5a76d02705eb6147",
         "revCount": 28,
         "type": "git",
@@ -574,11 +592,11 @@
     },
     "nixpkgs_2": {
       "locked": {
-        "lastModified": 1663551060,
-        "narHash": "sha256-e2SR4cVx9p7aW/XnVsGsWZBplApA9ZJUjc0fejJhnYo=",
+        "lastModified": 1664556388,
+        "narHash": "sha256-04xEtpc0AqLhgDtJ/kT+aZGPrXOI+1a3obf6iWrJQXs=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "8a5b9ee7b7a2b38267c9481f5c629c015108ab0d",
+        "rev": "511213e0ece88be30a4bd73488f7d1cd85879654",
         "type": "github"
       },
       "original": {
@@ -606,11 +624,11 @@
     },
     "nixpkgs_4": {
       "locked": {
-        "lastModified": 1662019588,
-        "narHash": "sha256-oPEjHKGGVbBXqwwL+UjsveJzghWiWV0n9ogo1X6l4cw=",
+        "lastModified": 1664989420,
+        "narHash": "sha256-Q8IxomUjjmewsoJgO3htkXLfCckQ7HkDJ/ZhdYVf/fA=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "2da64a81275b68fdad38af669afeda43d401e94b",
+        "rev": "37bd39839acf99c5b738319f42478296f827f274",
         "type": "github"
       },
       "original": {
@@ -673,11 +691,11 @@
     "quickcheck-dynamic": {
       "flake": false,
       "locked": {
-        "lastModified": 1662454862,
-        "narHash": "sha256-sMAO+Vkocf/ejwg2sx58rXlmoE6tTPQV/ECVVOnWPHo=",
+        "lastModified": 1664439350,
+        "narHash": "sha256-D58nHr/UmspU1LWxwvk9/NyUKzdlCSk1UYrHfWYcPqU=",
         "owner": "input-output-hk",
         "repo": "quickcheck-dynamic",
-        "rev": "81310df2de73094d5daff1b675a4318cff5fc8b5",
+        "rev": "d017f6a534e654312e6249c92a408fe354922f5f",
         "type": "github"
       },
       "original": {
@@ -708,11 +726,11 @@
     "servant": {
       "flake": false,
       "locked": {
-        "lastModified": 1662636711,
-        "narHash": "sha256-y6fySO8NqtEad+W+F48QJgRR0JYfqXwo/+MCxcrpJpg=",
+        "lastModified": 1664361303,
+        "narHash": "sha256-sDZsKGZV3I9l7sx2lHGU/bGmtnKbTHqHsXSkS0id2zg=",
         "owner": "TeofilC",
         "repo": "servant",
-        "rev": "a53d69929cf6fe531bb25aec65e7ab6405278459",
+        "rev": "76fc90a51f915230bbe1e0d1dbe9727fcdc7a0fc",
         "type": "github"
       },
       "original": {
@@ -741,11 +759,11 @@
     "tasty": {
       "flake": false,
       "locked": {
-        "lastModified": 1660335396,
-        "narHash": "sha256-kZjFyOWW2WLs4+MerJi5xgpBorO8lkfEOeNS1bJhygs=",
+        "lastModified": 1663784811,
+        "narHash": "sha256-YbPOBdGyUkyAF1M1ngRVtxWyEjmG2/Xbde4VSG/if1U=",
         "owner": "UnkindPartition",
         "repo": "tasty",
-        "rev": "df7ccab50d361c7d1a3c00960faac883d98c2530",
+        "rev": "207d3453a64b414593512c1e968171d64a8dbe61",
         "type": "github"
       },
       "original": {
@@ -773,11 +791,11 @@
     "unicode-data": {
       "flake": false,
       "locked": {
-        "lastModified": 1663575864,
-        "narHash": "sha256-HWxlqziq3j2ev9wpON6NDUcCn9cjH72S/ddxSkvGLDY=",
+        "lastModified": 1664354489,
+        "narHash": "sha256-fQlOCE0iUUv+SLRCDExzGk4GiDIHeOEsJAW1RRbTMiE=",
         "owner": "composewell",
         "repo": "unicode-data",
-        "rev": "e924329f0e5e853426ec7453da23b11dceb53136",
+        "rev": "bf8bb533650119b3ce196aa95b009c6f4ebc1f04",
         "type": "github"
       },
       "original": {