ghc-lib-parser-ex: Algorithms on GHC parse trees

[ bsd3, development, library ] [ Propose Tags ]

Please see the README on GitHub at

[Skip to Readme]
Versions [faq] 0.20200102, 0.20200201, 0.20200201.1.0, 0.20200205.0.0, 0.20200301, 0.20200401, 0.20200501, 0.20200601, 0.20200704, 0.20200801, 0.20200901, 0.20201001, 0.20201101, 0.20201201, 0.20210101,, 8.8.2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Change log
Dependencies base (>=4.7 && <5), bytestring (>=, containers (>=, ghc (==8.10.*), ghc-boot, ghc-boot-th, ghc-lib-parser (==8.10.*), uniplate (>=1.5) [details]
License BSD-3-Clause
Copyright Copyright © 2020, Shayne Fletcher. All rights reserved.
Author Shayne Fletcher
Category Development
Home page
Bug tracker
Source repo head: git clone
Uploaded by shayne_fletcher at 2020-12-20T18:51:08Z
Distributions Arch:, Fedora:, NixOS:, openSUSE:
Downloads 19416 total (522 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]


[Index] [Quick Jump]



Use default configuration


Force dependency on native ghc-libs


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for ghc-lib-parser-ex-

[back to package description]

ghc-lib-parser-ex License BSD3 Hackage version Stackage version Build Status

Copyright © 2020, Shayne Fletcher. All rights reserved. SPDX-License-Identifier: BSD-3-Clause

The ghc-lib-parser-ex package contains GHC API parse tree utilities. It works with or without ghc-lib-parser.

Using ghc-lib-parser-ex

Package ghc-lib-parser-ex is on Hackage e.g. cabal install ghc-lib-parser-ex. Like ghc-lib-parser, there are two release streams within the ghc-lib-parser-ex name.

Versioning policy

Package ghc-lib-parser-ex does not conform to the Haskell Package Versioning Policy. Version numbers are of the form α.β.γ.δ where α.β corresponds to a GHC series and γ.δ are the major and minor parts of the ghc-lib-ex-parser package release. Examples:

  • Version is compatible with any ghc-lib-parser-8.10.* (or ghc-8.10.*) package;
  • Version 0.20190204.2.0 is compatible with ghc-lib-parser-0.20190204.

The major part γ of the release number indicates an interface breaking change from the previous release. The minor part δ indicates a non-interface breaking change from the previous release.

Building ghc-lib-parser-ex

You can build with stack build and test with stack test. Produce ghc-lib-parser-ex package distributions by executing the CI script:

# Setup
git clone
cd ghc-lib-parser-ex
stack runhaskell --package extra --package optparse-applicative CI.hs

Run stack runhaskell --package extra --package optparse-applicative CI.hs -- --help for more options.

To run hlint on this repository, hlint --cpp-include cbits --cpp-define GHCLIB_API_XXX . (where XXX at this time is one of 808, 810 or 900).

Releasing ghc-lib-parser-ex (notes for maintainers)

Update the changelog, git tag <version> && git push origin <version> then build via the above instructions and upload the resulting .tar.gz files to Hackage.