From 3d4ad2ff83e0413b87182c71d512573144539a07 Mon Sep 17 00:00:00 2001
From: Christian Gram Kalhauge <chrg@dtu.dk>
Date: Tue, 27 Feb 2024 12:08:08 +0100
Subject: [PATCH] Fixes some solution

---
 flake.lock                                | 17 ++++----
 flake.nix                                 | 49 +++++++++++------------
 rtree-c/test/src/ReduceCSpec.hs           | 12 +++---
 rtree/test/src/Control/Monad/RTreeSpec.hs |  8 ++--
 4 files changed, 42 insertions(+), 44 deletions(-)

diff --git a/flake.lock b/flake.lock
index fed1ed9..17a885b 100644
--- a/flake.lock
+++ b/flake.lock
@@ -43,16 +43,17 @@
         "nixpkgs": "nixpkgs"
       },
       "locked": {
-        "dirtyRev": "979d17cf356e3a336dac8820c676ec813668222c-dirty",
-        "dirtyShortRev": "979d17c-dirty",
-        "lastModified": 1708504824,
-        "narHash": "sha256-g2sR8z7+KWFT2A09zXqqC5EvH64oSh36XqX5NNJV3rY=",
-        "type": "git",
-        "url": "file:///Users/chrg/Develop/repos/hspec-glitter"
+        "lastModified": 1709030659,
+        "narHash": "sha256-f0mIzef7HZaSlJ6VTUswugH1Ntt2kz5M4McSLG3cTCE=",
+        "owner": "kalhauge",
+        "repo": "hspec-glitter",
+        "rev": "ee38cf3ab038c51febd82c6ed486b018d9a4cdd4",
+        "type": "github"
       },
       "original": {
-        "type": "git",
-        "url": "file:///Users/chrg/Develop/repos/hspec-glitter"
+        "owner": "kalhauge",
+        "repo": "hspec-glitter",
+        "type": "github"
       }
     },
     "language-c": {
diff --git a/flake.nix b/flake.nix
index b02a825..e336243 100644
--- a/flake.nix
+++ b/flake.nix
@@ -7,7 +7,7 @@
       url = github:kalhauge/language-c;
       flake = false;
     };
-    hspec-glitter.url = "/Users/chrg/Develop/repos/hspec-glitter";
+    hspec-glitter.url = github:kalhauge/hspec-glitter;
   };
   outputs = {
     self,
@@ -16,23 +16,19 @@
     nix-filter,
     ...
   } @ inputs: let
