generic-data 1.1.0.0 → 1.1.0.1
raw patch · 4 files changed
+30/−7 lines, 4 filesdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base
API changes (from Hackage documentation)
- Generic.Data: Generically1 :: f a -> Generically1 f a
- Generic.Data.Internal.Generically: Generically1 :: f a -> Generically1 f a
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, GHC.Classes.Eq (GHC.Generics.Rep a ())) => GHC.Classes.Eq (Generic.Data.Internal.Generically.Generically a)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, GHC.Classes.Ord (GHC.Generics.Rep a ())) => GHC.Classes.Ord (Generic.Data.Internal.Generically.Generically a)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, GHC.Classes.Ord (GHC.Generics.Rep a ()), Generic.Data.Internal.Enum.GIx (GHC.Generics.Rep a)) => GHC.Ix.Ix (Generic.Data.Internal.Generically.Generically a)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, Generic.Data.Internal.Enum.GBounded (GHC.Generics.Rep a)) => GHC.Enum.Bounded (Generic.Data.Internal.Generically.Generically a)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, Generic.Data.Internal.Enum.GEnum Generic.Data.Internal.Enum.StandardEnum (GHC.Generics.Rep a)) => GHC.Enum.Enum (Generic.Data.Internal.Generically.Generically a)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, Generic.Data.Internal.Read.GRead0 (GHC.Generics.Rep a)) => GHC.Read.Read (Generic.Data.Internal.Generically.Generically a)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, Generic.Data.Internal.Show.GShow0 (GHC.Generics.Rep a)) => GHC.Show.Show (Generic.Data.Internal.Generically.Generically a)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Data.Functor.Classes.Eq1 (GHC.Generics.Rep1 f)) => Data.Functor.Classes.Eq1 (Generic.Data.Internal.Generically.Generically1 f)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Data.Functor.Classes.Eq1 (GHC.Generics.Rep1 f), GHC.Classes.Eq a) => GHC.Classes.Eq (Generic.Data.Internal.Generically.Generically1 f a)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Data.Functor.Classes.Ord1 (GHC.Generics.Rep1 f)) => Data.Functor.Classes.Ord1 (Generic.Data.Internal.Generically.Generically1 f)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Data.Functor.Classes.Ord1 (GHC.Generics.Rep1 f), GHC.Classes.Ord a) => GHC.Classes.Ord (Generic.Data.Internal.Generically.Generically1 f a)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, GHC.Base.Alternative (GHC.Generics.Rep1 f)) => GHC.Base.Alternative (Generic.Data.Internal.Generically.Generically1 f)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, GHC.Base.Applicative (GHC.Generics.Rep1 f)) => GHC.Base.Applicative (Generic.Data.Internal.Generically.Generically1 f)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, GHC.Base.Functor (GHC.Generics.Rep1 f)) => GHC.Base.Functor (Generic.Data.Internal.Generically.Generically1 f)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, GHC.Base.Functor (GHC.Generics.Rep1 f), Generic.Data.Internal.Traversable.GFoldable (GHC.Generics.Rep1 f), Generic.Data.Internal.Traversable.GTraversable (GHC.Generics.Rep1 f)) => Data.Traversable.Traversable (Generic.Data.Internal.Generically.Generically1 f)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Generic.Data.Internal.Read.GRead1 (GHC.Generics.Rep1 f)) => Data.Functor.Classes.Read1 (Generic.Data.Internal.Generically.Generically1 f)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Generic.Data.Internal.Read.GRead1 (GHC.Generics.Rep1 f), GHC.Read.Read a) => GHC.Read.Read (Generic.Data.Internal.Generically.Generically1 f a)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Generic.Data.Internal.Show.GShow1 (GHC.Generics.Rep1 f)) => Data.Functor.Classes.Show1 (Generic.Data.Internal.Generically.Generically1 f)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Generic.Data.Internal.Show.GShow1 (GHC.Generics.Rep1 f), GHC.Show.Show a) => GHC.Show.Show (Generic.Data.Internal.Generically.Generically1 f a)
- Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Generic.Data.Internal.Traversable.GFoldable (GHC.Generics.Rep1 f)) => Data.Foldable.Foldable (Generic.Data.Internal.Generically.Generically1 f)
- Generic.Data.Internal.Generically: instance (Generic.Data.Internal.Error.AssertNoSum GHC.Base.Semigroup a, GHC.Base.Semigroup a, GHC.Generics.Generic a, GHC.Base.Monoid (GHC.Generics.Rep a ())) => GHC.Base.Monoid (Generic.Data.Internal.Generically.Generically a)
- Generic.Data.Internal.Generically: instance (Generic.Data.Internal.Error.AssertNoSum GHC.Base.Semigroup a, GHC.Generics.Generic a, GHC.Base.Semigroup (GHC.Generics.Rep a ())) => GHC.Base.Semigroup (Generic.Data.Internal.Generically.Generically a)
- Generic.Data.Internal.Generically: instance GHC.Generics.Generic (f a) => GHC.Generics.Generic (Generic.Data.Internal.Generically.Generically1 f a)
- Generic.Data.Internal.Generically: instance GHC.Generics.Generic a => GHC.Generics.Generic (Generic.Data.Internal.Generically.Generically a)
- Generic.Data.Internal.Generically: instance GHC.Generics.Generic1 f => GHC.Generics.Generic1 (Generic.Data.Internal.Generically.Generically1 f)
+ Generic.Data: [Generically1] :: forall {k} (f :: k -> Type) (a :: k). f a -> Generically1 f a
+ Generic.Data.Internal.Generically: [Generically1] :: forall {k} (f :: k -> Type) (a :: k). f a -> Generically1 f a
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, GHC.Classes.Eq (GHC.Generics.Rep a ())) => GHC.Classes.Eq (GHC.Generics.Generically a)
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, GHC.Classes.Ord (GHC.Generics.Rep a ())) => GHC.Classes.Ord (GHC.Generics.Generically a)
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, GHC.Classes.Ord (GHC.Generics.Rep a ()), Generic.Data.Internal.Enum.GIx (GHC.Generics.Rep a)) => GHC.Ix.Ix (GHC.Generics.Generically a)
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, Generic.Data.Internal.Enum.GBounded (GHC.Generics.Rep a)) => GHC.Enum.Bounded (GHC.Generics.Generically a)
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, Generic.Data.Internal.Enum.GEnum Generic.Data.Internal.Enum.StandardEnum (GHC.Generics.Rep a)) => GHC.Enum.Enum (GHC.Generics.Generically a)
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, Generic.Data.Internal.Read.GRead0 (GHC.Generics.Rep a)) => GHC.Read.Read (GHC.Generics.Generically a)
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic a, Generic.Data.Internal.Show.GShow0 (GHC.Generics.Rep a)) => GHC.Show.Show (GHC.Generics.Generically a)
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, GHC.Base.Functor (GHC.Generics.Rep1 f), Generic.Data.Internal.Traversable.GFoldable (GHC.Generics.Rep1 f), Generic.Data.Internal.Traversable.GTraversable (GHC.Generics.Rep1 f)) => Data.Traversable.Traversable (GHC.Generics.Generically1 f)
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Generic.Data.Internal.Read.GRead1 (GHC.Generics.Rep1 f)) => Data.Functor.Classes.Read1 (GHC.Generics.Generically1 f)
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Generic.Data.Internal.Read.GRead1 (GHC.Generics.Rep1 f), GHC.Read.Read a) => GHC.Read.Read (GHC.Generics.Generically1 f a)
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Generic.Data.Internal.Show.GShow1 (GHC.Generics.Rep1 f)) => Data.Functor.Classes.Show1 (GHC.Generics.Generically1 f)
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Generic.Data.Internal.Show.GShow1 (GHC.Generics.Rep1 f), GHC.Show.Show a) => GHC.Show.Show (GHC.Generics.Generically1 f a)
+ Generic.Data.Internal.Generically: instance (GHC.Generics.Generic1 f, Generic.Data.Internal.Traversable.GFoldable (GHC.Generics.Rep1 f)) => Data.Foldable.Foldable (GHC.Generics.Generically1 f)
+ Generic.Data.Internal.Generically: instance GHC.Generics.Generic (f a) => GHC.Generics.Generic (GHC.Generics.Generically1 f a)
+ Generic.Data.Internal.Generically: instance GHC.Generics.Generic a => GHC.Generics.Generic (GHC.Generics.Generically a)
+ Generic.Data.Internal.Generically: instance GHC.Generics.Generic1 f => GHC.Generics.Generic1 (GHC.Generics.Generically1 f)
- Generic.Data: class Generic a
+ Generic.Data: class () => Generic a
- Generic.Data: class Generic1 (f :: k -> Type)
+ Generic.Data: class () => Generic1 (f :: k -> Type)
- Generic.Data: newtype Generically a
+ Generic.Data: newtype () => Generically a
- Generic.Data: newtype Generically1 f a
+ Generic.Data: newtype () => Generically1 (f :: k -> Type) (a :: k)
- Generic.Data.Internal.Error: type AssertNoSum (constraint :: Type -> Constraint) a = Assert (Not (HasSum (Rep a))) ('Text "Cannot derive " :<>: 'ShowType constraint :<>: 'Text " instance for " :<>: 'ShowType a :<>: 'Text " due to sum type")
+ Generic.Data.Internal.Error: type AssertNoSum (constraint :: Type -> Constraint) a = Assert (Not (HasSum (Rep a))) ('Text "Cannot derive " ':<>: 'ShowType constraint ':<>: 'Text " instance for " ':<>: 'ShowType a ':<>: 'Text " due to sum type")
- Generic.Data.Internal.Generically: newtype Generically a
+ Generic.Data.Internal.Generically: newtype () => Generically a
- Generic.Data.Internal.Generically: newtype Generically1 f a
+ Generic.Data.Internal.Generically: newtype () => Generically1 (f :: k -> Type) (a :: k)
- Generic.Data.Microsurgery: newtype Generically a
+ Generic.Data.Microsurgery: newtype () => Generically a
Files
- CHANGELOG.md +6/−0
- generic-data.cabal +6/−4
- orphans/Generic/Data/Orphans.hs +7/−1
- test/unit.hs +11/−2
CHANGELOG.md view
@@ -1,8 +1,14 @@+# 1.1.0.1++- Compatibility with *base* 4.21 (GHC 9.12)+- Avoid dependency on *contravariant*+ # 1.1.0.0 - Remove `Eq` and `Ord` for `Generically1` instances. They are now available in *base* 4.18, and *base-orphans* 0.8.8 for backwards compatibility.+- (Revisions) Also compatible with *base* 4.20 (GHC 9.10) and 4.19 (GHC 9.8) # 1.0.0.1
generic-data.cabal view
@@ -1,5 +1,5 @@ name: generic-data-version: 1.1.0.0+version: 1.1.0.1 synopsis: Deriving instances with GHC.Generics and related utilities description: Generic implementations of standard type classes.@@ -17,7 +17,8 @@ cabal-version: >=1.10 tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.10.7, GHC == 9.0.2,- GHC == 9.2.7, GHC == 9.4.4, GHC == 9.6.1+ GHC == 9.2.8, GHC == 9.4.8, GHC == 9.6.6,+ GHC == 9.8.2, GHC == 9.10.1 library hs-source-dirs: src@@ -43,10 +44,11 @@ build-depends: ap-normalize >= 0.1 && < 0.2, base-orphans >= 0.8.8,- contravariant, ghc-boot-th, show-combinators,- base >= 4.9 && < 4.19+ base >= 4.9 && < 4.22+ if impl(ghc < 9.6)+ build-depends: contravariant hs-source-dirs: orphans exposed-modules: Generic.Data.Orphans
orphans/Generic/Data/Orphans.hs view
@@ -1,14 +1,19 @@ {-# OPTIONS_GHC -Wno-orphans #-} +{-# LANGUAGE CPP #-} {-# LANGUAGE EmptyCase #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeOperators #-} --- | Orphan instances. They should probably be upstreamed.+-- | Orphan instances.+--+-- The orphan instances in this module have been upstreamed in base 4.21 (GHC 9.12).+-- This module is empty starting from that version. It remains for backwards compatiblity. module Generic.Data.Orphans where +#if __GLASGOW_HASKELL__ < 912 import Data.Functor.Classes import Data.Orphans () import Data.Semigroup@@ -71,3 +76,4 @@ instance (Ord1 f, Ord1 g) => Ord1 (f :.: g) where liftCompare compare' (Comp1 x1) (Comp1 x2) = (liftCompare . liftCompare) compare' x1 x2+#endif
test/unit.hs view
@@ -138,12 +138,21 @@ showsPrec = gshowsPrec maybeModuleName :: String-#if MIN_VERSION_base(4,12,0)+#if MIN_VERSION_base(4,20,0)+maybeModuleName = "GHC.Internal.Maybe"+#elif MIN_VERSION_base(4,12,0) maybeModuleName = "GHC.Maybe" #else maybeModuleName = "GHC.Base" #endif +maybePackageName :: String+#if MIN_VERSION_base(4,20,0)+maybePackageName = "ghc-internal"+#else+maybePackageName = "base"+#endif+ main :: IO () main = defaultMain test @@ -253,7 +262,7 @@ , testGroup "Meta" [ testCase "datatypeName" $ "Maybe" @=? gdatatypeName @(Maybe Int) , testCase "moduleName" $ maybeModuleName @=? gmoduleName @(Maybe Int)- , testCase "packageName" $ "base" @=? gpackageName @(Maybe Int)+ , testCase "packageName" $ maybePackageName @=? gpackageName @(Maybe Int) , testCase "isNewtype" $ False @=? gisNewtype @(Maybe Int) , testCase "conName" $ "Just" @=? gconName (Just ()) , testCase "conFixity" $ Prefix @=? gconFixity (Just ())