diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4573eead98b91c54fdec1e8b0b72ab2847a96f92..6eda35e9bb0552ef8a7d5a4fbe96091344ecfabf 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,12 +14,6 @@ aarch64-darwin:devour:
   script:
   - nix build github:srid/devour-flake#packages.aarch64-darwin.default -L --no-link --print-out-paths --override-input flake . --keep-going
 
-aarch64-linux:devour:
-  stage: devour
-  script:
-  - nix build github:srid/devour-flake#packages.aarch64-linux.default -L --no-link --print-out-paths --override-input flake . --keep-going
-
-
 x86_64-linux:generate:
   stage: generate
   needs: ["x86_64-linux:devour"]
@@ -62,27 +56,6 @@ aarch64-darwin:packages:
     strategy: depend
 
 
-aarch64-linux:generate:
-  stage: generate
-  needs: ["aarch64-linux:devour"]
-  script:
-  - nix run "git+https://gitlab.horizon-haskell.net/haskell/flake-to-gitlab-ci?ref=refs/tags/0.2.5.0" -- aarch64-linux > flake-ci.yml
-  when: on_failure
-  artifacts:
-    paths:
-      - flake-ci.yml
-
-aarch64-linux:packages:
-  stage: packages
-  needs: ["aarch64-linux:devour", "aarch64-linux:generate"]
-  when: on_failure
-  trigger:
-    include:
-      - artifact: flake-ci.yml
-        job: aarch64-linux:generate
-    strategy: depend
-
-
 x86_64-linux:cachix:
   stage: cache
   rules:
@@ -96,10 +69,3 @@ aarch64-darwin:cachix:
     - if: $CI_COMMIT_REF_PROTECTED == "true"
   script:
   - nix-shell -p cachix --command "nix build github:srid/devour-flake#packages.aarch64-darwin.default -L --no-link --print-out-paths --override-input flake . | xargs cat | cachix push horizon"
