Note [Rebindable syntax and XXExprGhcRn]
We implement rebindable syntax (RS) support by performing a desugaring
in the renamer. We transform GhcPs expressions and patterns affected by
RS into the appropriate desugared form, but **annotated with the original
expression/pattern**.
Let us consider a piece of code like:
{-# LANGUAGE RebindableSyntax # References 0
This Note does not link to any other.
Referenced by 18
- GHC.Hs.Pat call site ×4
- GHC.Hs.Expr call site ×2
- Handling overloaded and rebindable constructs GHC.Rename.Expr
- Handling overloaded and rebindable patterns GHC.Rename.Pat
- Desugaring overloaded list patterns GHC.Rename.Pat
- GHC.Rename.Utils call site
- "Arising from" messages in generated code GHC.Tc.Errors.Ppr
- GHC.Tc.Gen.App call site
- Expanding HsDo with XXExprGhcRn GHC.Tc.Gen.Do
- GHC.Tc.Types.LclEnv call site
- Error contexts in generated code GHC.Tc.Utils.Monad
- GHC.Tc.Utils.Monad call site
- Generated code and pattern-match checking GHC.Types.Basic
- Language.Haskell.Syntax.Expr call site