|
# Implementation of Trees that Grow
|
|
# Implementation of Trees that Grow
|
|
|
|
|
|
|
|
|
|
In this page, we discuss the overall plan and details of implementing [ Trees that Grow](http://www.jucs.org/jucs_23_1/trees_that_grow/jucs_23_01_0042_0062_najd.pdf) in GHC.
|
|
In this page, we discuss the overall plan and details of implementing Trees that Grow in GHC. Re-engineering `HsSyn` is a major exercise that touches a lot of code, so we need to move carefully. This page outlines the plan.
|
|
The motivation and some background information can be found at the [ report](https://ghc.haskell.org/trac/ghc/wiki/NativeMetaprogramming) of a related Summer of Haskell project.
|
|
|
|
|
|
- [ The Trees that Grow paper](http://www.jucs.org/jucs_23_1/trees_that_grow/jucs_23_01_0042_0062_najd.pdf)
|
|
|
|
- The motivation and some background information can be found at the [ report](https://ghc.haskell.org/trac/ghc/wiki/NativeMetaprogramming) of a related Summer of Haskell project.
|
|
|
|
- [Notes about instances](implementing-trees-that-grow/instances)
|
|
|
|
- Main GHC branch: `wip/GrowableAST`
|
|
|
|
|
|
|
|
|
|
|
|
Main protagonists: Shayan Najd and Alan Zimmerman.
|
|
|
|
|
|
|
|
## Goals
|
|
|
|
|
|
|
|
|
|
The long term goal is to use a single data type for
|
|
The long term goal is to use a single data type for
|
... | @@ -20,15 +29,6 @@ A major benefit is that we believe that this re-engineering will |
... | @@ -20,15 +29,6 @@ A major benefit is that we believe that this re-engineering will |
|
- Completely subsume Alan Zimmerman's [ Api Annotations](https://ghc.haskell.org/trac/ghc/wiki/ApiAnnotations), making them much easier to use.
|
|
- Completely subsume Alan Zimmerman's [ Api Annotations](https://ghc.haskell.org/trac/ghc/wiki/ApiAnnotations), making them much easier to use.
|
|
- Allow us to get rid of the annoying alternation between `t` and `Located t`, which pervades `HsSyn`
|
|
- Allow us to get rid of the annoying alternation between `t` and `Located t`, which pervades `HsSyn`
|
|
|
|
|
|
|
|
|
|
Re-engineering `HsSyn` is a major exercise that touches a lot of code, so we need to move carefully. This page outlines the plan.
|
|
|
|
|
|
|
|
|
|
|
|
Main protagonists: Shayan Najd and Alan Zimmerman.
|
|
|
|
|
|
|
|
|
|
|
|
Main GHC branch: `wip/GrowableAST`
|
|
|
|
|
|
|
|
## Status
|
|
## Status
|
|
|
|
|
|
|
|
|
... | | ... | |