ghc-hs-meta: Translate Haskell source to Template Haskell expression

[ bsd3, ghc, library, template-haskell ] [ Propose Tags ]

Translate from Haskell source code to Template Haskell expressions using the GHC parser


[Skip to Readme]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0
Change log CHANGELOG.md
Dependencies base (>=4.14 && <4.17), bytestring (>=0.10 && <0.12), ghc (>=8.10.7 && <9.3), ghc-boot (>=8.10.7 && <9.3), template-haskell (>=2.16.0 && <2.19) [details]
License BSD-3-Clause[multiple license files]
Author Zachary Wood
Maintainer zac.wood@hey.com
Category ghc, template-haskell
Source repo head: git clone https://github.com/zacwood9/ghc-hs-meta
Uploaded by zallocate at 2022-02-05T18:48:11Z
Distributions NixOS:0.1.0.0
Downloads 39 total (1 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for ghc-hs-meta-0.1.0.0

[back to package description]

ghc-hs-meta

Generate Template Haskell expressions from Haskell source code using the GHC parser. This package runs on GHC versions 8.10.7, 9.0.2, and 9.2.1.

Usage

Pass a String containing Haskell source code to parseExp. Example from the tests:

case parseExp "a @b" of
    Right exp -> exp `shouldBe` TH.AppTypeE (TH.VarE (TH.mkName "a")) (TH.VarT (TH.mkName "b"))
    Left (_, _, errMsg) -> error errMsg

See Hackage documentation for more documentation.

Thank you, PyF

This code originated from the excellent parser included in the PyF package. I extracted the relevant code and refactored/renamed things to be usable in a more general context. Without PyF, this could wouldn't have been possible. Thank you!

The original license for PyF can be found in the LICENSE-PyF file included in this repository.