-
-aarch64-linux:cachix:
-  stage: cache
-  rules:
-    - if: $CI_COMMIT_REF_PROTECTED == "true"
-  script:
-  - nix-shell -p cachix --command "nix build github:srid/devour-flake#packages.aarch64-linux.default -L --no-link --print-out-paths --override-input flake . | xargs cat | cachix push horizon"
diff --git a/README.md b/README.md
index de7a087dbc13d5bb28ee3fc459a93f41e4a2ebf1..e07c3df82efeb4bcb7fbc1cb81dd1111931c11ee 100644
--- a/README.md
+++ b/README.md
@@ -54,3 +54,4 @@ nix develop develop/
 ```
 
 See the in-shell help for usage.
+
diff --git a/configuration.nix b/configuration.nix
index 839fe8c3d1e5e482bbe37a08921e81476be0e394..7e80982027efecbcd45adf3dc51205fcc1167962 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -4,11 +4,30 @@ with pkgs.haskell.lib;
 
 final: prev: {
 
+  JuicyPixels = null;
+
   digest = addPkgconfigDepend prev.digest pkgs.zlib;
 
+  extensible-effects = null;
+
+  monoidal-containers = null;
+
   persistent-qq = null;
 
-/*
+  polysemy = null;
+
+  polysemy-plugin = null;
+
+  protolude = null;
+
+  recursion-schemes = null;
+
+  sdl2 = addSetupDepends
+    (overrideCabal prev.sdl2
+      { __onlyPropagateKnownPkgConfigModules = true; }
+    )
+    [ pkgs.pkg-config pkgs.SDL2 ];
+
   sdl2-gfx = addSetupDepends
     (overrideCabal prev.sdl2-gfx
       { __onlyPropagateKnownPkgConfigModules = true; }
@@ -22,13 +41,15 @@ final: prev: {
       )
       [ pkgs.pkg-config pkgs.SDL2 pkgs.libtiff pkgs.libwebp ];
 
-/*
   sdl2-mixer =
     addSetupDepends
       (overrideCabal prev.sdl2-mixer
         { __onlyPropagateKnownPkgConfigModules = true; }
       )
-      [ pkgs.pkg-config pkgs.SDL2 pkgs.libsndfile pkgs.libpulseaudio pkgs.alsa-lib pkgs.jack2 pkgs.glib pkgs.pcre2 ];
+      (if pkgs.stdenv.isLinux then
+        [ pkgs.pkg-config pkgs.SDL2 pkgs.libsndfile pkgs.libpulseaudio pkgs.alsa-lib pkgs.jack2 pkgs.glib pkgs.pcre2 ]
+      else
+        [ pkgs.pkg-config pkgs.SDL2 pkgs.libsndfile pkgs.glib pkgs.pcre2 pkgs.jack2 ]);
 
   sdl2-ttf =
     addSetupDepends
@@ -36,17 +57,6 @@ final: prev: {
         { __onlyPropagateKnownPkgConfigModules = true; }
       )
       [ pkgs.pkg-config pkgs.SDL2 pkgs.SDL2_ttf pkgs.harfbuzz pkgs.freetype pkgs.glib pkgs.pcre2 ];
-*/
-
-  sdl2 = null;
-
-  sdl2-gfx = null;
-
-  sdl2-image = null;
-
-  sdl2-mixer = null;
-
-  sdl2-ttf = null;
 
   zlib = prev.callPackage ./pkgs/zlib.nix { inherit (pkgs) zlib; };
 }
diff --git a/configuration/patches.nix b/configuration/patches.nix
new file mode 100644
index 0000000000000000000000000000000000000000..2a948a81147099304621399d610eb25d47515d5b
--- /dev/null
+++ b/configuration/patches.nix
@@ -0,0 +1,16 @@
+{ haskellLib, ... }:
+
+with haskellLib;
+
+final: prev: {
+
+  ghc-tcplugins-extra = overrideCabal
+    (_:
+      {
+        patches = [
+          ./patches/ghc-tcplugins-extra/01.patch
+        ];
+      })
+    prev.ghc-tcplugins-extra;
+
+}
\ No newline at end of file
diff --git a/configuration/patches/ghc-tcplugins-extra/01.patch b/configuration/patches/ghc-tcplugins-extra/01.patch
new file mode 100644
index 0000000000000000000000000000000000000000..5923e2892950ee181b25c4b7afc26d1370383ff1
--- /dev/null
+++ b/configuration/patches/ghc-tcplugins-extra/01.patch
@@ -0,0 +1,31 @@
+diff --git a/ghc-tcplugins-extra.cabal b/ghc-tcplugins-extra.cabal
+index 7605349..81e008b 100644
+--- a/ghc-tcplugins-extra.cabal
++++ b/ghc-tcplugins-extra.cabal
+@@ -47,7 +47,7 @@ library
+   ghc-options: -Wall
+   build-depends:
+       base >=4.8 && <5
+-    , ghc >=7.10 && <9.10
++    , ghc >=7.10 
+   default-language: Haskell2010
+   if impl(ghc >= 8.0.0)
+     ghc-options: -Wcompat -Wincomplete-uni-patterns -Widentities -Wredundant-constraints
+@@ -55,7 +55,7 @@ library
+     ghc-options: -fhide-source-paths
+   if flag(deverror)
+     ghc-options: -Werror
+-  if impl(ghc >= 9.8) && impl(ghc < 9.10)
++  if impl(ghc >= 9.8) 
+     other-modules:
+         GhcApi.Constraint
+         GhcApi.Predicate
+@@ -67,7 +67,7 @@ library
+         src-ghc-tree-9.4
+         src-ghc-9.8
+     build-depends:
+-        ghc >=9.8 && <9.10
++        ghc >=9.8
+   if impl(ghc >= 9.4) && impl(ghc < 9.8)
+     other-modules:
+         GhcApi.Constraint
diff --git a/flake.lock b/flake.lock
index 83498d28a32e12701e96c6c03dd70aa408cc8f6a..55fd51db2a2ca08c7bb8467043e3322aac1e5139 100644
--- a/flake.lock
+++ b/flake.lock
@@ -18,41 +18,47 @@
         "type": "github"
       }
     },
-    "flake-parts_2": {
-      "inputs": {
-        "nixpkgs-lib": "nixpkgs-lib_2"
-      },
+    "flake-utils": {
       "locked": {
-        "lastModified": 1706830856,
-        "narHash": "sha256-a0NYyp+h9hlb7ddVz4LUn1vT/PLwqfrWYcHMvFB1xYg=",
-        "owner": "hercules-ci",
-        "repo": "flake-parts",
-        "rev": "b253292d9c0a5ead9bc98c4e9a26c6312e27d69f",
+        "lastModified": 1644229661,
+        "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
         "type": "github"
       },
       "original": {
-        "owner": "hercules-ci",
-        "repo": "flake-parts",
+        "owner": "numtide",
+        "repo": "flake-utils",
         "type": "github"
       }
     },
     "horizon-build-packages": {
       "inputs": {
-        "flake-parts": "flake-parts",
+        "flake-parts": [
+          "horizon-core",
+          "horizon-build-packages",
+          "horizon-ghc",
+          "flake-parts"
+        ],
         "horizon-ghc": "horizon-ghc",
-        "nixpkgs": "nixpkgs_2"
+        "nixpkgs": [
+          "horizon-core",
+          "horizon-build-packages",
+          "horizon-ghc",
+          "nixpkgs"
+        ]
       },
       "locked": {
-        "lastModified": 1708982306,
-        "narHash": "sha256-/Nh0SF02PEaQRRIa5vTYvU6yYXqB+tmJ7C9YUNNO0qw=",
-        "ref": "lts/ghc-9.8.x",
-        "rev": "7c7603cd4750691e7cd76bf88fa0f07e42a3bcb8",
-        "revCount": 63,
+        "lastModified": 1715416120,
+        "narHash": "sha256-N57/UtzbejsC2yIWS7s/mlujMQaBP+gnOoSIzRJFsWA=",
+        "ref": "refs/heads/master",
+        "rev": "2f91494fb8b350f97a44656bfd0edd0589f5a229",
+        "revCount": 77,
         "type": "git",
         "url": "https://gitlab.horizon-haskell.net/package-sets/horizon-build-packages"
       },
       "original": {
-        "ref": "lts/ghc-9.8.x",
         "type": "git",
         "url": "https://gitlab.horizon-haskell.net/package-sets/horizon-build-packages"
       }
@@ -73,36 +79,47 @@
         ]
       },
       "locked": {
-        "lastModified": 1708988401,
-        "narHash": "sha256-K8S9191VAzpgLEU+O1bg+vfEF8M0ZJnZmhfgTX+JCdY=",
-        "ref": "lts/ghc-9.8.x",
-        "rev": "0a3a6987d0631cf2359c15804fdf5744f9a8772c",
-        "revCount": 1318,
+        "lastModified": 1715425937,
+        "narHash": "sha256-2XjeWr5N5KarWGLGq+vKsov7CNnyM+YTKnZO7FFVLbw=",
+        "ref": "refs/heads/master",
+        "rev": "15009f928dc1f503099991a7bd3a9169cadea618",
+        "revCount": 1331,
         "type": "git",
         "url": "https://gitlab.horizon-haskell.net/package-sets/horizon-core"
       },
       "original": {
-        "ref": "lts/ghc-9.8.x",
         "type": "git",
         "url": "https://gitlab.horizon-haskell.net/package-sets/horizon-core"
       }
     },
     "horizon-ghc": {
       "inputs": {
-        "flake-parts": "flake-parts_2",
-        "nixpkgs": "nixpkgs"
+        "flake-parts": [
+          "horizon-core",
+          "horizon-build-packages",
+          "horizon-ghc",
+          "nixica",
+          "flake-parts"
+        ],
+        "nixica": "nixica",
+        "nixpkgs": [
+          "horizon-core",
+          "horizon-build-packages",
+          "horizon-ghc",
+          "nixica",
+          "nixpkgs"
+        ]
       },
       "locked": {
-        "lastModified": 1708948945,
-        "narHash": "sha256-p3GpqJEA733xi9EhzaB20SKWihRug6sJvTxL+xt2WvQ=",
-        "ref": "lts/ghc-9.8.x",
-        "rev": "5ce4e64ca132619bd1c037556b6a6b2c15946d36",
-        "revCount": 94,
+        "lastModified": 1715415538,
+        "narHash": "sha256-oVyCLQ1IwWQ2TMnlzOOl6X6YteGyx8MW6lPw9+xXHpw=",
+        "ref": "refs/heads/master",
+        "rev": "d7b8b7acbbb7b3486cabba631b190b5770bcd6e3",
+        "revCount": 93,
         "type": "git",
         "url": "https://gitlab.horizon-haskell.net/ghc/horizon-ghc"
       },
       "original": {
-        "ref": "lts/ghc-9.8.x",
         "type": "git",
         "url": "https://gitlab.horizon-haskell.net/ghc/horizon-ghc"
       }
@@ -137,41 +154,68 @@
         "url": "https://gitlab.horizon-haskell.net/nix/horizon-hoogle"
       }
     },
-    "nixpkgs": {
+    "lint-utils": {
+      "inputs": {
+        "flake-utils": "flake-utils",
+        "nixpkgs": [
+          "horizon-core",
+          "horizon-build-packages",
+          "horizon-ghc",
+          "nixica",
+          "nixpkgs"
+        ]
+      },
       "locked": {
-        "lastModified": 1707956935,
-        "narHash": "sha256-ZL2TrjVsiFNKOYwYQozpbvQSwvtV/3Me7Zwhmdsfyu4=",
-        "owner": "nixos",
-        "repo": "nixpkgs",
-        "rev": "a4d4fe8c5002202493e87ec8dbc91335ff55552c",
+        "lastModified": 1708583908,
+        "narHash": "sha256-zuNxxkt/wS8Z5TbGarf4QZVDt1R65dDkEw/s2T/tCW4=",
+        "owner": "homotopic",
+        "repo": "lint-utils",
+        "rev": "2d77caa3644065ee0f462cc5ea654280c59127b2",
         "type": "github"
       },
       "original": {
-        "owner": "nixos",
-        "ref": "nixos-unstable",
-        "repo": "nixpkgs",
+        "owner": "homotopic",
+        "repo": "lint-utils",
         "type": "github"
       }
     },
-    "nixpkgs-lib": {
+    "nixica": {
+      "inputs": {
+        "flake-parts": "flake-parts",
+        "lint-utils": "lint-utils",
+        "nixpkgs": "nixpkgs"
+      },
       "locked": {
-        "dir": "lib",
-        "lastModified": 1706550542,
-        "narHash": "sha256-UcsnCG6wx++23yeER4Hg18CXWbgNpqNXcHIo5/1Y+hc=",
+        "lastModified": 1709796500,
+        "narHash": "sha256-No1tx+wo5DjOCPAF6ayhQlRMB3jD6kKdp/9bh/dSN9c=",
+        "ref": "refs/heads/master",
+        "rev": "688f425ae7fdc0bb76b907863d27c5efaa19ce8a",
+        "revCount": 17,
+        "type": "git",
+        "url": "https://gitlab.horizon-haskell.net/nix/nixica-library"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://gitlab.horizon-haskell.net/nix/nixica-library"
+      }
+    },
+    "nixpkgs": {
+      "locked": {
+        "lastModified": 1708992772,
+        "narHash": "sha256-TWy2VNWAzNOPbZ1InbJtm7GYOyIG/BWKPCwmNDCnDLs=",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "97b17f32362e475016f942bbdfda4a4a72a8a652",
+        "rev": "7e5ed63169046d8250ded004cfbd5f8b13b264e7",
         "type": "github"
       },
       "original": {
-        "dir": "lib",
         "owner": "NixOS",
-        "ref": "nixos-unstable",
+        "ref": "haskell-updates",
         "repo": "nixpkgs",
         "type": "github"
       }
     },
-    "nixpkgs-lib_2": {
+    "nixpkgs-lib": {
       "locked": {
         "dir": "lib",
         "lastModified": 1706550542,
@@ -191,16 +235,16 @@
     },
     "nixpkgs_2": {
       "locked": {
-        "lastModified": 1707956935,
-        "narHash": "sha256-ZL2TrjVsiFNKOYwYQozpbvQSwvtV/3Me7Zwhmdsfyu4=",
-        "owner": "nixos",
+        "lastModified": 1715472870,
+        "narHash": "sha256-HkmTxdL9TrRBvFoZ3ShxhsmxEYVm+kQpc4tCvkn5QwY=",
+        "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "a4d4fe8c5002202493e87ec8dbc91335ff55552c",
+        "rev": "23ad7292c89ffeec621959fee9d121056bfa8acd",
         "type": "github"
       },
       "original": {
-        "owner": "nixos",
-        "ref": "nixos-unstable",
+        "owner": "NixOS",
+        "ref": "haskell-updates",
         "repo": "nixpkgs",
         "type": "github"
       }
@@ -213,10 +257,7 @@
         ],
         "horizon-core": "horizon-core",
         "horizon-hoogle": "horizon-hoogle_2",
-        "nixpkgs": [
-          "horizon-core",
-          "nixpkgs"
-        ]
+        "nixpkgs": "nixpkgs_2"
       }
     }
   },
diff --git a/flake.nix b/flake.nix
index 10ee4929c94f0f48e05e5b6ab1beabbf2f8dcd41..64182ecdeeaadf1c66394928ce4f4011766b8d13 100644
--- a/flake.nix
+++ b/flake.nix
@@ -8,9 +8,9 @@
 
   inputs = {
     flake-parts.follows = "horizon-core/flake-parts";
-    horizon-core.url = "git+https://gitlab.horizon-haskell.net/package-sets/horizon-core?ref=lts/ghc-9.8.x";
+    horizon-core.url = "git+https://gitlab.horizon-haskell.net/package-sets/horizon-core";
     horizon-hoogle.url = "git+https://gitlab.horizon-haskell.net/nix/horizon-hoogle";
-    nixpkgs.follows = "horizon-core/nixpkgs";
+    nixpkgs.url = "github:NixOS/nixpkgs/haskell-updates";
   };
 
   outputs =
@@ -30,14 +30,16 @@
           "x86_64-linux"
         ];
         imports = [
-          inputs.horizon-hoogle.flakeModule
+#          inputs.horizon-hoogle.flakeModule
         ];
         perSystem = { pkgs, system, ... }:
           with pkgs.lib;
           let
+            haskellLib = pkgs.haskell.lib.compose;
             overrides = composeManyExtensions [
               (import ./overlay.nix { inherit pkgs; })
               (import ./configuration.nix { inherit pkgs; })
+              (import ./configuration/patches.nix { inherit haskellLib; })
             ];
 
             legacyPackages = horizon-core.legacyPackages.${system}.extend overrides;
diff --git a/horizon.dhall b/horizon.dhall
index ab28d1d6814ecf97103d2b321ec43985f05dfb53..2ed0dfbf4a57b88460b3a7d73309cf9a5c6de55b 100644
--- a/horizon.dhall
+++ b/horizon.dhall
@@ -7,6 +7,7 @@ let packages =
       , Only = H.callHackage "Only" "0.1"
       , RSA = H.callHackage "RSA" "2.4.1"
       , amqp = H.callHackage "amqp" "0.22.2"
+      , atomic-primops = H.callHackage "atomic-primops" "0.8.7"
       , attoparsec-iso8601 = H.callHackage "attoparsec-iso8601" "1.1.0.1"
       , authenticate-oauth = H.callHackage "authenticate-oauth" "1.7"
       , base64 = H.callHackage "base64" "1.0"
@@ -39,7 +40,6 @@ let packages =
       , dependent-sum = H.callHackage "dependent-sum" "0.7.2.0"
       , dependent-sum-template =
           H.callHackage "dependent-sum-template" "0.2.0.1"
-      , deriving-compat = H.callHackage "deriving-compat" "0.6.5"
       , digest = H.callHackage "digest" "0.0.2.1"
       , directory-tree = H.callHackage "directory-tree" "0.12.1"
       , doctest = H.callHackage "doctest" "0.22.2"
diff --git a/horizon.lock b/horizon.lock
index c7d795d6913aa224107f514c780c2c2170130586..8a20fa21bec0e1a801f8343328a8ad9687711075 100644
--- a/horizon.lock
+++ b/horizon.lock
@@ -18,6 +18,10 @@
   , mapValue =
       "06e35d607f638a6e95d999cb87549ed52a029ded3663b95c1fd2dcc7c751a0ba"
   }
+, { mapKey = "atomic-primops"
+  , mapValue =
+      "9c86a5aa39d3ed485086763488087b81c7c3345600771c9cb160a929577c76a9"
+  }
 , { mapKey = "attoparsec-iso8601"
   , mapValue =
       "14712b38e8608cc8643a9114a7e436afc1db976df1e4e8de6c5d6d4a489ef58b"
@@ -126,10 +130,6 @@
   , mapValue =
       "ae7aab53a19ac2ab9d29cc07723304de89f940392084354446d2717566092db9"
   }
-, { mapKey = "deriving-compat"
-  , mapValue =
-      "37ababbac7b4467bef58102592594bce7fcd1765eaec2455106e21a5696a1af7"
-  }
 , { mapKey = "digest"
   , mapValue =
       "9fd6c6e1dd43b77400f62ff091a9409a65584d0974329e8cfdcb5ea09b0bb577"
diff --git a/overlay.nix b/overlay.nix
index b9bf8cd318ee7adc37dfb37166be686d2390da3a..b9852aeb16b5e09939a44d412bf197b85155d96c 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -12,6 +12,8 @@ final: prev: with pkgs.haskell.lib; {
 
   amqp = f final prev "amqp" (final.callPackage (./pkgs/amqp.nix) { });
 
+  atomic-primops = f final prev "atomic-primops" (final.callPackage (./pkgs/atomic-primops.nix) { });
+
   attoparsec-iso8601 = f final prev "attoparsec-iso8601" (final.callPackage (./pkgs/attoparsec-iso8601.nix) { });
 
   authenticate-oauth = f final prev "authenticate-oauth" (final.callPackage (./pkgs/authenticate-oauth.nix) { });
@@ -66,8 +68,6 @@ final: prev: with pkgs.haskell.lib; {
 
   dependent-sum-template = f final prev "dependent-sum-template" (final.callPackage (./pkgs/dependent-sum-template.nix) { });
 
-  deriving-compat = f final prev "deriving-compat" (final.callPackage (./pkgs/deriving-compat.nix) { });
-
   digest = f final prev "digest" (final.callPackage (./pkgs/digest.nix) { });
 
   directory-tree = f final prev "directory-tree" (final.callPackage (./pkgs/directory-tree.nix) { });
diff --git a/pkgs/JuicyPixels.nix b/pkgs/JuicyPixels.nix
index b9bf1298399c9b83c774d8e18c9a34a2a0e67c24..949e1162a872698962abb71b4dee9e4fdf0f60d1 100644
--- a/pkgs/JuicyPixels.nix
+++ b/pkgs/JuicyPixels.nix
@@ -5,8 +5,8 @@ mkDerivation {
   pname = "JuicyPixels";
   version = "3.3.8";
   sha256 = "d3a0f6ca3515a1b3d526cbf79f2e0b0aab57f208ab216f9c26437bbcd86fb63e";
-  revision = "1";
-  editedCabalFile = "1gbmls58qdlip8nsysy1qsnf7wrw8cgss7i7vmbxxnf9ni0iawn9";
+  revision = "2";
+  editedCabalFile = "0xc9qlfgrlf6v4h5m9rcwy58wsa4ksm8fpnx3fyh5ld9x3nhgfpd";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/atomic-primops.nix b/pkgs/atomic-primops.nix
new file mode 100644
index 0000000000000000000000000000000000000000..f186e8640432628f1394210a75da86655c2e6b63
--- /dev/null
+++ b/pkgs/atomic-primops.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, base, ghc-prim, lib, primitive }:
+mkDerivation {
+  pname = "atomic-primops";
+  version = "0.8.7";
+  sha256 = "5ba6d923f8b3d0c107d80d89703bc0384a09564e6b52eaf117152c0e0dd19cf7";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [ base ghc-prim primitive ];
+  enableLibraryProfiling = true;
+  enableExecutableProfiling = true;
+  doHaddock = true;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  homepage = "https://github.com/rrnewton/haskell-lockfree/wiki";
+  description = "A safe approach to CAS and other atomic ops in Haskell";
+  license = lib.licenses.bsd3;
+  broken = false;
+}
\ No newline at end of file
diff --git a/pkgs/criterion.nix b/pkgs/criterion.nix
index 8668e4831c7a86937b42d121af16de2f7d000fc6..cda0b121ec675787bab450379ccdd47181388290 100644
--- a/pkgs/criterion.nix
+++ b/pkgs/criterion.nix
@@ -11,6 +11,8 @@ mkDerivation {
   pname = "criterion";
   version = "1.6.3.0";
   sha256 = "c31711e2596adf0c46b2451a151357d28633b1bc1a430070758ef3d49ede9ba2";
+  revision = "1";
+  editedCabalFile = "1576v10909fxizrjzszfj6h8r0j3vlsxpnm5ldarihv8xmnikyb2";
   isLibrary = true;
   isExecutable = true;
   enableSeparateDataOutput = true;
diff --git a/pkgs/cryptohash-md5.nix b/pkgs/cryptohash-md5.nix
index 0adadd0d675a756c296d7180f4ed696f1ea48fea..9b1d2d9a474e1110bb7ce08ab11c8e7bee27c50c 100644
--- a/pkgs/cryptohash-md5.nix
+++ b/pkgs/cryptohash-md5.nix
@@ -5,8 +5,8 @@ mkDerivation {
   pname = "cryptohash-md5";
   version = "0.11.101.0";
   sha256 = "3b08db0ae39df2b44e83053ad30d7546a4c6200a852c22a240a7e03ae1080f05";
-  revision = "3";
-  editedCabalFile = "1v7gv0xa9yfkxq3g9j79ppzn6hjf467aajzb4x5882yflibfi9ki";
+  revision = "4";
+  editedCabalFile = "1m077jax8jz68i9c0nl27465qmcww97wziwmy8apxcfkgfifzlx6";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/dependent-sum-template.nix b/pkgs/dependent-sum-template.nix
index b621d5bd547b5ec51d9982d41784c04f6a962f6c..880a68309ffd8b023f7586dff8f1d4168e4e56a4 100644
--- a/pkgs/dependent-sum-template.nix
+++ b/pkgs/dependent-sum-template.nix
@@ -5,6 +5,8 @@ mkDerivation {
   pname = "dependent-sum-template";
   version = "0.2.0.1";
   sha256 = "0efbe33f3aef8e341193cf5cfa12592ed622d174bb4f8cd91bc75e989c3c6a65";
+  revision = "1";
+  editedCabalFile = "16z72slamnghhqik23qvkyp2v5hv5w9wqvi0n8h0640sp1s80r4q";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/deriving-compat.nix b/pkgs/deriving-compat.nix
index 73a36888e97358a2670a1bd4e0229c36c1cd267b..18ed3f9288282f9b54ee86308870666174075a9c 100644
--- a/pkgs/deriving-compat.nix
+++ b/pkgs/deriving-compat.nix
@@ -7,8 +7,8 @@ mkDerivation {
   pname = "deriving-compat";
   version = "0.6.5";
   sha256 = "47412ecf53461a43d4cc2b705cbc9bb4a958bff7b9008a2582c26b73df5532f3";
-  revision = "1";
-  editedCabalFile = "093kv76593jr1af12c5idqr97mbkf9vs93zbhrw7kcqwiydpsi91";
+  revision = "2";
+  editedCabalFile = "1mlaz2bif3x1ifhysvknc67a0iy8q46j5s9bkp80510xcn4wgdhk";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/io-streams-haproxy.nix b/pkgs/io-streams-haproxy.nix
index ab7ae7fd807999436a8edfdd4a7a499ecfdd5065..2c19a721922c56803a4cd36e637ec90280ff53fa 100644
--- a/pkgs/io-streams-haproxy.nix
+++ b/pkgs/io-streams-haproxy.nix
@@ -5,8 +5,8 @@ mkDerivation {
   pname = "io-streams-haproxy";
   version = "1.0.1.0";
   sha256 = "b74eca9290fe838a0e3be857a38b62cf6fb7478acee400eac19e47471a2c96b5";
-  revision = "8";
-  editedCabalFile = "03gzlz7hg2jvnx2355r65201680lcm59ln7azzb118abirl460s6";
+  revision = "9";
+  editedCabalFile = "1waziyv0f1iap83abgn4ax1zwbdbhfhzh72smzm1azqzl6ggcdq2";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/io-streams.nix b/pkgs/io-streams.nix
index fe15fef3a51ebda727d416d8bef3ba06d6c8711d..aeb9d98da892dfaefd1e9f45ff127ced77ad8128 100644
--- a/pkgs/io-streams.nix
+++ b/pkgs/io-streams.nix
@@ -8,8 +8,8 @@ mkDerivation {
   pname = "io-streams";
   version = "1.5.2.2";
   sha256 = "d365d5051696c15414ebe23749fc67475a532234b7c7d77060323d149a8fc4fe";
-  revision = "3";
-  editedCabalFile = "1827mfvqdqarkl29jz84slzn2qf6pm7r7fzcn2b4ds1nv77lab2c";
+  revision = "5";
+  editedCabalFile = "0zwqb5wlwjs85j28z4znxpmf4m4svjbgzq8djybwvdhgniansyic";
   configureFlags = [ "-fnointeractivetests" ];
   isLibrary = true;
   isExecutable = false;
diff --git a/pkgs/monads-tf.nix b/pkgs/monads-tf.nix
index 5335e09411073b1cf6142a162e91bb183536b917..ca63693b44b3c70d3488a08ef566d6a78e8c87b0 100644
--- a/pkgs/monads-tf.nix
+++ b/pkgs/monads-tf.nix
@@ -3,6 +3,8 @@ mkDerivation {
   pname = "monads-tf";
   version = "0.3.0.1";
   sha256 = "21bcd293bf663b6cf993600a3357da724e09c088bdb0ba792f7afc8b69fa5f02";
+  revision = "1";
+  editedCabalFile = "1036p9bn11xmm7hdwbr9dxz8fr9bqsbw0sma5fbqlyzp18b0qz2v";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/optics-th.nix b/pkgs/optics-th.nix
index 12c7203faeb308d3e33ca16f517880f2e8da0ace..6ea6675a5e09df40505f46b0949d00edca6e0c7d 100644
--- a/pkgs/optics-th.nix
+++ b/pkgs/optics-th.nix
@@ -5,8 +5,8 @@ mkDerivation {
   pname = "optics-th";
   version = "0.4.1";
   sha256 = "d73857b79dcd8f7c7e70fa4727f134145b62902e8d3e448f8b25c38a9da4fd17";
-  revision = "6";
-  editedCabalFile = "03qm6q7gw97qlcgnqp097dyvqkqpq4ph95y5ra6k6da218rbl1nk";
+  revision = "7";
+  editedCabalFile = "1zlx9xs8dpr3xbxsbi7pgrqkl6avs4ss2bdq8f3p2dxibr8xi4bz";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/options.nix b/pkgs/options.nix
index 33bc53065505eadd9fb5bf6529342e7c040fafb7..a23051c8a3ee98ecb98a94944a3c1c8d11c3590a 100644
--- a/pkgs/options.nix
+++ b/pkgs/options.nix
@@ -4,6 +4,8 @@ mkDerivation {
   pname = "options";
   version = "1.2.1.2";
   sha256 = "6e4d8fa177713d00f95cb43d21359a7d2908ce1e04f703be5b59679ccc3a5f4a";
+  revision = "1";
+  editedCabalFile = "134r6x7m7sdp9f594ydb6l0q5rgym7psg3sh20klv2vwfq3fm1ic";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/polysemy.nix b/pkgs/polysemy.nix
index 84a5dad06bafc2fbfcf176885998727aa9b9756a..f8b0b1ebe6c6102716c0b4e2fc7c509a47005241 100644
--- a/pkgs/polysemy.nix
+++ b/pkgs/polysemy.nix
@@ -7,6 +7,8 @@ mkDerivation {
   pname = "polysemy";
   version = "1.9.1.3";
   sha256 = "68d1d8bbd4ce7be633ae486793268051b6eb24d22a76372ea759f815c6694557";
+  revision = "1";
+  editedCabalFile = "0a4m860wgk2wx55x93xia9dx29bj27f1dkvcz1q7b0jgjyvffc58";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/recursion-schemes.nix b/pkgs/recursion-schemes.nix
index b5a09f030be693dcab93c405f487bf2e04318610..bd563201ee3d25e784b516b30d1558b1524aa9d9 100644
--- a/pkgs/recursion-schemes.nix
+++ b/pkgs/recursion-schemes.nix
@@ -5,6 +5,8 @@ mkDerivation {
   pname = "recursion-schemes";
   version = "5.2.2.5";
   sha256 = "5cb79bd5d6dd5a0adf61ccc37a93c4fcfaeb6077f60a975c895feb32744d97ec";
+  revision = "1";
+  editedCabalFile = "0rz78i40nsk3jywkdssqhla8vpbyhrdd95js5ncxwc0p6s5xp4h9";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/snap-core.nix b/pkgs/snap-core.nix
index 6a3df5a3cd8034cf9dbbfcbf494fb7c308807e56..6976833b0eed492646aa696e730da45201f879f4 100644
--- a/pkgs/snap-core.nix
+++ b/pkgs/snap-core.nix
@@ -11,8 +11,8 @@ mkDerivation {
   pname = "snap-core";
   version = "1.0.5.1";
   sha256 = "a704c1a0e2c4ebfdcc8baf6feab09dd7715bdc9d750f7efb63d06e3965ec0502";
-  revision = "3";
-  editedCabalFile = "0knsdp65pvj7nxsid6ais24h902k8ag480r1661wy9grkv2i8kp8";
+  revision = "5";
+  editedCabalFile = "02szs3kljcfzg9kvnv6m8mykrm5big6ki4a7hzian5bb2jpjw4f1";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/snap-server.nix b/pkgs/snap-server.nix
index e9698e4d96087fca62a96017855baf383c649528..a4b888f1557c23b8a50357d5aa1af4adcfe807da 100644
--- a/pkgs/snap-server.nix
+++ b/pkgs/snap-server.nix
@@ -11,8 +11,8 @@ mkDerivation {
   pname = "snap-server";
   version = "1.1.2.1";
   sha256 = "a47457fd746db202711b6a6b34a8575daa291a01a99cd0900e639aadc06fca7e";
-  revision = "3";
-  editedCabalFile = "0adjcah7hx47cg066jbjjgn7wz8pvkm0fc87fyz8c7lc0sdmp84f";
+  revision = "4";
+  editedCabalFile = "02h1gdhd4wi57145s3jjnrghszzry624q55kjry0d54mmxrzgsh1";
   configureFlags = [ "-fopenssl" ];
   isLibrary = true;
   isExecutable = true;
diff --git a/pkgs/th-abstraction.nix b/pkgs/th-abstraction.nix
index 0933a3a93aca6c0f23d4be7d389ee698ea877c8f..cc1c53e890a6e8e55bc0b35952d6e1b2fb620941 100644
--- a/pkgs/th-abstraction.nix
+++ b/pkgs/th-abstraction.nix
@@ -4,8 +4,8 @@ mkDerivation {
   pname = "th-abstraction";
   version = "0.6.0.0";
   sha256 = "69ea6eca1f0c00b6e1e1f8329c908ec76e73855e2ce6e91ace2f8bbf92c51a30";
-  revision = "1";
-  editedCabalFile = "0z7cn1qcnkslajjqcma23sh0qglbpvb5y9bgbzfzqal1lak9z5fq";
+  revision = "2";
+  editedCabalFile = "1bm8a998l953gw309mvj61c9qk1wakms3cfwdfx0w6l563b60dri";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/th-extras.nix b/pkgs/th-extras.nix
index d4dd318c6be9e212f6d1f628805299ef0d44a865..9d3cefd91647eba2182917388516e8797839b4b4 100644
--- a/pkgs/th-extras.nix
+++ b/pkgs/th-extras.nix
@@ -5,6 +5,8 @@ mkDerivation {
   pname = "th-extras";
   version = "0.0.0.7";
   sha256 = "86d0061673dd35cdf64e2865f13c1fca34291f04d10bd88a6452d2fc5bc5ab7f";
+  revision = "1";
+  editedCabalFile = "1gls62xpxrzq7wa3isap2xwgf9qwksqdjsyvbwc9arswk6v8c38q";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/yesod-core.nix b/pkgs/yesod-core.nix
index e172a8f834e02900780b4fb993efb049532d22cd..bb5ca3e994a75ac5f563aa2e52856ffc2dbb40a7 100644
--- a/pkgs/yesod-core.nix
+++ b/pkgs/yesod-core.nix
@@ -12,6 +12,8 @@ mkDerivation {
   pname = "yesod-core";
   version = "1.6.25.1";
   sha256 = "ac3151a7410ca5ee81fcfd46a79de786680295a428f1ab682610b84030770c45";
+  revision = "1";
+  editedCabalFile = "1k5xwklxxx3l4lc0ddfq6q8805wx86dfhf571vn4r5na3awcx4d4";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;
diff --git a/pkgs/zlib.nix b/pkgs/zlib.nix
index 2d6655ea3bb1c608ac3ca0975b76ca78e512044d..b0712808e14b90d5cff600d049dfe025be83ce3e 100644
--- a/pkgs/zlib.nix
+++ b/pkgs/zlib.nix
@@ -5,6 +5,8 @@ mkDerivation {
   pname = "zlib";
   version = "0.7.0.0";
   sha256 = "7e43c205e1e1ff5a4b033086ec8cce82ab658879e977c8ba02a6701946ff7a47";
+  revision = "1";
+  editedCabalFile = "1fiwhzs7sp3ck75ii176pakmwjqcjlv0fiqcqka6r8p9jdf958b4";
   isLibrary = true;
   isExecutable = false;
   enableSeparateDataOutput = false;