Trees that Grow / D3609

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Trees that Grow / D3609

Alan & Kim Zimmerman
This is a heads up that D3609[1], the first step toward implementing Trees that Grow[2] for the hsSyn AST is about to land in master.

The key change is that it is replacing the HsSyn type parameter with one that is an index into a set of type families, enabling the extension points (for a future diff).

Any current work in progress branches will need a one-time search and replace of all type parameters as follows

RdrName  -> GhcPs
Name  -> GhcRs
Var -> GhcTc
Id -> GhcTcId


Any code that makes use of the GHC API and needs to compile with earlier versions too can do something like

      #if MIN_VERSION_ghc(8,3,0)
      type ParseI     = GhcPs
      type RenameI    = GhcRn
      type TypecheckI = GhcTc
      #else
      type ParseI     = RdrName
      type RenameI    = Name
      type TypecheckI = Var
      #endif

and then replace the RdrName / Name / Var type params with ParseI / RenameI / TypecheckI.

A real world example is in ghc-exactprint[3]

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Loading...