Learning materials for ghc-exactprint?

This page summarizes the projects mentioned and recommended in the original post on /r/haskell

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • ghc-exactprint

    GHC version of haskell-src-exts exactPrint

  • in one of my project, I need to do some manipulation and transformation of Haskell source code files and AFAIK ghc-exactprint is the right tool for that. Unfortunately I have zero experience with this one, there seems not to be any more detailed documentation/tutorial examples. What is the best way how to learn this library? Can you recommend any sources?

  • ghc-lib

    The GHC API, decoupled from GHC versions

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • haskell-language-server

    Official haskell ide support via language server (LSP). Successor of ghcide & haskell-ide-engine.

  • In HLS, these days we've got a reasonably good interface around exacptrint. The idea is that you can construct a Graft which corresponds to the transformations you'd like to make, and that these form a monoid. From there you can just use graft to replace a SrcSpan with the node you've synthesized, and it should (mostly) take care of the annotations.

  • haskell-language-server

    Integration point for ghcide and haskell-ide-engine. One IDE to rule them all. (by isovector)

  • If you're in an environment where you've initialized GHC (places like GHCI, or inside of a project that works with hie-bios), you can use this module to easily inspect GHC types. I like to define orphan Show instances where show = unsafeRender, which gives me some semblance of a reasonable workflow.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts