Commit 6540b711 authored by Ben Gamari's avatar Ben Gamari 🐢

One final sweep over release notes

parent c760ae37
......@@ -24,6 +24,10 @@ The highlights, since the 8.2.1 release, are:
- Further improvements in code generation
- Incoporation of library changes including the Phase 2 of the Semigroup-Monoid Proposal
- A variety of Windows compatibility improvements
- Many, many bug fixes.
......@@ -334,43 +338,6 @@ Template Haskell
- ``Language.Haskell.TH.FamFlavour``, which was deprecated in GHC 8.2,
has been removed.
``ghc`` library
~~~~~~~~~~~~~~~
- hsSyn Abstract Syntax Tree (AST) is now extensible via the mechanism described in `Trees that Grow <http://www.jucs.org/jucs_23_1/trees_that_grow/jucs_23_01_0042_0062_najd.pdf>`_
The main change for users of the GHC API is that the AST is no longer indexed
by the type used as the identifier, but by a specific index type, ::
type GhcPs = GhcPass 'Parsed -- Old 'RdrName' type param
type GhcRn = GhcPass 'Renamed -- Old 'Name' type param
type GhcTc = GhcPass 'Typechecked -- Old 'Id' type para,
type GhcTcId = GhcTc -- Old 'TcId' type param
The simplest way to support the current GHC as well as earlier ones is to define ::
#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 all hardcoded index types accordingly. For polymorphic types,
the constraint ::
#if MIN_VERSION_ghc(8,3,0)
-- |bundle up the constraints required for a trees that grow pass
type IsPass pass = (DataId pass, OutputableBndrId pass, SourceTextX pass)
else
type IsPass pass = (DataId pass, OutputableBndrId pass)
#endif
can be used.
``base`` library
~~~~~~~~~~~~~~~~
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment