From 53c116d6f9a227ad540a435f538882ae632c2d39 Mon Sep 17 00:00:00 2001 From: Oleg Grenrus Date: Tue, 12 May 2026 18:50:00 +0300 Subject: [PATCH] Support semialign-1.4 --- src/Data/TreeDiff/OMap.hs | 5 ++++- tree-diff.cabal | 27 ++++++++++----------------- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/Data/TreeDiff/OMap.hs b/src/Data/TreeDiff/OMap.hs index 77befee..3ce21ae 100644 --- a/src/Data/TreeDiff/OMap.hs +++ b/src/Data/TreeDiff/OMap.hs @@ -17,7 +17,7 @@ module Data.TreeDiff.OMap ( import Control.DeepSeq (NFData (..)) import Data.List (sortBy) import Data.Ord (comparing) -import Data.Semialign (Semialign (..)) +import Data.Semialign (Semialign(..), Unzip (..), unzipDefault) import Data.These (These (..)) import qualified Data.Map.Strict as Map @@ -148,3 +148,6 @@ instance Ord k => Semialign (OMap k) where g (This (Val i x)) = Val i (f (This x)) g (That (Val j y)) = Val j (f (That y)) g (These (Val i x) (Val j y)) = Val (min i j) (f (These x y)) + +instance Unzip (OMap k) where + unzip = unzipDefault diff --git a/tree-diff.cabal b/tree-diff.cabal index a0cbf54..116dd6b 100644 --- a/tree-diff.cabal +++ b/tree-diff.cabal @@ -1,7 +1,6 @@ cabal-version: 2.2 name: tree-diff -version: 0.3.4.1 -x-revision: 1 +version: 0.3.5 synopsis: Diffing of (expression) trees. category: Data, Testing description: @@ -106,7 +105,7 @@ library , primitive ^>=0.9.0.0 , QuickCheck ^>=2.14.2 || ^>=2.15 || ^>=2.16.0.0 || ^>=2.18.0.0 , scientific ^>=0.3.8.0 - , semialign ^>=1.3.1 + , semialign ^>=1.3.1 || ^>=1.4 , strict ^>=0.5 , tagged ^>=0.8.8 , these ^>=1.2.1 @@ -114,9 +113,6 @@ library , uuid-types ^>=1.0.6 , vector ^>=0.13.1.0 - if !flag(base-ge-4-17) - build-depends: data-array-byte >=0.1.0.1 && <0.2 - other-extensions: CPP ConstraintKinds @@ -130,12 +126,6 @@ library hs-source-dirs: src default-language: Haskell2010 - if flag(base-ge-4-17) - build-depends: base >=4.17 - - else - build-depends: base <4.17 - test-suite tree-diff-test default-language: Haskell2010 type: exitcode-stdio-1.0 @@ -154,11 +144,8 @@ test-suite tree-diff-test , tree-diff , unordered-containers - if (impl(ghc >=8) && !impl(ghc >=9.4)) - build-depends: data-array-byte - - if impl(ghc <7.5) - build-depends: ghc-prim + if !flag(base-ge-4-17) + build-depends: data-array-byte >=0.1.0.1 && <0.2 -- extra dependencies build-depends: @@ -167,6 +154,12 @@ test-suite tree-diff-test , tasty-quickcheck ^>=0.10.3 || ^>=0.11 , trifecta ^>=2.1.4 + if flag(base-ge-4-17) + build-depends: base >=4.17 + + else + build-depends: base <4.17 + benchmark tree-diff-bench default-language: Haskell2010 type: exitcode-stdio-1.0