- the class HasSrcSpan, and its functions (e.g., cL and dL), are introduced
- some instances of HasSrcSpan are introduced
- some constructors L are replaced with cL
- some patterns L are replaced with dL view pattern
- XPat is renamed to NewPat
- some type annotation are necessarily updated updated (e.g., Pat p --> Pat (GhcPass p))
- (there was a bug in an earlier version of this patch related to using functor on Located things that is fixed)
- GHC and the related code (e.g., Haddock) fully compile on my Linux system
- the patch passes the tests and ./Validate
- rGHC Glasgow Haskell Compiler
No Unit Test Coverage
- Build Status
Buildable 22112 Build 51074: [GHC] Linux/amd64: Continuous Integration Build 51073: [GHC] OSX/amd64: Continuous Integration Build 51072: [GHC] Windows/amd64: Continuous Integration Build 51071: arc lint + arc unit
I would like to use a pattern synonym (as we did in the wiki), but then we will have issues with the incomplete pattern warnings, wouldn't we?
Can we use the COMPLETE pragma for such a polymorphic pattern instantiated at different types?
It's quite hard to review this patch because it's dominated by routine changes, so it's hard to find the actual payload.
Can you just identify the payload? You partly do that in the Description, but it'd be helpful to say which module these various things are defined in.
Why does HsPat change but not HsExpr say?
An unrelated thing: we should rename Pat to HsPat for consistency.
Other remaks by email.
This is very strange. Why not just add a case to repP? We know this is GhcRn! Much more direct and (probably) more efficient.