ghc-lib-parser-ex
Programming with GHC parse trees
https://github.com/shayne-fletcher/ghc-lib-parser-ex#readme
| LTS Haskell 24.17: | 9.12.0.0 | 
| Stackage Nightly 2025-10-31: | 9.12.0.0 | 
| Latest on Hackage: | 9.12.0.0 | 
ghc-lib-parser-ex-9.12.0.0@sha256:84310cab4612e96ce312954e6ced73f8565f6c723864862356dfc6d9b2cc725a,3344Module documentation for 9.12.0.0
- Language- Language.Haskell- Language.Haskell.GhclibParserEx- Language.Haskell.GhclibParserEx.Dump
- Language.Haskell.GhclibParserEx.Fixity
- Language.Haskell.GhclibParserEx.GHC- Language.Haskell.GhclibParserEx.GHC.Driver
- Language.Haskell.GhclibParserEx.GHC.Hs
- Language.Haskell.GhclibParserEx.GHC.Hs.Binds
- Language.Haskell.GhclibParserEx.GHC.Hs.Decls
- Language.Haskell.GhclibParserEx.GHC.Hs.Dump
- Language.Haskell.GhclibParserEx.GHC.Hs.Expr
- Language.Haskell.GhclibParserEx.GHC.Hs.ExtendInstances
- Language.Haskell.GhclibParserEx.GHC.Hs.ImpExp
- Language.Haskell.GhclibParserEx.GHC.Hs.Pat
- Language.Haskell.GhclibParserEx.GHC.Hs.Type
- Language.Haskell.GhclibParserEx.GHC.Hs.Types
 
- Language.Haskell.GhclibParserEx.GHC.Parser
- Language.Haskell.GhclibParserEx.GHC.Settings
- Language.Haskell.GhclibParserEx.GHC.Types- Language.Haskell.GhclibParserEx.GHC.Types.Name
 
- Language.Haskell.GhclibParserEx.GHC.Utils
 
 
 
- Language.Haskell.GhclibParserEx
 
