semilattices 0.0.0.4 → 0.0.0.5
raw patch · 6 files changed
+26/−10 lines, 6 filesdep −hashablePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies removed: hashable
API changes (from Hackage documentation)
- Data.Semilattice.Join: instance (GHC.Classes.Eq a, Data.Hashable.Class.Hashable a) => Data.Semilattice.Join.Join (Data.HashSet.Base.HashSet a)
- Data.Semilattice.Join: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k, Data.Semilattice.Join.Join a) => Data.Semilattice.Join.Join (Data.HashMap.Base.HashMap k a)
- Data.Semilattice.Lower: instance Data.Semilattice.Lower.Lower (Data.HashMap.Base.HashMap k a)
- Data.Semilattice.Lower: instance Data.Semilattice.Lower.Lower (Data.HashSet.Base.HashSet a)
- Data.Semilattice.Meet: instance (GHC.Classes.Eq a, Data.Hashable.Class.Hashable a) => Data.Semilattice.Meet.Meet (Data.HashSet.Base.HashSet a)
- Data.Semilattice.Meet: instance (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k, Data.Semilattice.Meet.Meet a) => Data.Semilattice.Meet.Meet (Data.HashMap.Base.HashMap k a)
+ Data.Semilattice.Join: instance (GHC.Classes.Eq k, Data.Semilattice.Join.Join a) => Data.Semilattice.Join.Join (Data.HashMap.Internal.HashMap k a)
+ Data.Semilattice.Join: instance GHC.Classes.Eq a => Data.Semilattice.Join.Join (Data.HashSet.Internal.HashSet a)
+ Data.Semilattice.Lower: instance Data.Semilattice.Lower.Lower (Data.HashMap.Internal.HashMap k a)
+ Data.Semilattice.Lower: instance Data.Semilattice.Lower.Lower (Data.HashSet.Internal.HashSet a)
+ Data.Semilattice.Meet: instance (GHC.Classes.Eq k, Data.Semilattice.Meet.Meet a) => Data.Semilattice.Meet.Meet (Data.HashMap.Internal.HashMap k a)
+ Data.Semilattice.Meet: instance GHC.Classes.Eq a => Data.Semilattice.Meet.Meet (Data.HashSet.Internal.HashSet a)
Files
- ChangeLog.md +5/−0
- semilattices.cabal +6/−3
- src/Data/Semilattice/Join.hs +2/−3
- src/Data/Semilattice/Lower.hs +6/−1
- src/Data/Semilattice/Meet.hs +2/−3
- src/Data/Semilattice/Upper.hs +5/−0
ChangeLog.md view
@@ -1,3 +1,8 @@+# 0.0.0.5++Support more recent GHCs, remove some redundant constraints, and obviate the need for the dependency on `hashable`.++ # 0.0.0.4 Support GHC 8.8.1 and loosen the bounds on `hashable` and `base`.
semilattices.cabal view
@@ -1,5 +1,5 @@ name: semilattices-version: 0.0.0.4+version: 0.0.0.5 synopsis: Semilattices description: Join- and meet-semilattices, with optional upper and lower bounds, and a variety of instances for each. homepage: https://github.com/robrix/semilattices@@ -7,7 +7,7 @@ license-file: LICENSE author: Rob Rix maintainer: rob.rix@me.com-copyright: 2017-2019 Rob Rix+copyright: 2017-2024 Rob Rix category: Algebra, Data, Data Structures, Math build-type: Simple cabal-version: >=1.10@@ -35,7 +35,6 @@ build-depends: base >=4.9 && <5 , containers >=0.5 && <0.7- , hashable >=1.2 && <1.4 , unordered-containers >=0.2 && <0.3 hs-source-dirs: src default-language: Haskell2010@@ -54,6 +53,10 @@ ghc-options: -Wno-star-is-type if (impl(ghc >= 8.8)) ghc-options: -Wno-missing-deriving-strategies+ if (impl(ghc >= 8.10))+ ghc-options: -Wno-missing-safe-haskell-mode+ if (impl(ghc >= 9.2))+ ghc-options: -Wno-missing-kind-signatures test-suite doctests type: exitcode-stdio-1.0
src/Data/Semilattice/Join.hs view
@@ -6,7 +6,6 @@ , LessThan(..) ) where -import Data.Hashable import Data.HashMap.Lazy as HashMap import Data.HashSet as HashSet import Data.IntMap as IntMap@@ -269,7 +268,7 @@ -- Identity: -- -- prop> lowerBound \/ a == (a :: HashMap Char (Set Char))-instance (Eq k, Hashable k, Join a) => Join (HashMap k a) where+instance (Eq k, Join a) => Join (HashMap k a) where (\/) = HashMap.unionWith (\/) -- | HashSet union forms a semilattice.@@ -289,7 +288,7 @@ -- Identity: -- -- prop> lowerBound \/ a == (a :: HashSet Char)-instance (Eq a, Hashable a) => Join (HashSet a) where+instance Eq a => Join (HashSet a) where (\/) = HashSet.union
src/Data/Semilattice/Lower.hs view
@@ -8,9 +8,9 @@ import Data.Coerce import Data.Functor.Const import Data.Functor.Identity-import Data.Int import Data.HashMap.Lazy as HashMap import Data.HashSet as HashSet+import Data.Int import Data.IntMap as IntMap import Data.IntSet as IntSet import Data.Map as Map@@ -25,7 +25,10 @@ import Foreign.C.Types import Foreign.Ptr import GHC.Generics++#if !defined(OS_Win32) import System.Posix.Types+#endif -- | The greatest lower bound of @s@. --@@ -190,6 +193,7 @@ instance Lower SourceUnpackedness instance Lower Associativity +#if !defined(OS_Win32) -- System.Posix.Types instance Lower Fd instance Lower CRLim@@ -203,6 +207,7 @@ instance Lower CMode instance Lower CIno instance Lower CDev+#endif #if MIN_VERSION_base(4,10,0) instance Lower CKey
src/Data/Semilattice/Meet.hs view
@@ -6,7 +6,6 @@ , GreaterThan(..) ) where -import Data.Hashable import Data.HashMap.Lazy as HashMap import Data.HashSet as HashSet import Data.IntMap as IntMap@@ -269,7 +268,7 @@ -- Absorption: -- -- prop> lowerBound /\ a == (lowerBound :: HashMap Char (Set Char))-instance (Eq k, Hashable k, Meet a) => Meet (HashMap k a) where+instance (Eq k, Meet a) => Meet (HashMap k a) where (/\) = HashMap.intersectionWith (/\) -- | HashSet intersection forms a semilattice.@@ -289,7 +288,7 @@ -- Absorption: -- -- prop> lowerBound /\ a == (lowerBound :: HashSet Char)-instance (Eq a, Hashable a) => Meet (HashSet a) where+instance Eq a => Meet (HashSet a) where (/\) = HashSet.intersection
src/Data/Semilattice/Upper.hs view
@@ -18,7 +18,10 @@ import Foreign.C.Types import Foreign.Ptr import GHC.Generics++#if !defined(OS_Win32) import System.Posix.Types+#endif -- | The least upper bound of @s@. --@@ -176,6 +179,7 @@ instance Upper SourceUnpackedness instance Upper Associativity +#if !defined(OS_Win32) -- System.Posix.Types instance Upper Fd instance Upper CRLim@@ -189,6 +193,7 @@ instance Upper CMode instance Upper CIno instance Upper CDev+#endif #if MIN_VERSION_base(4,10,0) instance Upper CKey