ghc-th-abstraction - Nicer interface for reified information about data types

Property Value
Distribution openSUSE Leap 15.1
Repository openSUSE Oss all
Package filename ghc-th-abstraction-
Package name ghc-th-abstraction
Package version
Package release lp151.1.2
Package architecture x86_64
Package type rpm
Category Development/Libraries/Haskell
License ISC
Maintainer -
Download size 91.48 KB
Installed size 521.81 KB
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


Package Version Architecture Repository
ghc-th-abstraction - - -


Name Value - - - - - - - - - - - - -


Name Value
ghc-th-abstraction =
ghc-th-abstraction(x86-64) = -


Type URL
Binary Package ghc-th-abstraction-
Source Package ghc-th-abstraction-

Install Howto

Install ghc-th-abstraction rpm package:

# zypper install ghc-th-abstraction




2018-12-21 -
- Update th-abstraction to version
[#]# -- 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`.
[#]# -- 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.
2018-10-20 - Peter Simons <>
- Use https URL to refer to
2018-07-18 -
- Cosmetic: replace tabs with blanks, strip trailing white space,
and update copyright headers with spec-cleaner.
2018-07-13 -
- Update th-abstraction to version
[#]# -- 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:
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`.
[#]# -- 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.
2018-05-14 -
- Update th-abstraction to version 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
2017-06-30 -
- Update to version
2017-06-19 -
- Update to version

See Also

Package Description
ghc-th-abstraction-devel- Haskell th-abstraction library development files
ghc-th-expand-syns- Expands type synonyms in Template Haskell ASTs
ghc-th-expand-syns-devel- Haskell th-expand-syns library development files
ghc-th-extras- A grab bag of functions for use with Template Haskell
ghc-th-extras-devel- Haskell th-extras library development files
ghc-th-lift-0.7.11-lp151.1.2.x86_64.rpm Derive Template Haskell's Lift class for datatypes
ghc-th-lift-devel-0.7.11-lp151.1.2.x86_64.rpm Haskell th-lift library development files
ghc-th-lift-instances-0.1.12-lp151.1.2.x86_64.rpm Lift instances for template-haskell for common data types
ghc-th-lift-instances-devel-0.1.12-lp151.1.2.x86_64.rpm Haskell th-lift-instances library development files
ghc-th-orphans-0.13.6-lp151.1.3.x86_64.rpm Orphan instances for TH datatypes
ghc-th-orphans-devel-0.13.6-lp151.1.3.x86_64.rpm Haskell th-orphans library development files
ghc-th-reify-many-0.1.8-lp151.1.2.x86_64.rpm Recurseively reify template haskell datatype info
ghc-th-reify-many-devel-0.1.8-lp151.1.2.x86_64.rpm Haskell th-reify-many library development files
ghc-th-utilities- Collection of useful functions for use with Template Haskell
ghc-th-utilities-devel- Haskell th-utilities library development files