Hello community,

here is the log from the commit of package ghc-th-lift for openSUSE:Leap:15.2 
checked in at 2020-02-19 18:41:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/ghc-th-lift (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.ghc-th-lift.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-th-lift"

Wed Feb 19 18:41:40 2020 rev:13 rq:771490 version:0.8.1

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/ghc-th-lift/ghc-th-lift.changes        
2020-01-15 15:02:41.313818346 +0100
+++ /work/SRC/openSUSE:Leap:15.2/.ghc-th-lift.new.26092/ghc-th-lift.changes     
2020-02-19 18:41:41.170225320 +0100
@@ -1,0 +2,29 @@
+Sun Dec  8 03:03:28 UTC 2019 - [email protected]
+
+- Update th-lift to version 0.8.1.
+  Upstream has edited the change log file since the last release in
+  a non-trivial way, i.e. they did more than just add a new entry
+  at the top. You can review the file at:
+  http://hackage.haskell.org/package/th-lift-0.8.1/src/CHANGELOG.md
+
+-------------------------------------------------------------------
+Fri Nov  8 16:14:58 UTC 2019 - Peter Simons <[email protected]>
+
+- Drop obsolete group attributes.
+
+-------------------------------------------------------------------
+Fri May 10 13:28:40 UTC 2019 - [email protected]
+
+- Update th-lift to version 0.8.0.1.
+  Upstream has not updated the file "CHANGELOG.md" since the last
+  release.
+
+-------------------------------------------------------------------
+Tue Apr 30 09:23:03 UTC 2019 - [email protected]
+
+- Update th-lift to version 0.8.
+  Upstream has renamed and modified the change log file(s) in this
+  release. Unfortunately, the automatic updater cannot reliable
+  determine relevant entries for this release.
+
+-------------------------------------------------------------------

Old:
----
  th-lift-0.7.11.tar.gz

New:
----
  th-lift-0.8.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-th-lift.spec ++++++
--- /var/tmp/diff_new_pack.JWf4Q1/_old  2020-02-19 18:41:41.582225826 +0100
+++ /var/tmp/diff_new_pack.JWf4Q1/_new  2020-02-19 18:41:41.582225826 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package ghc-th-lift
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,11 +19,10 @@
 %global pkg_name th-lift
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        0.7.11
+Version:        0.8.1
 Release:        0
 Summary:        Derive Template Haskell's Lift class for datatypes
 License:        (BSD-3-Clause OR GPL-2.0-only)
-Group:          Development/Libraries/Haskell
 URL:            https://hackage.haskell.org/package/%{pkg_name}
 Source0:        
https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
 BuildRequires:  ghc-Cabal-devel
@@ -32,11 +31,25 @@
 BuildRequires:  ghc-th-abstraction-devel
 
 %description
-Derive Template Haskell's Lift class for datatypes.
+Derive Template Haskell's 'Lift' class for datatypes using 'TemplateHaskell'.
+The functionality in this package has largely been subsumed by the 'DeriveLift'
+language extension, which is available in GHC 8.0 and later versions.
+This package can still be useful as a uniform way to derive 'Lift' instances
+that is backwards-compatible with older GHCs.
+
+The following libraries are related:
+
+* The <https://hackage.haskell.org/package/th-orphans th-orphans> package
+provides instances for 'template-haskell' syntax types.
+
+* The <http://hackage.haskell.org/package/th-lift-instances th-lift-instances>
+package provides 'Lift' instances for types in 'base', 'text', 'bytestring',
+'vector', etc. Some of these instances are only provided for old versions of
+their respective libraries, as the same 'Lift' instances are also present
+upstream on newer versions.
 
 %package devel
 Summary:        Haskell %{pkg_name} library development files
-Group:          Development/Libraries/Haskell
 Requires:       %{name} = %{version}-%{release}
 Requires:       ghc-compiler = %{ghc_version}
 Requires(post): ghc-compiler = %{ghc_version}
@@ -69,6 +82,6 @@
 %license GPL-2
 
 %files devel -f %{name}-devel.files
-%doc Changelog
+%doc CHANGELOG.md
 
 %changelog

++++++ th-lift-0.7.11.tar.gz -> th-lift-0.8.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/th-lift-0.7.11/CHANGELOG.md 
new/th-lift-0.8.1/CHANGELOG.md
--- old/th-lift-0.7.11/CHANGELOG.md     1970-01-01 01:00:00.000000000 +0100
+++ new/th-lift-0.8.1/CHANGELOG.md      2001-09-09 03:46:40.000000000 +0200
@@ -0,0 +1,94 @@
+# Change Log
+
+All notable changes to this project will be documented in this file.
+
+## [0.8.1] - 2019-12-06
+
+* Support GHC 8.10/`template-haskell-2.16`.
+* Derive implementations of `liftTyped` (in addition to `lift`) when using
+  `template-haskell-2.16` or later.
+* Fix a bug in which derived `Lift` instances for data types containing
+  `Addr#` would fail to typecheck.
+
+## [0.8.0.1] - 2019-05-09
+
+* Support GHC 8.8/`template-haskell-2.15`.
+
+## [0.8] - 2019-04-26
+
+* Remove `Lift ()`, `Ratio`, `Identity` and `Const ()` instances.
+  These are now provided in [`th-lift-instances` 
package](http://hackage.haskell.org/package/th-lift-instances)
+- Use `TemplateHaskellQuotes` where available
+
+## [0.7.11] - 2018-08-27
+
+* Support for GHC 8.6.
+
+## [0.7.10] - 2018-02-01
+
+* Add support for data families
+
+## [0.7.9] - 2018-02-01
+
+* `Lift` instances for `Identity` and `Const`.
+
+## [0.7.8] - 2018-02-01
+
+* GHC 8.4 compatibility.
+
+## [0.7.7] - 2015-04-19
+
+* GHC 8.2 compatibility.
+
+## [0.7.6] - 2015-01-18
+
+* GHC 8.1 compatibility.
+
+## [0.7.5] - 2015-11-19
+
+* Added `makeLift`, for cases when it's necessary to write the
+  instance manually. (Thanks to Ryan Scott).
+* Support empty datatypes and unboxed types.
+
+## [0.7] - 2014-12-07
+
+* Support GHC 7.9 and hopefully 7.10, thanks to Richard Eisenberg.
+* On versions of GHC that support role inference, don't constrain
+  phantom type variables.
+* Get rid of some orphan instances when using GHC >= 7.9.
+
+## [0.6] - 2013-12-09
+
+* Support GHC 7.8, thanks to Michael Snoyberg.
+* Support existentially quantified type variables in datatype
+  declarations.
+* Handle exotic kinds properly.
+
+## [0.5.2] - 2010-09-19
+
+* Support older GHCs and Cabal, thanks to Ben Millwood.
+
+## [0.5] - 2010-08-05
+
+* Support for contexts in datatypes, thanks to Ben Millwood.
+* `deriveLiftWith` becomes `deriveLift'` and takes an `Info`
+  structure rather than a custom reification function.
+* Add `deriveLiftMany` to derive many `Lift` instances in one go.
+
+## [0.4] - 2010-08-02
+
+* Add support for newtypes and records syntax, thanks to a patch by
+  Ben Millwood.
+* Add support for infix constructors.
+* `deriveLift` returns a list of declarations.
+* New `deriveLiftWith` function with custom reification, following
+  a feature request by Jonas Duregård.
+
+## [0.3] - 2010-03-24
+
+* Port to Template Haskell 2.4.
+* Maintainer is now Mathieu Boespflug.
+
+## [0.2] - 2006-09-06
+
+Initial release by Ian Lynagh.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/th-lift-0.7.11/COPYING new/th-lift-0.8.1/COPYING
--- old/th-lift-0.7.11/COPYING  2015-11-15 20:17:55.000000000 +0100
+++ new/th-lift-0.8.1/COPYING   2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,6 @@
 
-Copyright (c) Ian Lynagh, 2006.
+Copyright (c) Ian Lynagh, 2006; Mathieu Boespflug, 2010-2019; Ryan Scott
+2019.
 
 This package can be used under either the GPL v2, as in ./GPL-2, or the
 3-clause BSD, as in ./BSD3, license.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/th-lift-0.7.11/Changelog new/th-lift-0.8.1/Changelog
--- old/th-lift-0.7.11/Changelog        2016-01-18 18:29:59.000000000 +0100
+++ new/th-lift-0.8.1/Changelog 1970-01-01 01:00:00.000000000 +0100
@@ -1,52 +0,0 @@
-2015-01-18  Mathieu Boespflug <[email protected]>
-
-       * GHC 8.1 compatibility.
-
-2015-11-19  Mathieu Boespflug <[email protected]>
-
-       * Added makeLift, for cases when it's necessary to write the
-       instance manually. (Thanks to Ryan Scott).
-       * Support empty datatypes and unboxed types.
-
-2014-12-07  Mathieu Boespflug <[email protected]>
-
-       * Support GHC 7.9 and hopefully 7.10, thanks to Richard Eisenberg.
-       * On versions of GHC that support role inference, don't constrain
-       phantom type variables.
-       * Get rid of some orphan instances when using GHC >= 7.9.
-
-2013-12-09  Mathieu Boespflug <[email protected]>
-
-       * Support GHC 7.8, thanks to Michael Snoyberg.
-       * Support existentially quantified type variables in datatype
-       declarations.
-       * Handle exotic kinds properly.
-
-2010-09-19  Mathieu Boespflug <[email protected]>
-
-       * Support older GHCs and Cabal, thanks to Ben Millwood.
-
-2010-08-05  Mathieu Boespflug <[email protected]>
-
-       * Support for contexts in datatypes, thanks to Ben Millwood.
-       * deriveLiftWith becomes deriveLift' and takes an Info structure
-       rather than a custom reification function.
-       * Add deriveLiftMany to derive many Lift instances in one go.
-
-2010-08-02  Mathieu Boespflug <[email protected]>
-
-       * Add support for newtypes and records syntax, thanks to a patch
-       by Ben Millwood.
-       * Add support for infix constructors.
-       * deriveLift returns a list of declarations.
-       * New deriveLiftWith function with custom reification, following a
-       feature request by Jonas Duregård.
-
-2010-03-24  Mathieu Boespflug <[email protected]>
-
-       * Port to Template Haskell 2.4.
-       * Maintainer is now Mathieu Boespflug.
-
-2006-09-06  Ian Lynagh <[email protected]>
-
-       * Initial release.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/th-lift-0.7.11/src/Language/Haskell/TH/Lift.hs 
new/th-lift-0.8.1/src/Language/Haskell/TH/Lift.hs
--- old/th-lift-0.7.11/src/Language/Haskell/TH/Lift.hs  2018-05-14 
22:12:56.000000000 +0200
+++ new/th-lift-0.8.1/src/Language/Haskell/TH/Lift.hs   2001-09-09 
03:46:40.000000000 +0200
@@ -1,8 +1,12 @@
 {-# LANGUAGE CPP #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE MagicHash #-}
-{-# LANGUAGE TemplateHaskell #-}
 {-# LANGUAGE TypeSynonymInstances #-}
+#if __GLASGOW_HASKELL__ >= 800
+{-# LANGUAGE TemplateHaskellQuotes #-}
+#else
+{-# LANGUAGE TemplateHaskell #-}
+#endif
 
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 
@@ -16,10 +20,6 @@
   , Lift(..)
   ) where
 
-#if !(MIN_VERSION_template_haskell(2,4,0))
-import Data.PackedString (PackedString, packString, unpackPS)
-#endif /* MIN_VERSION_template_haskell(2,4,0) */
-
 import GHC.Base (unpackCString#)
 import GHC.Exts (Double(..), Float(..), Int(..), Word(..))
 import GHC.Prim (Addr#, Double#, Float#, Int#, Word#)
@@ -28,16 +28,9 @@
 import GHC.Prim (Char#)
 #endif /* !(MIN_VERSION_template_haskell(2,11,0)) */
 
-import Control.Applicative
 #if MIN_VERSION_template_haskell(2,8,0)
 import Data.Char (ord)
 #endif /* !(MIN_VERSION_template_haskell(2,8,0)) */
-#if MIN_VERSION_base(4,8,0)
-import Data.Functor.Identity
-#endif
-#if !(MIN_VERSION_template_haskell(2,10,0))
-import Data.Ratio (Ratio)
-#endif /* !(MIN_VERSION_template_haskell(2,10,0)) */
 import Language.Haskell.TH
 import Language.Haskell.TH.Datatype
 import qualified Language.Haskell.TH.Lib as Lib (starK)
@@ -47,7 +40,28 @@
 import Data.Maybe (catMaybes)
 #endif /* MIN_VERSION_template_haskell(2,9,0) */
 
--- | Derive Lift instances for the given datatype.
+-- | Derive a 'Lift' instance for the given datatype.
+--
+-- Note that 'deriveLift' uses a very simple technique for inferring the
+-- instance context: it simply takes all visible type variables from the data
+-- type declaration and adds a 'Lift' constraint for each one. For instance,
+-- in the following example:
+--
+-- @
+-- data Foo a b = ...
+-- $(deriveLift ''Foo)
+-- @
+--
+-- The following instance would be generated:
+--
+-- @
+-- instance (Lift a, Lift b) => Lift (Foo a b) where ...
+-- @
+--
+-- This will not work in all situations, however. For instance, there could
+-- conceivably be type variables that are not of the appropriate kind. For
+-- these other situations, the 'makeLift' function can provide a more
+-- fine-grained approach that allows specifying the instance context precisely.
 deriveLift :: Name -> Q [Dec]
 #if MIN_VERSION_template_haskell(2,9,0)
 deriveLift name = do
@@ -58,7 +72,7 @@
 deriveLift = fmap (:[]) . deriveLiftOne <=< reifyDatatype
 #endif
 
--- | Derive Lift instances for many datatypes.
+-- | Derive 'Lift' instances for many datatypes.
 deriveLiftMany :: [Name] -> Q [Dec]
 #if MIN_VERSION_template_haskell(2,9,0)
 deriveLiftMany names = do
@@ -69,7 +83,7 @@
 deriveLiftMany = mapM deriveLiftOne <=< mapM reifyDatatype
 #endif
 
--- | Obtain Info values through a custom reification function. This is useful
+-- | Obtain 'Info' values through a custom reification function. This is useful
 -- when generating instances for datatypes that have not yet been declared.
 #if MIN_VERSION_template_haskell(2,9,0)
 deriveLift' :: [Role] -> Info -> Q [Dec]
@@ -94,6 +108,9 @@
 -- instance Lift (f (Fix f)) => Lift (Fix f) where
 --   lift = $(makeLift ''Fix)
 -- @
+--
+-- This can be useful when 'deriveLift' is not clever enough to infer the
+-- correct instance context, such as in the example above.
 makeLift :: Name -> Q Exp
 makeLift = makeLiftInternal <=< reifyDatatype
 
@@ -125,7 +142,11 @@
 #endif
       instanceD (ctxt dcx phtys tys)
                 (conT ''Lift `appT` typ n tys)
-                [funD 'lift [clause [] (normalB (makeLiftOne n cons)) []]]
+                [ funD 'lift [clause [] (normalB (makeLiftOne n cons)) []]
+#if MIN_VERSION_template_haskell(2,16,0)
+                , funD 'liftTyped [clause [] (normalB [| unsafeTExpCoerce . 
lift |]) []]
+#endif
+                ]
     typ n = foldl appT (conT n) . map unKind
     -- Only consider *-kinded type variables, because Lift instances cannot
     -- meaningfully be given to types of other kinds. Further, filter out type
@@ -155,7 +176,7 @@
 consMatches :: Name -> [ConstructorInfo] -> [Q Match]
 consMatches n [] = [match wildP (normalB e) []]
   where
-    e = [| errorQExp $(stringE ("Can't lift value of empty datatype " ++ 
nameBase n)) |]
+    e = varE 'errorQExp `appE` (stringE $ "Can't lift value of empty datatype 
" ++ nameBase n)
 consMatches _ cons = concatMap doCons cons
 
 doCons :: ConstructorInfo -> [Q Match]
@@ -167,10 +188,10 @@
     let con = [| conE c |]
     case (variant, ns, ts) of
       (InfixConstructor, [x0, x1], [t0, t1]) ->
-        let e = [| infixApp $(liftVar x0 t0) $con $(liftVar x1 t1) |]
+        let e = varE 'infixApp `appE` liftVar x0 t0 `appE` con `appE` liftVar 
x1 t1
         in match (infixP (varP x0) c (varP x1)) (normalB e) []
       (_, _, _) ->
-        let e = foldl (\e1 e2 -> [| appE $e1 $e2 |]) con $ zipWith liftVar ns 
ts
+        let e = foldl (\e1 e2 -> varE 'appE `appE` e1 `appE` e2) con $ zipWith 
liftVar ns ts
         in match (conP c (map varP ns)) (normalB e) []
 
 #if MIN_VERSION_template_haskell(2,9,0)
@@ -186,31 +207,43 @@
 liftVar :: Name -> Type -> Q Exp
 liftVar varName (ConT tyName)
 #if MIN_VERSION_template_haskell(2,8,0)
-  | tyName == ''Addr#   = [| litE (stringPrimL (map (fromIntegral . ord)
-                                                    (unpackCString# $var))) |]
+  | tyName == ''Addr#   = apps
+    [ varE 'litE, varE 'stringPrimL
+    , varE 'map `appE`
+        infixApp (varE 'fromIntegral) (varE '(.)) (varE 'ord)
+    , varE 'unpackCString# ]
 #else /* !(MIN_VERSION_template_haskell(2,8,0)) */
-  | tyName == ''Addr#   = [| litE (stringPrimL (unpackCString# $var))       |]
+  | tyName == ''Addr#   = apps
+    [ varE 'litE, varE 'stringPrimL, varE 'unpackCString# ]
 #endif
 #if MIN_VERSION_template_haskell(2,11,0)
-  | tyName == ''Char#   = [| litE (charPrimL               (C# $var))  |]
+  | tyName == ''Char#   = apps [ varE 'litE, varE 'charPrimL, conE 'C# ]
 #endif  /* !(MIN_VERSION_template_haskell(2,11,0)) */
-  | tyName == ''Double# = [| litE (doublePrimL (toRational (D# $var))) |]
-  | tyName == ''Float#  = [| litE (floatPrimL  (toRational (F# $var))) |]
-  | tyName == ''Int#    = [| litE (intPrimL    (toInteger  (I# $var))) |]
-  | tyName == ''Word#   = [| litE (wordPrimL   (toInteger  (W# $var))) |]
+  | tyName == ''Double# = apps [ varE 'litE, varE 'doublePrimL, varE 
'toRational, conE 'D# ]
+  | tyName == ''Float#  = apps [ varE 'litE, varE 'floatPrimL,  varE 
'toRational, conE 'F# ]
+  | tyName == ''Int#    = apps [ varE 'litE, varE 'intPrimL,    varE 
'toInteger,  conE 'I# ]
+  | tyName == ''Word#   = apps [ varE 'litE, varE 'wordPrimL,   varE 
'toInteger,  conE 'W# ]
+
   where
+    apps  = foldr appE var
+
     var :: Q Exp
     var = varE varName
-liftVar varName _ = [| lift $(varE varName) |]
+
+liftVar varName _ = varE 'lift `appE` varE varName
 
 withInfo :: DatatypeInfo
          -> (Cxt -> Name -> [Type] -> [ConstructorInfo] -> Q a)
          -> Q a
 withInfo i f = case i of
-    DatatypeInfo { datatypeContext = dcx
-                 , datatypeName    = n
-                 , datatypeVars    = vs
-                 , datatypeCons    = cons
+    DatatypeInfo { datatypeContext   = dcx
+                 , datatypeName      = n
+#if MIN_VERSION_th_abstraction(0,3,0)
+                 , datatypeInstTypes = vs
+#else
+                 , datatypeVars      = vs
+#endif
+                 , datatypeCons      = cons
                  } ->
       f dcx n vs cons
 
@@ -222,22 +255,28 @@
 
 instance Lift Name where
   lift (Name occName nameFlavour) = [| Name occName nameFlavour |]
+#if MIN_VERSION_template_haskell(2,16,0)
+  liftTyped = unsafeTExpCoerce . lift
+#endif
 
-#if MIN_VERSION_template_haskell(2,4,0)
 instance Lift OccName where
-  lift n = [| mkOccName $(lift $ occString n) |]
+  lift n = [| mkOccName |] `appE` lift (occString n)
+#if MIN_VERSION_template_haskell(2,16,0)
+  liftTyped = unsafeTExpCoerce . lift
+#endif
 
 instance Lift PkgName where
-  lift n = [| mkPkgName $(lift $ pkgString n) |]
+  lift n = [| mkPkgName |] `appE` lift (pkgString n)
+#if MIN_VERSION_template_haskell(2,16,0)
+  liftTyped = unsafeTExpCoerce . lift
+#endif
 
 instance Lift ModName where
-  lift n = [| mkModName $(lift $ modString n) |]
-
-#else /* MIN_VERSION_template_haskell(2,4,0) */
-instance Lift PackedString where
-  lift ps = [| packString $(lift $ unpackPS ps) |]
+  lift n = [| mkModName |] `appE` lift (modString n)
+#if MIN_VERSION_template_haskell(2,16,0)
+  liftTyped = unsafeTExpCoerce . lift
+#endif
 
-#endif /* MIN_VERSION_template_haskell(2,4,0) */
 instance Lift NameFlavour where
   lift NameS = [| NameS |]
   lift (NameQ modnam) = [| NameQ modnam |]
@@ -252,26 +291,14 @@
 #endif /* __GLASGOW_HASKELL__ < 710 */
   lift (NameG nameSpace' pkgName modnam)
    = [| NameG nameSpace' pkgName modnam |]
+#if MIN_VERSION_template_haskell(2,16,0)
+  liftTyped = unsafeTExpCoerce . lift
+#endif
 
 instance Lift NameSpace where
   lift VarName = [| VarName |]
   lift DataName = [| DataName |]
   lift TcClsName = [| TcClsName |]
-
-#if !(MIN_VERSION_template_haskell(2,10,0))
--- These instances should really go in the template-haskell package.
-
-instance Lift () where
-  lift _ = [| () |]
-
-instance Integral a => Lift (Ratio a) where
-  lift x = return (LitE (RationalL (toRational x)))
-#endif
-
-#if MIN_VERSION_base(4,8,0)
-instance Lift a => Lift (Identity a) where
-  lift = appE (conE 'Identity) . lift . runIdentity
+#if MIN_VERSION_template_haskell(2,16,0)
+  liftTyped = unsafeTExpCoerce . lift
 #endif
-
-instance Lift a => Lift (Const a b) where
-  lift = appE (conE 'Const) . lift . getConst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/th-lift-0.7.11/t/Foo.hs new/th-lift-0.8.1/t/Foo.hs
--- old/th-lift-0.7.11/t/Foo.hs 2018-05-14 22:12:56.000000000 +0200
+++ new/th-lift-0.8.1/t/Foo.hs  2001-09-09 03:46:40.000000000 +0200
@@ -15,6 +15,9 @@
 #endif
 
 import Language.Haskell.TH.Lift
+#if MIN_VERSION_template_haskell(2,16,0)
+import Language.Haskell.TH.Syntax (unsafeTExpCoerce)
+#endif
 
 -- Phantom type parameters can't be dealt with poperly on GHC < 7.8.
 #if MIN_VERSION_template_haskell(2,9,0)
@@ -61,9 +64,42 @@
 $(deriveLift ''Unboxed)
 instance Lift (f (Fix f)) => Lift (Fix f) where
   lift = $(makeLift ''Fix)
+#if MIN_VERSION_template_haskell(2,16,0)
+  liftTyped = unsafeTExpCoerce . lift
+#endif
 
 #if MIN_VERSION_template_haskell(2,7,0)
 $(deriveLift 'FamPrefix1)
 instance (Eq a, Lift a) => Lift (Fam a Bool Bool) where
   lift = $(makeLift 'FamInstBool)
+#if MIN_VERSION_template_haskell(2,16,0)
+  liftTyped = unsafeTExpCoerce . lift
+#endif
+#endif
+
+#if MIN_VERSION_template_haskell(2,16,0)
+-- One can also implement Lift instances (on template-haskell-2.16+) by only
+-- defining liftTyped and using the default definition of lift in terms of
+-- liftTyped.
+newtype Fix2 f = In2 { out2 :: f (Fix2 f) }
+deriving instance Show (f (Fix2 f)) => Show (Fix2 f)
+
+data family   Fam2 a b c
+data instance Fam2 a Int Char
+  = Fam2Prefix1 a Char
+  | Fam2Prefix2 a
+  | Fam2Rec { fam2Field :: a }
+  | a :%%%: a
+  deriving Show
+data instance Fam2 a Bool Bool = Fam2InstBool a Bool
+  deriving Show
+
+$(pure [])
+
+instance Lift (f (Fix2 f)) => Lift (Fix2 f) where
+  liftTyped = unsafeTExpCoerce . $(makeLift ''Fix2)
+instance Lift a => Lift (Fam2 a Int Char) where
+  liftTyped = unsafeTExpCoerce . $(makeLift 'Fam2Prefix1)
+instance (Eq a, Lift a) => Lift (Fam2 a Bool Bool) where
+  liftTyped = unsafeTExpCoerce . $(makeLift 'Fam2InstBool)
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/th-lift-0.7.11/th-lift.cabal 
new/th-lift-0.8.1/th-lift.cabal
--- old/th-lift-0.7.11/th-lift.cabal    2018-08-27 09:06:08.000000000 +0200
+++ new/th-lift-0.8.1/th-lift.cabal     2001-09-09 03:46:40.000000000 +0200
@@ -1,50 +1,63 @@
 Name:               th-lift
-Version:            0.7.11
-Cabal-Version:      >= 1.8
+Version:            0.8.1
+Cabal-Version:      1.12
 License:            BSD3
 License-Files:      COPYING, BSD3, GPL-2
-Copyright:          © 2006 Ian Lynagh, © 2010-2018 Mathieu Boespflug
+Copyright:          © 2006 Ian Lynagh, © 2010-2019 Mathieu Boespflug, © 2019 
Ryan Scott
 Author:             Ian Lynagh
-Maintainer:         Mathieu Boespflug <[email protected]>
-Homepage:           http://github.com/mboes/th-lift
+Maintainer:         Ryan Scott <[email protected]>
+Homepage:           http://github.com/RyanGlScott/th-lift
 Synopsis:           Derive Template Haskell's Lift class for datatypes.
 Description:
-  Derive Template Haskell's Lift class for datatypes.
+  Derive Template Haskell's @Lift@ class for datatypes using @TemplateHaskell@.
+  The functionality in this package has largely been subsumed by the
+  @DeriveLift@ language extension, which is available in GHC 8.0 and later
+  versions. This package can still be useful as a uniform way to derive
+  @Lift@ instances that is backwards-compatible with older GHCs.
+  .
+  The following libraries are related:
+  .
+  * The <https://hackage.haskell.org/package/th-orphans th-orphans> package
+    provides instances for @template-haskell@ syntax types.
+  .
+  * The <http://hackage.haskell.org/package/th-lift-instances 
th-lift-instances>
+    package provides @Lift@ instances for types in @base@, @text@,
+    @bytestring@, @vector@, etc. Some of these instances are only provided for
+    old versions of their respective libraries, as the same @Lift@ instances
+    are also present upstream on newer versions.
 Category:           Language
-Tested-With:        GHC==7.4.2, GHC==7.6.3, GHC==7.8.4, GHC==7.10.2
+Tested-With:        GHC==7.0.4, GHC==7.2.2, GHC==7.4.2, GHC==7.6.3, 
GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.5, 
GHC==8.8.1, GHC==8.10.1
 build-type:         Simple
-Extra-source-files: Changelog
+Extra-source-files: CHANGELOG.md
 
 source-repository head
   type:     git
-  location: git://github.com/mboes/th-lift
+  location: https://github.com/RyanGlScott/th-lift
 
 Library
-  Exposed-modules: Language.Haskell.TH.Lift
-  Extensions:      CPP, TemplateHaskell, MagicHash, TypeSynonymInstances, 
FlexibleInstances
-  Hs-Source-Dirs:  src
-  Build-Depends:   base >= 3 && < 5,
-                   ghc-prim,
-                   th-abstraction >= 0.2.3
-
-  ghc-options:     -Wall
-  if impl(ghc < 6.12)
-    Build-Depends: packedstring == 0.1.*,
-                   template-haskell >= 2.2 && < 2.4
+  Default-Language: Haskell2010
+  Exposed-modules:  Language.Haskell.TH.Lift
+  Other-Extensions: CPP,  MagicHash, TypeSynonymInstances, FlexibleInstances
+  if impl(ghc >= 8.0)
+    Other-Extensions: TemplateHaskellQuotes
   else
-    Build-Depends: template-haskell >= 2.4 && < 2.15
+    Other-Extensions: TemplateHaskell
+  Hs-Source-Dirs:   src
+  Build-Depends:    base              >= 4.3  && < 5,
+                    ghc-prim,
+                    th-abstraction   >= 0.2.3 && < 0.4,
+                    template-haskell >= 2.5   && < 2.17
+  ghc-options:      -Wall
 
 Test-Suite test
+  Default-Language: Haskell2010
   Type:             exitcode-stdio-1.0
   Main-Is:          Test.hs
   Hs-Source-Dirs:   t
   other-modules:    Foo
   ghc-options:      -Wall
-  Build-Depends:    base >= 3 && < 5,
+  Build-Depends:    base,
                     ghc-prim,
-                    th-lift
-  if impl(ghc < 6.12)
-    Build-Depends: packedstring == 0.1.*,
-                   template-haskell >= 2.2 && < 2.4
-  else
-    Build-Depends: template-haskell >= 2.4 && < 2.15
+                    th-lift,
+                    template-haskell
+


Reply via email to