- Language.Haskell
ghc-lib-parser-ex
Copyright © 2020-2024 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 8.10.1.3 is compatible with any ghc-lib-parser-8.10.*(orghc-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
Produce and test ghc-lib-parser-ex package distributions by executing the CI script:
    git clone [email protected]:shayne-fletcher/ghc-lib-parser-ex.git
    cd ghc-lib-parser-ex
    cabal run exe:ghc-lib-parser-ex-build-tool --allow-newer="ghc-lib-parser-ex:ghc-lib-parser" --constraint="ghc-lib-parser == 9.10.1.20240511" -- --version-tag 9.10.0.1
To run hlint on this repository, hlint --cpp-include cbits --cpp-define GHC_XXXX . (where XXXX at this time is one of 8_8, 8_10, 9_0, 9_2, 9_4, 9_6, 9_8 or 9_10).
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.
Changes
Changelog for ghc-lib-parser-ex
9.12.0.0 released
- Add support for ghc-9.12 series: GHCLIB_API_912
9.10.0.0 released
- Deprecate Dump
- New module GHC.Hs.Dump
- Add support for ghc-9.10 series: GHCLIB_API_910
9.8.0.2 released
- Fix broken cpp in isStrictMatch
9.8.0.1 released
- New functions isWildPat
9.8.0.0 released
- Companion to ghc-lib-parser-9.8.1.20231009
9.6.0.2 released
- New functions isTypedSplice,isUntypedSpice
9.6.0.1 released
- Add &tobaseFixities
- Add support for ghc-9.8 series: GH_9_8
- New functions isLetStmtandisDo
9.6.0.0 released
- Add support for ghc-9.6 series: GHC_9_6
0.20221201 released
- Update to ghc-lib-parser-0.20221201
0.20221101 released
- Update to ghc-lib-parser-0.20221101
0.20221001 released
- Update to ghc-lib-parser-0.20221001
0.20220901 released
- Update to ghc-lib-parser-0.20220901
9.4.0.0 released
- Update to ghc-lib-parser-9.4.1.20220807
0.20220801 released
- Update to ghc-lib-parser-0.20220801
9.2.1.1 released
- Update to ghc-lib-parser-9.2.4.20220527
0.20220701 released
- Update to ghc-lib-parser-0.20220701
9.2.1.0 released
- The Cabal flag autonow defaults toFalse:- When autohas the valueFalse:- ghc-lib-parser-exdepends on- ghc-lib-parser
 
- When autohas the valueTrue:- When the build compiler is >=9.2.2 && <9.3.0
- ghc-lib-parser-exdepends on the compiler libs
 
- Otherwise, ghc-lib-parser-exdepends onghc-lib-parser
 
- When the build compiler is >=9.2.2 && <9.3.0
 
- When 
- Deprecated modues removed:
- Language.Haskell.GhclibParserEx.Config
- Language.Haskell.GhclibParserEx.Parse
- Language.Haskell.GhclibParserEx.Outputable
 
0.20220601 released
- Update to ghc-lib-parser-0.20220601
- fakeLlvmConfigremoved for- GHCLIB_API_HEAD
9.2.0.4 released
- Update to ghc-lib-parser-9.2.3.20220527
- Add support for ghc-9.4 series: GHCLIB_API_904
0.20220501 released
- Update to ghc-lib-parser-0.20220501
0.20220401 released
- Update to ghc-lib-parser-0.20220401
9.2.0.3 released
- Fix ghc bounds in auto mode to use ghc-lib not ghc if build compiler ghc-9.2.1 (see issue)
9.2.0.2 released
- Update to ghc-lib-parser-9.2.2.20220307
0.20220301 released
- Update to ghc-lib-parser-0.20220301
8.10.0.24 released
- Update to ghc-lib-parser-8.10.7.20220219
0.20220201 released
- Update to ghc-lib-parser-0.20220201
0.20220103 released
- New function isOverLabel
- Update to ghc-lib-parser-0.20220103
9.0.0.6 released 2021-12-26
- Add back isQuasiQuotefor backwards compatibility
9.0.0.5 released 2021-12-25
- Bugfix to isFieldPunUpdate
- New module Language.Haskell.GHC.Hs.Type.hsto replaceLanguage.Haskell.GHC.Hs.Types.hs(which remains for now but deprecated and will be removed in a future release)- New function isKindTyApp
 
- New function 
- Rename isQuasiQuotetoisQuasiQuoteExpr
- Add new function isQuasiQuoteSplice
- Update to ghc-lib-parser-9.0.2.20211226
9.2.0.1 released 2021-11-01
- Update to ghc-lib-parser-9.2.1.20211101
0.20211101 released 2021-11-01
- Update to ghc-lib-parser-0.20211101
9.2.0.0 released 2021-10-30
- Update to ghc-lib-parser-9.2.1.20211030
0.20211001 released 2021-10-01
- Add isSplicePattoLanguage.Haskell.GhclibParserEx.GHC.Hs.Pat
- Use genericPlatformonGHCLIB_API_HEADinGhclibParserEx.GHC.Settings.Config.hs
- Update to ghc-lib-parser-0.20211001
0.20210901 released 2021-09-01
- Update to ghc-lib-parser-0.20210901
8.10.0.23 released 2021-08-28
- Update to ghc-lib-parser-8.10.7.20210828
8.10.0.22 released 2021-08-14
- Update to ghc-lib-parser-0.20210814
- Added to GhclibParserEx.GHC.Hs.Expr:- isMonadComp
- isListComp
 
0.20210701 released 2021-07-01
- Update to ghc-lib-0.20210701
8.10.0.21 released 2021-06-07
- Bugfix cabal files
8.10.0.20 released 2021-06-06
- Update to ghc-lib-8.10.5.20210606
0.20210601 released 2021-06-01
- Update to ghc-lib-parser-0.20210601
- Update types in GHC.Types.Name.Readerfor ghc-9.2.1,LocatedbecomesLocatedN
0.20210501 released 2021-05-01
- Update to ghc-lib-0.20210501
0.20210331 released 2021-02-31
- Update to ghc-lib-0.20210331
- Update to ghc-lib-parser-9.0.1.20210324
9.0.0.4 released 2021-03-11
- Bugfix for GHC.Hs.Dump
0.20210228 released 2021-02-28
- Update to ghc-lib-0.20210228
9.0.0.3 released 2021-02-08
- Cabal bugfix
9.0.0.2 released 2021-02-08
- Cabal bugfix
8.10.0.19 released 2021-02-08
- Cabal bugfix
8.10.0.18 released 2021-02-06
- Update to ghc-8.10.4.
9.0.0.1 released 2021-02-05
- Upgrade Cabal defaults flag to 9.0.1
9.0.0.0 released 2021-02-05
- Update to ghc-9.0.1
0.20210201 released 2021-02-01
- Update to ghc-lib-0.20210201
0.20210101 released 2021-01-01
- Update to ghc-lib-0.20210101
8.10.0.17 released 2020-12-20
- Update to ghc-8.10.3.
0.20201101 released 2020-11-01
- Update to ghc-lib-0.20201101
0.20201001 released 2020-10-01
- Update to ghc-lib-0.20201001
- GHCLIB_API_811->- GHCLIB_API_HEAD
- Add support for GHCLIB_API_900
0.20200901 released 2020-09-01
- Update to ghc-lib-0.20200901
8.10.0.16 released 2020-08-08
- Update to ghc-8.10.2.
0.20200801 released 2020-08-01
- Update to ghc-lib-0.20200801
8.8.6.1 released 2020-07-16
0.20200704 released 2020-07-04
- New function isImportQualifiedPost
8.10.0.15 released 2020-07-04
- New function isImportQualifiedPost
8.10.0.14 released 2020-06-10
- New function isSymbolRdrName
- New module
- Language.Haskell.GhclibParserEx.GHC.Settings.Configto replace- Language.Haskell.GhclibParserEx.Config(which remains for now but deprecated and will be removed in a future release)
 
0.20200601 released 2020-06-01
8.10.0.13 released 2020-05-31
- Sync extrawith HLint
8.10.0.12 released 2020-05-31
- New module Language.Haskell.GhclibParserEx.GHC.Hs
8.10.0.11 released 2020-05-18
- Upgrade to ghc-lib-parser-8.10.1.20200523
8.10.0.10 released 2020-05-18
- Upgrade to ghc-lib-parser-8.10.1.20200518
8.10.0.9 released 2020-05-16
- New modules
- Language.Haskell.GhclibParserEx.GHC.Hs.Binds
- Language.Haskell.GhclibParserEx.GHC.Hs.ImpExp
 
8.10.0.8 released 2020-05-14
- New module Language.Haskell.GhclibParserEx.GHC.Types.Name.Reader
8.10.0.7 released 2020-05-13
- New function fixitiesFromModule
8.10.0.6 released 2020-05-05
- Bugfix in parsePragmasIntoDynFlagsthat meant that default enabled/disabled extensions subsequently disabled/enabled via pragma weren’t getting disabled/enabled
8.10.0.5 released 2020-05-02
- New modules
- Language.Haskell.GhclibParserEx.GHC.Parser,- Language.Haskell.GhcLibParserEx.GHC.Utils.Outputableto replace- Language.Haskell.GhclibParserEx.Parseand- Language.Haskell.GhclibParserEx.Outputable(which remain for now but deprecated and will be removed in a future release)
 
0.20200501 released 2020-05-01
8.10.0.4 released 2020-04-04
- Add expression predicates isWholeFrac,isFieldPunUpdate,isStrictMatch,isMultiIf,isProc,isTransStmt;
- Add pattern predicate isPFieldPun.
8.10.0.3 released 2020-04-03
- strToPatnow returns an- LPat GhcPs
- parseExpressionnow returns an- ParseResult (LHsExpr GhcPs)(>= ghc-8.10)
0.20200401 released 2020-04-01
8.10.0.2 released 2020-03-30
- Rework cabal flags; allow full configurability with a good default:
- Have two flags autoandno-ghc-lib. Default behavior exactly ashlintlinkingghc-lib-parser-8.10.*if not onghc-8.10.*andghc-8.10.*otherwise.
 
- Have two flags 
8.10.0.1 released 2020-03-28
- Unless the Cabal flag ghc-libistruelink native ghc-libs (without regard for the compiler version)
- Change the signature of hasPFieldsDotDot- This has no impact on 8.8 parse trees but matters when it comes to >= 8.10
 
- Change the signature of isPFieldWildcard- This has no impact on 8.8 parse trees but matters when it comes to >= 8.10
 
8.10.0.0 released 2020-03-24
- First release of the ghc-8.10 series
8.8.6.0 released 2020-03-22
- Language.Haskell.GhclibParserEx.DynFlagsis now- Language.Haskell.GhclibParserEx.GHC.Driver.Session
8.8.5.8 released 2020-03-17
- New module Language.Haskell.GhclibParserEx.GHC.Driver.Flags- Export Boundedinstance forLanguage(https://github.com/shayne-fletcher/ghc-lib-parser-ex/issues/30)
 
- Export 
8.8.5.7 released 2020-03-16
- From Language.Haskell.GhclibParserEx.Fixity:- Supply missing fixities (https://github.com/ndmitchell/hlint/issues/913)
 
- In Language.Haskell.GhclibParserEx.DynFlags:- Give ExtensionanOrdinstance
 
- Give 
8.8.5.6 released 2020-03-13
- From Language.Haskell.GhclibParserEx.Fixity:- Expose infixr_,infixl_,infix_andfixity
 
- Expose 
8.8.5.5 released 2020-03-12
- Remove from Language.Haskell.GhclibParserEx.Fixity:- preludeFixities
- baseFixities
 
8.8.5.4 released 2020-03-11
- Expose from Language.Haskell.GhclibParserEx.Fixity:- preludeFixities
- baseFixities
- lensFixities
- otherFixities
 
0.20200301 released 2020-03-01
8.8.5.3 released 2020-02-25
- New modules:
- Language.Haskell.GhclibParserEx.Pat
- Language.Haskell.GhclibParserEx.Types
- Language.Haskell.GhclibParserEx.Decls
 
8.8.5.2 released 2020-02-16
- New DynFlagsfunctionsreadExtension,extensionImplications.
8.8.5.1 released 2020-02-09
- Expression predicate tests.
8.8.5.0 released 2020-02-07
- Expose impliedGFlagsand friends fromDynFlags(https://github.com/shayne-fletcher/ghc-lib-parser-ex/issues/19).
8.8.4.0 released 2020-02-01
- New modules:
- Language.Haskell.GhclibparserEx.GHC.Hs.Expr
 
- Moved modules:
- Language.Haskell.GhclibparserEx.HsExtendInstances->- Language.Haskell.GhclibparserEx.GHC.Hs.ExtendInstances;
 
0.20200201.1.0 released 2020-02-01
- New modules:
- Language.Haskell.GhclibparserEx.HsExtendInstances.
 
8.8.3.0 released 2020-01-25
- Change in versioning scheme;
- New modules:
- Language.Haskell.GhclibParserEx.Config
- Language.Haskell.GhclibParserEx.DynFlags
 
- parsePragmasIntoDynFlagssignature change.
8.8.1.20191204, 8.8.2, 0.20200102 released 2020-01-18
- First releases
