Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ghc-some for openSUSE:Factory checked in at 2022-10-13 15:44:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ghc-some (Old) and /work/SRC/openSUSE:Factory/.ghc-some.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-some" Thu Oct 13 15:44:13 2022 rev:5 rq:1009713 version:1.0.4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/ghc-some/ghc-some.changes 2022-08-01 21:30:57.737753436 +0200 +++ /work/SRC/openSUSE:Factory/.ghc-some.new.2275/ghc-some.changes 2022-10-13 15:44:47.775048437 +0200 @@ -1,0 +2,14 @@ +Wed Oct 5 08:34:30 UTC 2022 - Peter Simons <[email protected]> + +- Update some to version 1.0.4.1. + # 1.0.4.1 + + - Drop support for GHC before 8.6 + +------------------------------------------------------------------- +Wed Aug 10 17:14:47 UTC 2022 - Peter Simons <[email protected]> + +- Update some to version 1.0.4 revision 1. + Upstream has revised the Cabal build instructions on Hackage. + +------------------------------------------------------------------- Old: ---- some-1.0.4.tar.gz New: ---- some-1.0.4.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ghc-some.spec ++++++ --- /var/tmp/diff_new_pack.G8fHD9/_old 2022-10-13 15:44:48.291049444 +0200 +++ /var/tmp/diff_new_pack.G8fHD9/_new 2022-10-13 15:44:48.295049452 +0200 @@ -18,7 +18,7 @@ %global pkg_name some Name: ghc-%{pkg_name} -Version: 1.0.4 +Version: 1.0.4.1 Release: 0 Summary: Existential type: Some License: BSD-3-Clause ++++++ some-1.0.4.tar.gz -> some-1.0.4.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/some-1.0.4/ChangeLog.md new/some-1.0.4.1/ChangeLog.md --- old/some-1.0.4/ChangeLog.md 2001-09-09 03:46:40.000000000 +0200 +++ new/some-1.0.4.1/ChangeLog.md 2001-09-09 03:46:40.000000000 +0200 @@ -1,3 +1,7 @@ +# 1.0.4.1 + +- Drop support for GHC before 8.6 + # 1.0.4 - Add instances for `(:~~:)` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/some-1.0.4/some.cabal new/some-1.0.4.1/some.cabal --- old/some-1.0.4/some.cabal 2001-09-09 03:46:40.000000000 +0200 +++ new/some-1.0.4.1/some.cabal 2001-09-09 03:46:40.000000000 +0200 @@ -1,5 +1,5 @@ name: some -version: 1.0.4 +version: 1.0.4.1 cabal-version: >=1.10 build-type: Simple author: @@ -24,21 +24,12 @@ If you are unsure which variant to use, use the one in "Data.Some" module. tested-with: - GHC ==7.0.4 - || ==7.2.2 - || ==7.4.2 - || ==7.6.3 - || ==7.8.4 - || ==7.10.3 - || ==8.0.2 - || ==8.2.2 - || ==8.4.4 - || ==8.6.5 + GHC ==8.6.5 || ==8.8.4 || ==8.10.4 - || ==9.0.1 - || ==9.2.3 - || ==9.4.1 + || ==9.0.2 + || ==9.2.4 + || ==9.4.2 extra-source-files: ChangeLog.md @@ -73,17 +64,8 @@ other-modules: Data.GADT.Internal build-depends: - base >=4.3 && <4.17 - , deepseq >=1.3.0.0 && <1.5 - - if !impl(ghc >=8.2) - build-depends: type-equality >=1 && <1.1 - - if !impl(ghc >=8.0) - build-depends: - semigroups >=0.18.5 && <0.21 - , transformers >=0.3 && <0.7 - , transformers-compat >=0.6 && <0.8 + base >=4.12 && <4.18 + , deepseq >=1.4.4.0 && <1.5 if impl(ghc >=9.0) -- these flags may abort compilation with GHC-8.10 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/some-1.0.4/src/Data/GADT/Compare.hs new/some-1.0.4.1/src/Data/GADT/Compare.hs --- old/some-1.0.4/src/Data/GADT/Compare.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/some-1.0.4.1/src/Data/GADT/Compare.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,9 +1,5 @@ {-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 704 {-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >= 702 -{-# LANGUAGE Trustworthy #-} -#endif module Data.GADT.Compare ( -- * Equality GEq (..), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/some-1.0.4/src/Data/GADT/DeepSeq.hs new/some-1.0.4.1/src/Data/GADT/DeepSeq.hs --- old/some-1.0.4/src/Data/GADT/DeepSeq.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/some-1.0.4.1/src/Data/GADT/DeepSeq.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,43 +1,24 @@ -{-# LANGUAGE CPP #-} -{-# LANGUAGE GADTs #-} -{-# LANGUAGE TypeOperators #-} -#if __GLASGOW_HASKELL__ >= 706 -{-# LANGUAGE PolyKinds #-} -#endif +{-# LANGUAGE CPP #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE Safe #-} +{-# LANGUAGE TypeOperators #-} #if __GLASGOW_HASKELL__ >= 810 {-# LANGUAGE StandaloneKindSignatures #-} #endif -#if (__GLASGOW_HASKELL__ >= 704 && __GLASGOW_HASKELL__ < 707) || __GLASGOW_HASKELL__ >= 801 -{-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >= 702 -{-# LANGUAGE Trustworthy #-} -#endif module Data.GADT.DeepSeq ( GNFData (..), ) where import Data.Functor.Product (Product (..)) import Data.Functor.Sum (Sum (..)) -import Data.Type.Equality ((:~:) (..)) - -#if MIN_VERSION_base(4,6,0) -import GHC.Generics ((:+:) (..), (:*:) (..)) -#endif +import Data.Type.Equality ((:~:) (..), (:~~:) (..)) +import GHC.Generics ((:*:) (..), (:+:) (..)) -#if MIN_VERSION_base(4,9,0) -#if MIN_VERSION_base(4,10,0) -import Data.Type.Equality ((:~~:) (..)) -#else -import Data.Type.Equality.Hetero ((:~~:) (..)) -#endif -#endif - -#if MIN_VERSION_base(4,10,0) -import qualified Type.Reflection as TR -#endif +import qualified Type.Reflection as TR #if __GLASGOW_HASKELL__ >= 810 -import Data.Kind (Type, Constraint) +import Data.Kind (Constraint, Type) #endif #if __GLASGOW_HASKELL__ >= 810 @@ -54,27 +35,21 @@ grnf (InL x) = grnf x grnf (InR y) = grnf y -#if MIN_VERSION_base(4,6,0) instance (GNFData a, GNFData b) => GNFData (a :*: b) where grnf (a :*: b) = grnf a `seq` grnf b instance (GNFData a, GNFData b) => GNFData (a :+: b) where grnf (L1 x) = grnf x grnf (R1 y) = grnf y -#endif -- | @since 1.0.3 instance GNFData ((:~:) a) where grnf Refl = () -#if MIN_VERSION_base(4,9,0) -- | @since 1.0.4 instance GNFData ((:~~:) a) where grnf HRefl = () -#endif -#if MIN_VERSION_base(4,10,0) -- | @since 1.0.3 instance GNFData TR.TypeRep where grnf = TR.rnfTypeRep -#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/some-1.0.4/src/Data/GADT/Internal.hs new/some-1.0.4.1/src/Data/GADT/Internal.hs --- old/some-1.0.4/src/Data/GADT/Internal.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/some-1.0.4.1/src/Data/GADT/Internal.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,68 +1,37 @@ -{-# LANGUAGE CPP #-} -{-# LANGUAGE DeriveDataTypeable #-} -{-# LANGUAGE GADTs #-} -{-# LANGUAGE RankNTypes #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE TypeOperators #-} -#if __GLASGOW_HASKELL__ >= 706 -{-# LANGUAGE PolyKinds #-} -#endif -#if __GLASGOW_HASKELL__ >= 708 -{-# LANGUAGE RoleAnnotations #-} -#endif +{-# LANGUAGE CPP #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE RoleAnnotations #-} +{-# LANGUAGE Safe #-} +{-# LANGUAGE ScopedTypeVariables #-} +{-# LANGUAGE TypeOperators #-} #if __GLASGOW_HASKELL__ >= 810 {-# LANGUAGE StandaloneKindSignatures #-} #endif -#if __GLASGOW_HASKELL__ >= 800 && __GLASGOW_HASKELL__ < 805 -{-# LANGUAGE TypeInType #-} -#endif -#if (__GLASGOW_HASKELL__ >= 704 && __GLASGOW_HASKELL__ < 707) || __GLASGOW_HASKELL__ >= 801 -{-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >= 702 -{-# LANGUAGE Trustworthy #-} -#endif module Data.GADT.Internal where import Control.Applicative (Applicative (..)) import Data.Functor.Product (Product (..)) import Data.Functor.Sum (Sum (..)) +import Data.Kind (Type) import Data.Maybe (isJust, isNothing) import Data.Monoid (Monoid (..)) import Data.Semigroup (Semigroup (..)) -import Data.Type.Equality ((:~:) (..)) -#if MIN_VERSION_base(4,6,0) -import GHC.Generics ((:+:) (..), (:*:) (..)) -#endif - -#if __GLASGOW_HASKELL__ >=708 -import Data.Typeable (Typeable) -#endif - -#if MIN_VERSION_base(4,9,0) -#if MIN_VERSION_base(4,10,0) -import Data.Type.Equality ((:~~:) (..)) -#else -import Data.Type.Equality.Hetero ((:~~:) (..)) -#endif -#endif +import Data.Type.Equality (TestEquality (..), (:~:) (..), (:~~:) (..)) +import GHC.Generics ((:*:) (..), (:+:) (..)) -#if MIN_VERSION_base(4,10,0) -import Data.Type.Equality (testEquality) -import qualified Type.Reflection as TR -#endif - -#if __GLASGOW_HASKELL__ >= 800 -import Data.Kind (Type) -#endif +import qualified Type.Reflection as TR #if __GLASGOW_HASKELL__ >= 810 import Data.Kind (Constraint) #endif -- $setup --- >>> :set -XKindSignatures -XGADTs -XTypeOperators +-- >>> :set -XKindSignatures -XGADTs -XTypeOperators -XStandaloneDeriving -XQuantifiedConstraints -- >>> import Data.Type.Equality -- >>> import Data.Functor.Sum +-- >>> import Data.Maybe (isJust, isNothing) -- >>> import GHC.Generics -- |'Show'-like class for 1-type-parameter GADTs. @GShow t => ...@ is equivalent to something @@ -92,16 +61,12 @@ instance GShow ((:~:) a) where gshowsPrec _ Refl = showString "Refl" -#if MIN_VERSION_base(4,9,0) -- | @since 1.0.4 instance GShow ((:~~:) a) where gshowsPrec _ HRefl = showString "HRefl" -#endif -#if MIN_VERSION_base(4,10,0) instance GShow TR.TypeRep where gshowsPrec = showsPrec -#endif -- -- | >>> gshow (InL Refl :: Sum ((:~:) Int) ((:~:) Bool) Int) @@ -120,7 +85,6 @@ . showChar ' ' . gshowsPrec 11 y -#if MIN_VERSION_base(4,6,0) -- -- | >>> gshow (L1 Refl :: ((:~:) Int :+: (:~:) Bool) Int) -- "L1 Refl" @@ -140,7 +104,6 @@ $ gshowsPrec 6 x . showString " :*: " . gshowsPrec 6 y -#endif -- |@GReadS t@ is equivalent to @ReadS (forall b. (forall a. t a -> b) -> b)@, which is -- in turn equivalent to @ReadS (Exists t)@ (with @data Exists t where Exists :: t a -> Exists t@) @@ -194,14 +157,12 @@ | ("Refl", t) <- lex s ]) -#if MIN_VERSION_base(4,9,0) -- | @since 1.0.4 instance k1 ~ k2 => GRead ((:~~:) (a :: k1) :: k2 -> Type) where greadsPrec _ = readParen False (\s -> [ (S $ \k -> k (HRefl :: a :~~: a), t) | ("HRefl", t) <- lex s ]) -#endif instance (GRead a, GRead b) => GRead (Sum a b) where greadsPrec d s = @@ -215,7 +176,6 @@ | ("InR", s2) <- lex s1 , (r, t) <- greadsPrec 11 s2 ]) s -#if MIN_VERSION_base(4,6,0) -- | @since 1.0.4 instance (GRead a, GRead b) => GRead (a :+: b) where greadsPrec d s = @@ -228,7 +188,6 @@ (\s1 -> [ (S $ \k -> withSome r (k . R1), t) | ("R1", s2) <- lex s1 , (r, t) <- greadsPrec 11 s2 ]) s -#endif ------------------------------------------------------------------------------- -- GEq @@ -237,6 +196,75 @@ -- |A class for type-contexts which contain enough information -- to (at least in some cases) decide the equality of types -- occurring within them. +-- +-- This class is sometimes confused with 'TestEquality' from base. +-- 'TestEquality' only checks /type equality/. +-- +-- Consider +-- +-- >>> data Tag a where TagInt1 :: Tag Int; TagInt2 :: Tag Int +-- +-- The correct @'TestEquality' Tag@ instance is +-- +-- >>> :{ +-- instance TestEquality Tag where +-- testEquality TagInt1 TagInt1 = Just Refl +-- testEquality TagInt1 TagInt2 = Just Refl +-- testEquality TagInt2 TagInt1 = Just Refl +-- testEquality TagInt2 TagInt2 = Just Refl +-- :} +-- +-- While we can define +-- +-- @ +-- instance 'GEq' Tag where +-- 'geq' = 'testEquality' +-- @ +-- +-- this will mean we probably want to have +-- +-- @ +-- instance 'Eq' Tag where +-- _ '==' _ = True +-- @ +-- +-- /Note:/ In the future version of @some@ package (to be released around GHC-9.6 / 9.8) the +-- @forall a. Eq (f a)@ constraint will be added as a constraint to 'GEq', +-- with a law relating 'GEq' and 'Eq': +-- +-- @ +-- 'geq' x y = Just Refl ??? x == y = True ??? (x :: f a) (y :: f b) +-- x == y ??? isJust ('geq' x y) ??? (x, y :: f a) +-- @ +-- +-- So, the more useful @'GEq' Tag@ instance would differentiate between +-- different constructors: +-- +-- >>> :{ +-- instance GEq Tag where +-- geq TagInt1 TagInt1 = Just Refl +-- geq TagInt1 TagInt2 = Nothing +-- geq TagInt2 TagInt1 = Nothing +-- geq TagInt2 TagInt2 = Just Refl +-- :} +-- +-- which is consistent with a derived 'Eq' instance for 'Tag' +-- +-- >>> deriving instance Eq (Tag a) +-- +-- Note that even if @a ~ b@, the @'geq' (x :: f a) (y :: f b)@ may +-- be 'Nothing' (when value terms are inequal). +-- +-- The consistency of 'GEq' and 'Eq' is easy to check by exhaustion: +-- +-- >>> let checkFwdGEq :: (forall a. Eq (f a), GEq f) => f a -> f b -> Bool; checkFwdGEq x y = case geq x y of Just Refl -> x == y; Nothing -> True +-- >>> (checkFwdGEq TagInt1 TagInt1, checkFwdGEq TagInt1 TagInt2, checkFwdGEq TagInt2 TagInt1, checkFwdGEq TagInt2 TagInt2) +-- (True,True,True,True) +-- +-- >>> let checkBwdGEq :: (Eq (f a), GEq f) => f a -> f a -> Bool; checkBwdGEq x y = if x == y then isJust (geq x y) else isNothing (geq x y) +-- >>> (checkBwdGEq TagInt1 TagInt1, checkBwdGEq TagInt1 TagInt2, checkBwdGEq TagInt2 TagInt1, checkBwdGEq TagInt2 TagInt2) +-- (True,True,True,True) +-- #if __GLASGOW_HASKELL__ >= 810 type GEq :: (k -> Type) -> Constraint #endif @@ -280,11 +308,9 @@ instance GEq ((:~:) a) where geq (Refl :: a :~: b) (Refl :: a :~: c) = Just (Refl :: b :~: c) -#if MIN_VERSION_base(4,9,0) -- | @since 1.0.4 instance GEq ((:~~:) a) where geq (HRefl :: a :~~: b) (HRefl :: a :~~: c) = Just (Refl :: b :~: c) -#endif instance (GEq a, GEq b) => GEq (Sum a b) where geq (InL x) (InL y) = geq x y @@ -297,7 +323,6 @@ Refl <- geq y y' return Refl -#if MIN_VERSION_base(4,6,0) -- | @since 1.0.4 instance (GEq f, GEq g) => GEq (f :+: g) where geq (L1 x) (L1 y) = geq x y @@ -310,12 +335,9 @@ Refl <- geq x x' Refl <- geq y y' return Refl -#endif -#if MIN_VERSION_base(4,10,0) instance GEq TR.TypeRep where geq = testEquality -#endif ------------------------------------------------------------------------------- -- GCompare @@ -357,9 +379,6 @@ GLT :: GOrdering a b GEQ :: GOrdering t t GGT :: GOrdering a b -#if __GLASGOW_HASKELL__ >=708 - deriving Typeable -#endif -- |TODO: Think of a better name -- @@ -402,13 +421,10 @@ instance GCompare ((:~:) a) where gcompare Refl Refl = GEQ -#if MIN_VERSION_base(4,9,0) -- | @since 1.0.4 instance GCompare ((:~~:) a) where gcompare HRefl HRefl = GEQ -#endif -#if MIN_VERSION_base(4,10,0) instance GCompare TR.TypeRep where gcompare t1 t2 = case testEquality t1 t2 of @@ -420,7 +436,6 @@ EQ -> error "impossible: 'testEquality' and 'compare' \ \are inconsistent for TypeRep; report this \ \as a GHC bug" -#endif defaultCompare :: GCompare f => f a -> f b -> Ordering defaultCompare x y = weakenOrdering (gcompare x y) @@ -440,7 +455,6 @@ GEQ -> GEQ GGT -> GGT -#if MIN_VERSION_base(4,6,0) -- | @since 1.0.4 instance (GCompare f, GCompare g) => GCompare (f :+: g) where gcompare (L1 x) (L1 y) = gcompare x y @@ -457,7 +471,6 @@ GLT -> GLT GEQ -> GEQ GGT -> GGT -#endif ------------------------------------------------------------------------------- -- Some @@ -513,9 +526,7 @@ withSome :: forall r. (forall a. tag a -> r) -> r } -#if __GLASGOW_HASKELL__ >= 708 type role Some representational -#endif -- | Constructor. mkSome :: tag a -> Some tag diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/some-1.0.4/src/Data/GADT/Show.hs new/some-1.0.4.1/src/Data/GADT/Show.hs --- old/some-1.0.4/src/Data/GADT/Show.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/some-1.0.4.1/src/Data/GADT/Show.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,9 +1,5 @@ {-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 704 {-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >= 702 -{-# LANGUAGE Trustworthy #-} -#endif module Data.GADT.Show ( -- * Showing GShow (..), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/some-1.0.4/src/Data/Some/Church.hs new/some-1.0.4.1/src/Data/Some/Church.hs --- old/some-1.0.4/src/Data/Some/Church.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/some-1.0.4.1/src/Data/Some/Church.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,9 +1,5 @@ {-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 704 {-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >= 702 -{-# LANGUAGE Trustworthy #-} -#endif module Data.Some.Church ( Some(..), mkSome, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/some-1.0.4/src/Data/Some/GADT.hs new/some-1.0.4.1/src/Data/Some/GADT.hs --- old/some-1.0.4/src/Data/Some/GADT.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/some-1.0.4.1/src/Data/Some/GADT.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,20 +1,12 @@ -{-# LANGUAGE CPP #-} -{-# LANGUAGE GADTs #-} -{-# LANGUAGE RankNTypes #-} -#if __GLASGOW_HASKELL__ >= 706 -{-# LANGUAGE PolyKinds #-} -#endif -#if __GLASGOW_HASKELL__ >= 708 -{-# LANGUAGE RoleAnnotations #-} -#endif +{-# LANGUAGE CPP #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE RankNTypes #-} +{-# LANGUAGE RoleAnnotations #-} +{-# LANGUAGE Safe #-} #if __GLASGOW_HASKELL__ >= 810 {-# LANGUAGE StandaloneKindSignatures #-} #endif -#if __GLASGOW_HASKELL__ >= 704 -{-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >= 702 -{-# LANGUAGE Trustworthy #-} -#endif module Data.Some.GADT ( Some(Some), mkSome, @@ -91,9 +83,7 @@ data Some tag where Some :: tag a -> Some tag -#if __GLASGOW_HASKELL__ >= 708 type role Some representational -#endif -- | Constructor. mkSome :: tag a -> Some tag diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/some-1.0.4/src/Data/Some/Newtype.hs new/some-1.0.4.1/src/Data/Some/Newtype.hs --- old/some-1.0.4/src/Data/Some/Newtype.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/some-1.0.4.1/src/Data/Some/Newtype.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,27 +1,15 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE RankNTypes #-} -#if __GLASGOW_HASKELL__ >= 801 {-# LANGUAGE PatternSynonyms #-} -#endif -#if __GLASGOW_HASKELL__ >= 708 {-# LANGUAGE RoleAnnotations #-} -#endif -#if __GLASGOW_HASKELL__ >= 706 {-# LANGUAGE PolyKinds #-} -#endif +{-# LANGUAGE Trustworthy #-} #if __GLASGOW_HASKELL__ >= 810 {-# LANGUAGE StandaloneKindSignatures #-} #endif -#if __GLASGOW_HASKELL__ >= 702 -{-# LANGUAGE Trustworthy #-} -#endif module Data.Some.Newtype ( -#if __GLASGOW_HASKELL__ >= 801 Some(Some), -#else - Some, -#endif mkSome, withSome, withSomeM, @@ -96,23 +84,12 @@ #endif newtype Some tag = UnsafeSome (tag Any) -#if __GLASGOW_HASKELL__ >= 708 type role Some representational -#endif -#if __GLASGOW_HASKELL__ >= 801 {-# COMPLETE Some #-} pattern Some :: tag a -> Some tag -#if __GLASGOW_HASKELL__ >= 802 pattern Some x <- UnsafeSome x where Some x = UnsafeSome ((unsafeCoerce :: tag a -> tag Any) x) -#else --- There was a bug type checking pattern synonyms that prevented the --- obvious thing from working. -pattern Some x <- UnsafeSome ((unsafeCoerce :: tag Any -> tag a) -> x) - where Some x = UnsafeSome ((unsafeCoerce :: tag a -> tag Any) x) -#endif -#endif -- | Constructor. mkSome :: tag a -> Some tag diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/some-1.0.4/src/Data/Some.hs new/some-1.0.4.1/src/Data/Some.hs --- old/some-1.0.4/src/Data/Some.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/some-1.0.4.1/src/Data/Some.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,18 +1,10 @@ {-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 704 {-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >= 702 -{-# LANGUAGE Trustworthy #-} -#endif -- | An existential type. -- -- The constructor is exported only on GHC-8 and later. module Data.Some ( -#if __GLASGOW_HASKELL__ >= 801 Some(Some), -#else -Some, -#endif mkSome, withSome, withSomeM, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/some-1.0.4/test/HKD.hs new/some-1.0.4.1/test/HKD.hs --- old/some-1.0.4/test/HKD.hs 2001-09-09 03:46:40.000000000 +0200 +++ new/some-1.0.4.1/test/HKD.hs 2001-09-09 03:46:40.000000000 +0200 @@ -1,4 +1,3 @@ -{-# LANGUAGE CPP #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE TypeOperators #-} @@ -22,13 +21,8 @@ G.Some mx -> () <$ mx newtype_ftraverse_ :: (FFoldable t, Applicative m) => (forall a. f a -> m b) -> t f -> m () -#if __GLASGOW_HASKELL__ >= 801 newtype_ftraverse_ k tf = case ffoldMap (N.Some . k) tf of N.Some mx -> () <$ mx -#else -newtype_ftraverse_ k tf = N.withSome (ffoldMap (N.mkSome . k) tf) $ - \mx -> () <$ mx -#endif church_ftraverse_ :: (FFoldable t, Applicative m) => (forall a. f a -> m b) -> t f -> m () church_ftraverse_ k tf = C.withSome (ffoldMap (C.mkSome . k) tf) $
