lattices 2.1 → 2.2
raw patch · 4 files changed
+48/−32 lines, 4 filesdep +foldable1-classes-compatdep −semigroupoidsdep ~OneTupledep ~basedep ~base-compat
Dependencies added: foldable1-classes-compat
Dependencies removed: semigroupoids
Dependency ranges changed: OneTuple, base, base-compat, deepseq
Files
- CHANGELOG.md +5/−0
- lattices.cabal +8/−5
- src/Algebra/Heyting.hs +11/−7
- src/Algebra/Lattice.hs +24/−20
CHANGELOG.md view
@@ -1,3 +1,8 @@+# 2.2 (2022-03-15)++- Drop `semigroupoids` dependency in favour of `foldable1-classes-compat`.+ Be careful with which `Foldable1` class you end up using.+ # 2.1 (2022-12-27) - Fix `comprable` for `PartialOrd (a,b)` instance
lattices.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: lattices-version: 2.1+version: 2.2 category: Math license: BSD3 license-file: LICENSE@@ -34,6 +34,7 @@ || ==9.0.2 || ==9.2.5 || ==9.4.4+ || ==9.6.1 synopsis: Fine-grained library for constructing and manipulating lattices@@ -82,25 +83,27 @@ Algebra.PartialOrd.Instances build-depends:- base >=4.6 && <4.18- , base-compat >=0.10.5 && <0.13+ base >=4.6 && <4.19+ , base-compat >=0.13 && <0.14 , containers >=0.5.0.0 && <0.7 , deepseq >=1.3.0.0 && <1.5 , hashable >=1.2.7.0 && <1.5 , integer-logarithms >=1.0.3 && <1.1 , QuickCheck >=2.12.6.1 && <2.15- , semigroupoids >=5.3.2 && <5.4 , tagged >=0.8.6 && <0.9 , transformers >=0.3.0.0 && <0.7 , universe-base >=1.1 && <1.2 , universe-reverse-instances >=1.1 && <1.2 , unordered-containers >=0.2.8.0 && <0.3 + if !impl(ghc >=9.6)+ build-depends: foldable1-classes-compat >=0.1 && <0.2+ if !impl(ghc >=9.2) if impl(ghc >=9.0) build-depends: ghc-prim else- build-depends: OneTuple >=0.3 && <0.4+ build-depends: OneTuple >=0.4 && <0.5 if !impl(ghc >=8.0) build-depends: semigroups >=0.18.5 && <0.21
src/Algebra/Heyting.hs view
@@ -27,12 +27,16 @@ import qualified Data.HashSet as HS import qualified Data.Set as Set -#if MIN_VERSION_base(4,16,0)-import Data.Tuple (Solo (..))+#if MIN_VERSION_base(4,18,0)+import Data.Tuple (Solo (MkSolo))+#elif MIN_VERSION_base(4,16,0)+import Data.Tuple (Solo (Solo))+#define MkSolo Solo #elif MIN_VERSION_base(4,15,0)-import GHC.Tuple (Solo (..))+import GHC.Tuple (Solo (Solo))+#define MkSolo Solo #else-import Data.Tuple.Solo (Solo (..))+import Data.Tuple.Solo (Solo (MkSolo)) #endif -- | A Heyting algebra is a bounded lattice equipped with a@@ -135,9 +139,9 @@ -- | @since 2.0.3 instance Heyting a => Heyting (Solo a) where- Solo a ==> Solo b = Solo (a ==> b)- neg (Solo a) = Solo (neg a)- Solo a <=> Solo b = Solo (a <=> b)+ MkSolo a ==> MkSolo b = MkSolo (a ==> b)+ neg (MkSolo a) = MkSolo (neg a)+ MkSolo a <=> MkSolo b = MkSolo (a <=> b) ------------------------------------------------------------------------------- -- Sets
src/Algebra/Lattice.hs view
@@ -45,18 +45,18 @@ import qualified Algebra.PartialOrd as PO -import Control.Applicative (Const (..))-import Control.Monad.Zip (MonadZip (..))-import Data.Data (Data, Typeable)-import Data.Functor.Identity (Identity (..))-import Data.Hashable (Hashable (..))-import Data.Proxy (Proxy (..))-import Data.Semigroup (All (..), Any (..), Endo (..), Semigroup (..))-import Data.Semigroup.Foldable (Foldable1 (..))-import Data.Tagged (Tagged (..))-import Data.Universe.Class (Finite (..), Universe (..))-import Data.Void (Void)-import GHC.Generics (Generic)+import Control.Applicative (Const (..))+import Control.Monad.Zip (MonadZip (..))+import Data.Data (Data, Typeable)+import Data.Foldable1 (Foldable1 (..))+import Data.Functor.Identity (Identity (..))+import Data.Hashable (Hashable (..))+import Data.Proxy (Proxy (..))+import Data.Semigroup (All (..), Any (..), Endo (..), Semigroup (..))+import Data.Tagged (Tagged (..))+import Data.Universe.Class (Finite (..), Universe (..))+import Data.Void (Void)+import GHC.Generics (Generic) import qualified Data.HashMap.Lazy as HM import qualified Data.HashSet as HS@@ -66,12 +66,16 @@ import qualified Data.Set as Set import qualified Test.QuickCheck as QC -#if MIN_VERSION_base(4,16,0)-import Data.Tuple (Solo (..))+#if MIN_VERSION_base(4,18,0)+import Data.Tuple (Solo (MkSolo))+#elif MIN_VERSION_base(4,16,0)+import Data.Tuple (Solo (Solo))+#define MkSolo Solo #elif MIN_VERSION_base(4,15,0)-import GHC.Tuple (Solo (..))+import GHC.Tuple (Solo (Solo))+#define MkSolo Solo #else-import Data.Tuple.Solo (Solo (..))+import Data.Tuple.Solo (Solo (MkSolo)) #endif infixr 6 /\ -- This comment needed because of CPP@@ -529,16 +533,16 @@ -- | @since 2.0.3 instance Lattice a => Lattice (Solo a) where- Solo a \/ Solo b = Solo (a \/ b)- Solo a /\ Solo b = Solo (a /\ b)+ MkSolo a \/ MkSolo b = MkSolo (a \/ b)+ MkSolo a /\ MkSolo b = MkSolo (a /\ b) -- | @since 2.0.3 instance BoundedMeetSemiLattice a => BoundedMeetSemiLattice (Solo a) where- top = Solo top+ top = MkSolo top -- | @since 2.0.3 instance BoundedJoinSemiLattice a => BoundedJoinSemiLattice (Solo a) where- bottom = Solo bottom+ bottom = MkSolo bottom ------------------------------------------------------------------------------- -- Theorems