-    load = final: p: n: {
-      "${n}" =
-        final.haskell.lib.overrideCabal
-        (p.callCabal2nixWithOptions n (nix-filter.lib {root = "${self}/${n}";}) "" {}) {
-          doCheck = true;
-        };
+    load = p: n:
+      p.callCabal2nixWithOptions n (nix-filter.lib {root = "${self}/${n}";}) "" {};
+
+    packages = final: p: let
+      lib =
+        final.haskell.lib;
+    in {
+      "language-c" = lib.overrideCabal (p.callCabal2nixWithOptions "language-c" inputs.language-c "" {}) {
+        doCheck = false;
+      };
+      "rtree" = lib.dontCheck (load p "rtree");
+      "rtree-c" = lib.dontCheck (load p "rtree-c");
     };
-    packages = final: p:
-      {
-        "language-c" =
-          final.haskell.lib.overrideCabal
-          (p.callCabal2nixWithOptions "language-c" inputs.language-c "" {}) {
-            doCheck = false;
-          };
-      }
-      // load final p "rtree"
-      // load final p "rtree-c";
     overlays = final: prev: {
       haskellPackages = prev.haskellPackages.extend (p: _: packages final p);
     };
@@ -42,15 +38,15 @@
     }
     // flake-utils.lib.eachDefaultSystem
     (system: let
-      hpkgs =
-        (import nixpkgs {
-          inherit system;
-          overlays = [inputs.hspec-glitter.overlays.default overlays];
-        })
-        .haskellPackages;
+      pkgs = import nixpkgs {
+        inherit system;
+        overlays = [inputs.hspec-glitter.overlays.default overlays];
+      };
+      lib = pkgs.haskell.lib;
+      hpkgs = pkgs.haskellPackages;
     in rec {
       packages = {
-        default = hpkgs.rtree-c;
+        default = lib.justStaticExecutables (hpkgs.rtree-c);
         rtree = hpkgs.rtree;
         rtree-c = hpkgs.rtree-c;
       };
@@ -65,13 +61,14 @@
         ];
         withHoogle = true;
       in {
+        rtree = hpkgs.rtree;
         default =
           hpkgs.shellFor
           {
             name = "rtree-shells";
             packages = p: [
-              p.rtree
-              p.rtree-c
+              (lib.doCheck p.rtree)
+              (lib.doCheck p.rtree-c)
             ];
             doBenchmark = true;
             doCheck = true;
diff --git a/rtree-c/test/src/ReduceCSpec.hs b/rtree-c/test/src/ReduceCSpec.hs
index 7ae8327..c4c8b38 100644
--- a/rtree-c/test/src/ReduceCSpec.hs
+++ b/rtree-c/test/src/ReduceCSpec.hs
@@ -44,7 +44,7 @@ specLargeCases = do
       c <- runIO $ parse cfrom
 
       let expected = "test/expected" </> dropExtensions cname
-      onGlitterWith (expected </> "main.c") (\fp () -> render fp c) do
+      onGlitter (expected </> "main.c") (\fp -> render fp c) do
         it "should be valid" . foldMap $ \cf -> do
           validate cf
 
@@ -57,9 +57,9 @@ specLargeCases = do
         it "should extract itself" do
           IRTree.extract (defaultReduceC c) $> () `shouldBe` c $> ()
 
-      onGlitterWith
+      onGlitter
         (expected </> "reduction/")
-        ( \a () -> do
+        ( \a -> do
             createDirectoryIfMissing True a
             listDirectory a >>= mapM_ \i -> do
               let idx = fromString (drop 1 (dropExtension i))
@@ -83,7 +83,7 @@ specSmallCases = do
       c <- runIO $ parse cfrom
 
       let expected = "test/expected" </> dropExtensions cname
-      onGlitterWith (expected </> "main.c") (\fp () -> render fp c) do
+      onGlitter (expected </> "main.c") (\fp -> render fp c) do
         it "should be valid" . foldMap $ \cf -> do
           validate cf
 
@@ -96,9 +96,9 @@ specSmallCases = do
         it "should extract itself" do
           extract (defaultReduceC c) $> () `shouldBe` c $> ()
 
-      onGlitterWith
+      onGlitter
         (expected </> "reduction/")
-        ( \a () -> do
+        ( \a -> do
             _ <- tryIOError (removeDirectoryRecursive a)
             createDirectoryIfMissing True a
             forM_ (iinputs (defaultReduceC c)) \(i, _) -> do
diff --git a/rtree/test/src/Control/Monad/RTreeSpec.hs b/rtree/test/src/Control/Monad/RTreeSpec.hs
index 6ed5f54..3097885 100644
--- a/rtree/test/src/Control/Monad/RTreeSpec.hs
+++ b/rtree/test/src/Control/Monad/RTreeSpec.hs
@@ -80,9 +80,9 @@ rtreeSpec = describe "RTree" do
                    ]
 
   describe "drawRTree" do
-    onGlitterWith
+    onGlitter
       "test/expected/rlist-drawrtree"
-      (\fp () -> writeFile fp (drawRTree (\() -> id) shows (rList [1, 2, 3 :: Int])))
+      (\fp -> writeFile fp (drawRTree (\() -> id) shows (rList [1, 2, 3 :: Int])))
       (pure ())
 
 examplesSpec :: Spec
@@ -107,9 +107,9 @@ examplesSpec = describe "example" do
 
     let re = runReaderT me Map.empty
 
-    onGlitterWith
+    onGlitter
       ("test/expected/" <> str)
-      (\fp () -> writeFile fp (drawRTree showString (prettyExprS 0) re))
+      (\fp -> writeFile fp (drawRTree showString (prettyExprS 0) re))
       (pure ())
 
     it "should reduce like iinputs" do
-- 
GitLab