osc copypac from project:devel:languages:haskell:ghc-9.10.x package:ghc-th-abstraction revision:4, using keep-link
OBS-URL: https://build.opensuse.org/package/show/devel:languages:haskell/ghc-th-abstraction?expand=0&rev=72
This commit is contained in:
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.osc
|
456
ghc-th-abstraction.changes
Normal file
456
ghc-th-abstraction.changes
Normal file
@@ -0,0 +1,456 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Mar 2 13:35:52 UTC 2025 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.7.1.0 revision 1.
|
||||||
|
Upstream has revised the Cabal build instructions on Hackage.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Dec 5 11:48:06 UTC 2024 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.7.1.0.
|
||||||
|
## 0.7.1.0 -- 2024.12.05
|
||||||
|
* Drop support for pre-8.0 versions of GHC.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Mar 17 15:30:04 UTC 2024 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.7.0.0.
|
||||||
|
## 0.7.0.0 -- 2024.03.17
|
||||||
|
* `DatatypeInfo` now has an additional `datatypeReturnKind` field. Most of the
|
||||||
|
time, this will be `StarT`, but this can also be more exotic kinds such as
|
||||||
|
`ConT ''UnliftedType` if dealing with primitive types, `UnliftedDatatypes`,
|
||||||
|
or `UnliftedNewtypes`.
|
||||||
|
* `reifyDatatype` and related functions now support primitive types such as
|
||||||
|
`Int#`. These will be reified as `DatatypeInfo`s with no `ConstructorInfo`s
|
||||||
|
and with `Datatype` as the `datatypeVariant`.
|
||||||
|
* `normalizeCon` now takes a `Kind` argument representing the return kind of
|
||||||
|
the parent data type. (This is sometimes necessary to determine which type
|
||||||
|
variables in the data constructor are universal or existential, depending
|
||||||
|
on if the variables appear in the return kind.)
|
||||||
|
* Fix a couple of bugs in which `normalizeDec` would return incorrect results
|
||||||
|
for GADTs that use `forall`s in their return kind.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Mar 17 15:24:51 UTC 2024 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.6.0.0 revision 2.
|
||||||
|
Upstream has revised the Cabal build instructions on Hackage.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Sep 30 12:03:02 UTC 2023 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.6.0.0 revision 1.
|
||||||
|
## 0.6.0.0 -- 2023.07.31
|
||||||
|
* Support building with `template-haskell-2.21.0.0` (GHC 9.8).
|
||||||
|
* Adapt to `TyVarBndr`s for type-level declarations changing their type from
|
||||||
|
`TyVarBndr ()` to `TyVarBndr BndrVis` in `template-haskell`:
|
||||||
|
|
||||||
|
* `Language.Haskell.TH.Datatype.TyVarBndr` now backports `type BndrVis = ()`,
|
||||||
|
as well as `BndrReq` and `BndrInvis` pattern synonyms. These make it
|
||||||
|
possible to write code involving `BndrVis` that is somewhat backwards
|
||||||
|
compatible (but do see the caveats in the Haddocks for `BndrInvis`).
|
||||||
|
* `Language.Haskell.TH.Datatype.TyVarBndr` also backports the following
|
||||||
|
definitions:
|
||||||
|
* The `type TyVarBndrVis = TyVarBndr BndrVis` type synonym.
|
||||||
|
* The `DefaultBndrFlag` class, which can be used to write code that is
|
||||||
|
polymorphic over `TyVarBndr` flags while still allowing the code to return
|
||||||
|
a reasonable default value for the flag.
|
||||||
|
* The `bndrReq` and `bndrInvis` definitions, which behave identically to
|
||||||
|
`BndrReq` and `BndrInvis`.
|
||||||
|
* `Language.Haskell.TH.Datatype.TyVarBndr` now defines the following utility
|
||||||
|
functions, which are not present in `template-haskell`:
|
||||||
|
* `plainTVReq`, `plainTVInvis`, `kindedTVReq`, and `kindedTVInvis`
|
||||||
|
functions, which construct `PlainTV`s and `KindedTV`s with particular
|
||||||
|
`BndrVis` flags.
|
||||||
|
* An `elimTVFlag`, which behaves like `elimTV`, but where the continuation
|
||||||
|
arguments also take a `flag` argument. (Note that the type of this
|
||||||
|
function is slightly different on old versions of `template-haskell`.
|
||||||
|
See the Haddocks for more.)
|
||||||
|
* A `tvFlag` function, which extracts the `flag` from a `TyVarBndr`. (Note
|
||||||
|
that the type of this function is slightly different on old versions of
|
||||||
|
`template-haskell`. See the Haddocks for more.)
|
||||||
|
* The types of the `dataDCompat` and `newtypeDCompat` functions have had
|
||||||
|
their `[TyVarBndrUnit]` arguments changed to `[TyVarBndrVis]`, matching
|
||||||
|
similar changes to `DataD` and `NewtypeD` in `template-haskell`.
|
||||||
|
|
||||||
|
Because `BndrVis` is a synonym for `()` on pre-9.8 versions of GHC, this
|
||||||
|
change is unlikely to break any existing code, provided that you build it
|
||||||
|
with GHC 9.6 or earlier. If you build with GHC 9.8 or later, on the other
|
||||||
|
hand, it is likely that you will need to update your existing code. Here are
|
||||||
|
some possible ways that your code might fail to compile with GHC 9.8, along
|
||||||
|
with some migration strategies:
|
||||||
|
|
||||||
|
* Your code passes a `TyVarBndrUnit` in a place where a `TyVarBndrVis` is now
|
||||||
|
expected in GHC 9.8, such as in the arguments to `dataDCompat`:
|
||||||
|
|
||||||
|
```hs
|
||||||
|
import "template-haskell" Language.Haskell.TH
|
||||||
|
import "th-abstraction" Language.Haskell.TH.Datatype (dataDCompat)
|
||||||
|
|
||||||
|
dec :: DecQ
|
||||||
|
dec = dataDCompat (pure []) d [PlainTV a ()] [] []
|
||||||
|
where
|
||||||
|
d = mkName "d"
|
||||||
|
a = mkName "a"
|
||||||
|
```
|
||||||
|
|
||||||
|
With GHC 9.8, this will fail to compile with:
|
||||||
|
|
||||||
|
```
|
||||||
|
error: [GHC-83865]
|
||||||
|
• Couldn't match expected type ‘BndrVis’ with actual type ‘()’
|
||||||
|
• In the second argument of ‘PlainTV’, namely ‘()’
|
||||||
|
In the expression: PlainTV a ()
|
||||||
|
In the third argument of ‘dataDCompat’, namely ‘[PlainTV a ()]’
|
||||||
|
|
|
||||||
|
| dec = dataDCompat (pure []) d [PlainTV a ()] [] []
|
||||||
|
| ^^
|
||||||
|
```
|
||||||
|
|
||||||
|
Some possible ways to migrate this code include:
|
||||||
|
|
||||||
|
* Use the `bndrReq` function or `BndrReq` pattern synonym in place of `()`,
|
||||||
|
making sure to import them from `Language.Haskell.TH.Datatype.TyVarBndr`:
|
||||||
|
|
||||||
|
```hs
|
||||||
|
...
|
||||||
|
import "th-abstraction" Language.Haskell.TH.Datatype.TyVarBndr
|
||||||
|
|
||||||
|
dec :: DecQ
|
||||||
|
dec = dataDCompat (pure []) d [PlainTV a bndrReq] [] []
|
||||||
|
-- Or, alternatively:
|
||||||
|
{-
|
||||||
|
dec = dataDCompat (pure []) d [PlainTV a BndrReq] [] []
|
||||||
|
-}
|
||||||
|
where
|
||||||
|
...
|
||||||
|
```
|
||||||
|
* Use the `plainTV` function from `Language.Haskell.TH.Datatype.TyVarBndr`,
|
||||||
|
which is now sufficiently polymorphic to work as both a `TyVarBndrUnit`
|
||||||
|
and a `TyVarBndrVis`:
|
||||||
|
|
||||||
|
```hs
|
||||||
|
...
|
||||||
|
import Language.Haskell.TH.Datatype.TyVarBndr
|
||||||
|
|
||||||
|
dec :: DecQ
|
||||||
|
dec = dataDCompat (pure []) d [plainTV a] [] []
|
||||||
|
where
|
||||||
|
...
|
||||||
|
```
|
||||||
|
* You may have to replace some uses of `TyVarBndrUnit` with `TyVarBndrVis`
|
||||||
|
in your code. For instance, this will no longer typecheck in GHC 9.8 for
|
||||||
|
similar reasons to the previous example:
|
||||||
|
|
||||||
|
```hs
|
||||||
|
import "template-haskell" Language.Haskell.TH
|
||||||
|
import "th-abstraction" Language.Haskell.TH.Datatype (dataDCompat)
|
||||||
|
|
||||||
|
dec :: DecQ
|
||||||
|
dec = dataDCompat (pure []) d tvbs [] []
|
||||||
|
where
|
||||||
|
tvbs :: [TyVarBndrUnit]
|
||||||
|
tvbs = [plainTV a]
|
||||||
|
|
||||||
|
d = mkName "d"
|
||||||
|
a = mkName "a"
|
||||||
|
```
|
||||||
|
|
||||||
|
Here is a version that will typecheck with GHC 9.8 and earlier:
|
||||||
|
|
||||||
|
```hs
|
||||||
|
...
|
||||||
|
import "th-abstraction" Language.Haskell.TH.Datatype.TyVarBndr
|
||||||
|
|
||||||
|
dec :: DecQ
|
||||||
|
dec = dataDCompat (pure []) d tvbs [] []
|
||||||
|
where
|
||||||
|
tvbs :: [TyVarBndrVis]
|
||||||
|
tvbs = [plainTV a]
|
||||||
|
|
||||||
|
...
|
||||||
|
```
|
||||||
|
* In some cases, the `TyVarBndrUnit`s might come from another place in the
|
||||||
|
code, e.g.,
|
||||||
|
|
||||||
|
```hs
|
||||||
|
import "template-haskell" Language.Haskell.TH
|
||||||
|
import "th-abstraction" Language.Haskell.TH.Datatype (dataDCompat)
|
||||||
|
|
||||||
|
dec :: [TyVarBndrUnit] -> DecQ
|
||||||
|
dec tvbs = dataDCompat (pure []) d tvbs [] []
|
||||||
|
where
|
||||||
|
d = mkName "d"
|
||||||
|
```
|
||||||
|
|
||||||
|
If it is not straightforward to change `dec`'s type to accept
|
||||||
|
`[TyVarBndrVis]` as an argument, another viable option is to use the
|
||||||
|
`changeTVFlags` function:
|
||||||
|
|
||||||
|
```hs
|
||||||
|
...
|
||||||
|
import "th-abstraction" Language.Haskell.TH.Datatype.TyVarBndr
|
||||||
|
|
||||||
|
dec :: [TyVarBndrUnit] -> DecQ
|
||||||
|
dec tvbs = dataDCompat (pure []) d tvbs' [] []
|
||||||
|
where
|
||||||
|
tvbs' :: [TyVarBndrVis]
|
||||||
|
tvbs' = changeTVFlags bndrReq tvbs
|
||||||
|
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
This guide, while not comprehensive, should cover most of the common cases one
|
||||||
|
will encounter when migrating their `th-abstraction` code to support GHC 9.8.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jun 27 10:45:36 UTC 2023 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.5.0.0.
|
||||||
|
## 0.5.0.0 -- 2023.02.27
|
||||||
|
* Support the `TypeData` language extension added in GHC 9.6. The
|
||||||
|
`DatatypeVariant` data type now has a separate `TypeData` constructor to
|
||||||
|
represent `type data` declarations.
|
||||||
|
* Add a `Lift` instance for `th-abstraction`'s compatibility shim for
|
||||||
|
`Specificity` when building with pre-9.0 versions of GHC.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Mar 30 17:08:35 UTC 2023 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Updated spec file to conform with ghc-rpm-macros-2.5.2.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 27 10:44:12 UTC 2023 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.4.5.0 revision 1.
|
||||||
|
Upstream has revised the Cabal build instructions on Hackage.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Sep 12 23:32:58 UTC 2022 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.4.5.0.
|
||||||
|
## 0.4.5.0 -- 2022.09.12
|
||||||
|
* Fix a bug in which data family declarations with interesting return kinds
|
||||||
|
(e.g., `data family F :: Type -> Type`) would be reified incorrectly when
|
||||||
|
using `reifyDatatype`.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Jul 23 17:44:02 UTC 2022 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.4.4.0.
|
||||||
|
## 0.4.4.0 -- 2022.07.23
|
||||||
|
* Support free variable substitution and infix resolution for
|
||||||
|
`PromotedInfixT` and `PromotedUInfixT` on `template-haskell-2.19.0.0` or
|
||||||
|
later.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 2 08:31:58 UTC 2021 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.4.3.0.
|
||||||
|
## 0.4.3.0 -- 2021.08.30
|
||||||
|
* Make `applySubstitution` avoid capturing type variable binders when
|
||||||
|
substituting into `forall`s.
|
||||||
|
* Fix a bug in which `resolveTypeSynonyms` would incorrectly expand type
|
||||||
|
synonyms that are not applied to enough arguments.
|
||||||
|
* Allow the test suite to build with GHC 9.2.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Apr 30 08:29:32 UTC 2021 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.4.2.0 revision 1.
|
||||||
|
Upstream has revised the Cabal build instructions on Hackage.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 30 17:53:11 UTC 2020 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.4.2.0.
|
||||||
|
## 0.4.2.0 -- 2020-12-30
|
||||||
|
* Explicitly mark modules as Safe (or Trustworthy for GHC versions prior to 8.4).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Dec 17 12:20:00 UTC 2020 - Ondřej Súkup <mimi.vx@gmail.com>
|
||||||
|
|
||||||
|
- disable %{ix86} build
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Dec 10 09:07:33 UTC 2020 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.4.1.0.
|
||||||
|
## 0.4.1.0 -- 2020-12-09
|
||||||
|
* Fix a bug in which `normalizeDec` would give incorrect kind annotations to
|
||||||
|
type variables in quoted `Dec`s. `normalizeDec` now leaves the kinds of
|
||||||
|
type variable binders alone.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 30 08:36:12 UTC 2020 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.4.0.0.
|
||||||
|
## 0.4.0.0 -- 2020-09-29
|
||||||
|
* Adapt to the `TyVarBndr` data type gaining a new `flag` type parameter
|
||||||
|
(in `template-haskell-2.17.0.0`) to represent its specificity:
|
||||||
|
* Introduce a new `Language.Haskell.TH.Datatype.TyVarBndr` module that
|
||||||
|
defines `TyVarBndr_`, a backwards-compatible type synonym for `TyVarBndr`,
|
||||||
|
as well as backporting `TyVarBndrSpec`, `TyVarBndrUnit`, and `Specificity`.
|
||||||
|
This module also defines other useful functions for constructing and
|
||||||
|
manipulating `TyVarBndr`s.
|
||||||
|
* The types in `Language.Haskell.TH.Datatype` now use `TyVarBndr_`,
|
||||||
|
`TyVarBndrUnit`, and `TyVarBndrSpec` where appropriate. Technically, this
|
||||||
|
is not a breaking change, since all three are simple type synonyms around
|
||||||
|
`TyVarBndr`, but it is likely that you will need to update your
|
||||||
|
`th-abstraction`-using code anyway if it involves a `TyVarBndr`-consuming
|
||||||
|
function.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Aug 18 10:46:15 UTC 2020 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Replace %setup -q with the more modern %autosetup macro.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jun 16 11:14:41 UTC 2020 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Re-generate file with latest version of spec-cleaner.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Feb 7 08:06:47 UTC 2020 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.3.2.0.
|
||||||
|
## 0.3.2.0 -- 2020-02-06
|
||||||
|
* Support substituting into and extracting free variables from `ForallVisT`s
|
||||||
|
on `template-haskell-2.16.0.0` (GHC 8.10) or later.
|
||||||
|
* Fix a bug in which `freeVariables` could report duplicate kind variables when
|
||||||
|
they occur in the kinds of the type variable binders in a `ForallT`.
|
||||||
|
* Fix a bug in which `resolveInfixT` would not resolve `UInfixT`s occurring in
|
||||||
|
the kinds of type variable binders in a `ForallT`.
|
||||||
|
* Fix a bug in which the `TypeSubstitution ConstructorInfo` instance would not
|
||||||
|
detect free kind variables in the `constructorVars`.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Nov 8 16:14:57 UTC 2019 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Drop obsolete group attributes.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 30 09:23:09 UTC 2019 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.3.1.0.
|
||||||
|
## 0.3.1.0 -- 2019-04-28
|
||||||
|
* Fix a bug which would cause data family information to be reified incorrectly
|
||||||
|
with GHC 8.8+ in some situations.
|
||||||
|
|
||||||
|
## 0.3.0.0 -- 2019-04-26
|
||||||
|
* Breaking change: the `datatypeVars` field of `DatatypeInfo` is now of type
|
||||||
|
`[TyVarBndr]` instead of `[Type]`, as it now refers to all of the bound type
|
||||||
|
variables in the data type. The old `datatypeVars` field has been renamed to
|
||||||
|
`datatypeInstTypes` to better reflect its purpose.
|
||||||
|
|
||||||
|
In addition, the type of `normalizeCon` now has an additional `[TyVarBndr]`
|
||||||
|
argument, since `DatatypeInfo` now requires it.
|
||||||
|
* Support `template-haskell-2.15`.
|
||||||
|
* Fix a bug in which `normalizeDec` would not detect existential type variables
|
||||||
|
in a GADT constructor if they were implicitly quantified.
|
||||||
|
* Fix a bug in which `normalizeDec` would report an incorrect number of
|
||||||
|
`datatypeVars` for GADT declarations with explicit return kinds (such as
|
||||||
|
`data Foo :: * -> * where`).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Feb 27 03:02:53 UTC 2019 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.2.11.0.
|
||||||
|
## 0.2.11.0 -- 2019-02-26
|
||||||
|
* Fix a bug in which `freeVariablesWellScoped` would sometimes not preserve
|
||||||
|
the left-to-right ordering of `Name`s generated with `newName`.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Dec 21 03:02:45 UTC 2018 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.2.10.0.
|
||||||
|
## 0.2.10.0 -- 2018-12-20
|
||||||
|
* Optimization: `quantifyType` now collapses consecutive `forall`s. For
|
||||||
|
instance, calling `quantifyType` on `forall b. a -> b -> T a` now produces
|
||||||
|
`forall a b. a -> b -> T a` instead of `forall a. forall b. a -> b -> T a`.
|
||||||
|
|
||||||
|
## 0.2.9.0 -- 2018-12-20
|
||||||
|
* Fix a bug in which `resolveTypeSynonyms` would not look into `ForallT`s,
|
||||||
|
`SigT`s, `InfixT`s, or `ParensT`s.
|
||||||
|
* Fix a bug in which `quantifyType` would not respect the dependency order of
|
||||||
|
type variables (e.g., `Proxy (a :: k)` would have erroneously been quantified
|
||||||
|
as `forall a k. Proxy (a :: k)`).
|
||||||
|
* Fix a bug in which `asEqualPred` would return incorrect results with GHC 8.7.
|
||||||
|
* Add a `freeVariablesWellScoped` function which computes the free variables of
|
||||||
|
a list of types and sorts them according to dependency order.
|
||||||
|
* Add a `resolveKindSynonyms` function which expands all type synonyms in a
|
||||||
|
`Kind`. This is mostly useful for supporting old GHCs where `Type` and `Kind`
|
||||||
|
were not the same.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Oct 20 11:32:05 UTC 2018 - Peter Simons <psimons@suse.com>
|
||||||
|
|
||||||
|
- Use https URL to refer to bugs.opensuse.org.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jul 18 14:26:43 UTC 2018 - psimons@suse.com
|
||||||
|
|
||||||
|
- Cosmetic: replace tabs with blanks, strip trailing white space,
|
||||||
|
and update copyright headers with spec-cleaner.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jul 13 14:31:53 UTC 2018 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.2.8.0.
|
||||||
|
## 0.2.8.0 -- 2018-06-29
|
||||||
|
* GADT reification is now much more robust with respect to `PolyKinds`:
|
||||||
|
* A bug in which universally quantified kind variables were mistakenly
|
||||||
|
flagged as existential has been fixed.
|
||||||
|
* A bug in which the kinds of existentially quantified type variables
|
||||||
|
were not substituted properly has been fixed.
|
||||||
|
* More kind equalities are detected than before. For example, in the
|
||||||
|
following data type:
|
||||||
|
|
||||||
|
```haskell
|
||||||
|
data T (a :: k) where
|
||||||
|
MkT :: forall (a :: Bool). T a
|
||||||
|
```
|
||||||
|
|
||||||
|
We now catch the `k ~ Bool` equality.
|
||||||
|
* Tweak `resolveTypeSynonyms` so that failing to reify a type constructor
|
||||||
|
name so longer results in an error. Among other benefits, this makes
|
||||||
|
it possible to pass data types with GADT syntax to `normalizeDec`.
|
||||||
|
|
||||||
|
## 0.2.7.0 -- 2018-06-17
|
||||||
|
* Fix bug in which data family instances with duplicate occurrences of type
|
||||||
|
variables in the left-hand side would have redundant equality constraints
|
||||||
|
in their contexts.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 14 17:02:11 UTC 2018 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update th-abstraction to version 0.2.6.0 revision 1.
|
||||||
|
* Fix bug in which `applySubstitution` and `freeVariables` would ignore
|
||||||
|
type variables in the kinds of type variable binders.
|
||||||
|
* Added `pragLineDCompat`, `newtypeDCompat` and `tySynInstDCompat`
|
||||||
|
* Fix bug that caused GADT equality constraints to be incorrect in some cases.
|
||||||
|
* Expose `Unpackedness` and `Strictness` (which were unexported by accident).
|
||||||
|
* Add `resolvePredSynonyms`
|
||||||
|
* Add `reifyConstructor`, which allows reification of `ConstructorInfo` from
|
||||||
|
a constructor name, and `lookupByConstructorName`, which allows directly
|
||||||
|
looking up a `ConstructorInfo` from a `DatatypeInfo` value for a given
|
||||||
|
constructor `Name`.
|
||||||
|
* Augment `reifyDatatype` to be able to look up `DatatypeInfo` from the `Name`
|
||||||
|
of a record selector for one of its constructors. Also add `reifyRecord` for
|
||||||
|
reification of of `ConstructorInfo` from a record name, and
|
||||||
|
`lookupByRecordName`, which allows directly looking up a `ConstructorInfo`
|
||||||
|
from a `DatatypeInfo` value for a given record `Name`.
|
||||||
|
* Fix bug that caused `th-abstraction` to fail on GHC 7.0 and 7.2 when passing
|
||||||
|
a vanilla constructor name to `reifyDatatype`
|
||||||
|
* Make `normalizeDec` and `normalizeCon` more robust with respect to
|
||||||
|
data family instances on GHC 7.6 and 7.8
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jun 30 03:01:59 UTC 2017 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update to version 0.2.3.0.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jun 19 21:01:50 UTC 2017 - psimons@suse.com
|
||||||
|
|
||||||
|
- Update to version 0.2.2.0.
|
102
ghc-th-abstraction.spec
Normal file
102
ghc-th-abstraction.spec
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
#
|
||||||
|
# spec file for package ghc-th-abstraction
|
||||||
|
#
|
||||||
|
# Copyright (c) 2025 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%global pkg_name th-abstraction
|
||||||
|
%global pkgver %{pkg_name}-%{version}
|
||||||
|
%bcond_with tests
|
||||||
|
Name: ghc-%{pkg_name}
|
||||||
|
Version: 0.7.1.0
|
||||||
|
Release: 0
|
||||||
|
Summary: Nicer interface for reified information about data types
|
||||||
|
License: ISC
|
||||||
|
URL: https://hackage.haskell.org/package/%{pkg_name}
|
||||||
|
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{version}.tar.gz
|
||||||
|
Source1: https://hackage.haskell.org/package/%{pkg_name}-%{version}/revision/1.cabal#/%{pkg_name}.cabal
|
||||||
|
BuildRequires: ghc-Cabal-devel
|
||||||
|
BuildRequires: ghc-base-devel
|
||||||
|
BuildRequires: ghc-base-prof
|
||||||
|
BuildRequires: ghc-containers-devel
|
||||||
|
BuildRequires: ghc-containers-prof
|
||||||
|
BuildRequires: ghc-rpm-macros
|
||||||
|
BuildRequires: ghc-template-haskell-devel
|
||||||
|
BuildRequires: ghc-template-haskell-prof
|
||||||
|
ExcludeArch: %{ix86}
|
||||||
|
|
||||||
|
%description
|
||||||
|
This package normalizes variations in the interface for inspecting datatype
|
||||||
|
information via Template Haskell so that packages and support a single, easier
|
||||||
|
to use informational datatype while supporting many versions of Template
|
||||||
|
Haskell.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Haskell %{pkg_name} library development files
|
||||||
|
Requires: %{name} = %{version}-%{release}
|
||||||
|
Requires: ghc-compiler = %{ghc_version}
|
||||||
|
Requires(post): ghc-compiler = %{ghc_version}
|
||||||
|
Requires(postun): ghc-compiler = %{ghc_version}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
This package provides the Haskell %{pkg_name} library development files.
|
||||||
|
|
||||||
|
%package -n ghc-%{pkg_name}-doc
|
||||||
|
Summary: Haskell %{pkg_name} library documentation
|
||||||
|
Requires: ghc-filesystem
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
%description -n ghc-%{pkg_name}-doc
|
||||||
|
This package provides the Haskell %{pkg_name} library documentation.
|
||||||
|
|
||||||
|
%package -n ghc-%{pkg_name}-prof
|
||||||
|
Summary: Haskell %{pkg_name} profiling library
|
||||||
|
Requires: ghc-%{pkg_name}-devel = %{version}-%{release}
|
||||||
|
Supplements: (ghc-%{pkg_name}-devel and ghc-prof)
|
||||||
|
|
||||||
|
%description -n ghc-%{pkg_name}-prof
|
||||||
|
This package provides the Haskell %{pkg_name} profiling library.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n %{pkg_name}-%{version}
|
||||||
|
cp -p %{SOURCE1} %{pkg_name}.cabal
|
||||||
|
|
||||||
|
%build
|
||||||
|
%ghc_lib_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
%ghc_lib_install
|
||||||
|
|
||||||
|
%check
|
||||||
|
%cabal_test
|
||||||
|
|
||||||
|
%post devel
|
||||||
|
%ghc_pkg_recache
|
||||||
|
|
||||||
|
%postun devel
|
||||||
|
%ghc_pkg_recache
|
||||||
|
|
||||||
|
%files -f %{name}.files
|
||||||
|
%license LICENSE
|
||||||
|
|
||||||
|
%files devel -f %{name}-devel.files
|
||||||
|
%doc ChangeLog.md README.md
|
||||||
|
|
||||||
|
%files -n ghc-%{pkg_name}-doc -f ghc-%{pkg_name}-doc.files
|
||||||
|
%license LICENSE
|
||||||
|
|
||||||
|
%files -n ghc-%{pkg_name}-prof -f ghc-%{pkg_name}-prof.files
|
||||||
|
|
||||||
|
%changelog
|
3
th-abstraction-0.6.0.0.tar.gz
Normal file
3
th-abstraction-0.6.0.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:69ea6eca1f0c00b6e1e1f8329c908ec76e73855e2ce6e91ace2f8bbf92c51a30
|
||||||
|
size 43152
|
3
th-abstraction-0.7.1.0.tar.gz
Normal file
3
th-abstraction-0.7.1.0.tar.gz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:f9b6184aba4c6b61dd0d96f7dad41a4c9db0a01d3cdbf993a7d860488f1c04c5
|
||||||
|
size 45428
|
53
th-abstraction.cabal
Normal file
53
th-abstraction.cabal
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
name: th-abstraction
|
||||||
|
version: 0.7.1.0
|
||||||
|
x-revision: 1
|
||||||
|
synopsis: Nicer interface for reified information about data types
|
||||||
|
description: This package normalizes variations in the interface for
|
||||||
|
inspecting datatype information via Template Haskell
|
||||||
|
so that packages and support a single, easier to use
|
||||||
|
informational datatype while supporting many versions
|
||||||
|
of Template Haskell.
|
||||||
|
license: ISC
|
||||||
|
license-file: LICENSE
|
||||||
|
author: Eric Mertens
|
||||||
|
maintainer: emertens@gmail.com
|
||||||
|
copyright: 2017 Eric Mertens
|
||||||
|
homepage: https://github.com/glguy/th-abstraction
|
||||||
|
bug-reports: https://github.com/glguy/th-abstraction/issues
|
||||||
|
category: Development
|
||||||
|
build-type: Simple
|
||||||
|
extra-source-files: ChangeLog.md README.md
|
||||||
|
cabal-version: >=1.10
|
||||||
|
tested-with: GHC==9.12.1, GHC==9.10.1, GHC==9.8.4, GHC==9.6.6, GHC==9.4.8, GHC==9.2.8, GHC==9.0.2, GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2
|
||||||
|
|
||||||
|
source-repository head
|
||||||
|
type: git
|
||||||
|
location: https://github.com/glguy/th-abstraction.git
|
||||||
|
|
||||||
|
library
|
||||||
|
exposed-modules: Language.Haskell.TH.Datatype
|
||||||
|
Language.Haskell.TH.Datatype.TyVarBndr
|
||||||
|
other-modules: Language.Haskell.TH.Datatype.Internal
|
||||||
|
build-depends: base >=4.9 && <5,
|
||||||
|
ghc-prim,
|
||||||
|
template-haskell >=2.11 && <2.24,
|
||||||
|
containers >=0.4 && <0.9
|
||||||
|
hs-source-dirs: src
|
||||||
|
default-language: Haskell2010
|
||||||
|
|
||||||
|
if impl(ghc >= 9.0)
|
||||||
|
-- these flags may abort compilation with GHC-8.10
|
||||||
|
-- https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3295
|
||||||
|
ghc-options: -Winferred-safe-imports -Wmissing-safe-haskell-mode
|
||||||
|
|
||||||
|
test-suite unit-tests
|
||||||
|
other-modules: Harness
|
||||||
|
Types
|
||||||
|
type: exitcode-stdio-1.0
|
||||||
|
main-is: Main.hs
|
||||||
|
build-depends: th-abstraction, base, containers, template-haskell
|
||||||
|
hs-source-dirs: test
|
||||||
|
default-language: Haskell2010
|
||||||
|
|
||||||
|
if impl(ghc >= 8.6)
|
||||||
|
ghc-options: -Wno-star-is-type
|
Reference in New Issue
Block a user