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 +
