[Git][ghc/ghc][wip/az/locateda-epa-improve-2023-07-15] EPA: Add '=>' to TrailingAnn

Alan Zimmerman (@alanz) gitlab at gitlab.haskell.org
Wed Jul 19 21:02:32 UTC 2023



Alan Zimmerman pushed to branch wip/az/locateda-epa-improve-2023-07-15 at Glasgow Haskell Compiler / GHC


Commits:
a361f826 by Alan Zimmerman at 2023-07-19T22:01:50+01:00
EPA: Add '=>' to TrailingAnn

This is used as a trailing annotation in a context.
Add its normal and unicode variants.

Note that we keep the parsed representation the same, but make use of
it when exact printing.

- - - - -


7 changed files:

- testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
- testsuite/tests/parser/should_compile/DumpSemis.stderr
- testsuite/tests/parser/should_compile/T15323.stderr
- testsuite/tests/typecheck/should_compile/T15242.stderr
- testsuite/tests/typecheck/should_compile/all.T
- utils/check-exact/ExactPrint.hs
- utils/check-exact/Utils.hs


Changes:

=====================================
testsuite/tests/parser/should_compile/DumpRenamedAst.stderr
=====================================
@@ -2381,15 +2381,6 @@
      (Nothing)
      (Nothing)))
   ,(L
-<<<<<<< current
-    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:5:1-16 })
-    (ImportDecl
-     (XImportDeclPass
-      (EpAnn
-       (Anchor
-        { DumpRenamedAst.hs:5:1-16 }
-        (UnchangedAnchor))
-=======
     ((EpAnnS
       (EpaSpan { DumpRenamedAst.hs:5:1-16 })
       (AnnListItem
@@ -2399,12 +2390,7 @@
     (ImportDecl
      (XImportDeclPass
       (EpAnn
-<<<<<<< current
-       (EpaSpan { DumpRenamedAst.hs:6:1-6 })
->>>>>>> fd352736b6 (Put BufSpan into RealSrcSpan)
-=======
        (EpaSpan { DumpRenamedAst.hs:5:1-16 })
->>>>>>> patched
        (EpAnnImportDecl
         (EpaSpan { DumpRenamedAst.hs:5:1-6 })
         (Nothing)
@@ -2431,13 +2417,6 @@
      (Nothing)
      (Nothing)))
   ,(L
-    (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:7:1-23 })
-    (ImportDecl
-     (XImportDeclPass
-      (EpAnn
-       (Anchor
-        { DumpRenamedAst.hs:7:1-23 }
-        (UnchangedAnchor))
     ((EpAnnS
       (EpaSpan { DumpRenamedAst.hs:7:1-23 })
       (AnnListItem


=====================================
testsuite/tests/parser/should_compile/DumpSemis.stderr
=====================================
@@ -1503,7 +1503,7 @@
            (NoExtField)
            (L
             (SrcSpanAnn (EpAnn
-                         (EpaSpan { DumpSemis.hs:31:6-23 })
+                         (EpaSpan { DumpSemis.hs:31:6-20 })
                          (AnnContext
                           (Just
                            ((,)
@@ -1514,7 +1514,7 @@
                           [(EpaSpan { DumpSemis.hs:31:19 })
                           ,(EpaSpan { DumpSemis.hs:31:20 })])
                          (EpaComments
-                          [])) { DumpSemis.hs:31:6-23 })
+                          [])) { DumpSemis.hs:31:6-20 })
             [(L
               ((EpAnnS
                 (EpaSpan { DumpSemis.hs:31:8-11 })


=====================================
testsuite/tests/parser/should_compile/T15323.stderr
=====================================
@@ -160,7 +160,7 @@
            (Just
             (L
              (SrcSpanAnn (EpAnn
-                          (EpaSpan { T15323.hs:6:31-39 })
+                          (EpaSpan { T15323.hs:6:31-36 })
                           (AnnContext
                            (Just
                             ((,)
@@ -169,7 +169,7 @@
                            []
                            [])
                           (EpaComments
-                           [])) { T15323.hs:6:31-39 })
+                           [])) { T15323.hs:6:31-36 })
              [(L
                ((EpAnnS
                  (EpaSpan { T15323.hs:6:31-36 })


=====================================
testsuite/tests/typecheck/should_compile/T15242.stderr
=====================================
@@ -1,17 +1,1851 @@
-(EpaSpan { T15242.hs:6:5-41 })
-(EpaSpan { T15242.hs:6:6-40 })
-(EpaSpan { T15242.hs:6:7-39 })
-(EpaSpan { T15242.hs:6:8-35 })
-(EpaSpan { T15242.hs:6:9-34 })
-(EpaSpan { T15242.hs:6:10-33 })
-(EpaSpan { T15242.hs:6:11-29 })
-(EpaSpan { T15242.hs:6:12-25 })
-(EpaSpan { T15242.hs:6:13-21 })
-(EpaSpan { T15242.hs:6:14-20 })
-(EpaSpan { T15242.hs:5:5-17 })
-(EpaSpan { T15242.hs:5:6-16 })
-[]))
-(EpaSpan { T15242.hs:5:19-37 })
-(EpaSpan { T15242.hs:5:20-32 })
-(EpaSpan { T15242.hs:5:21-31 })
-[]))
\ No newline at end of file
+
+==================== Typechecker AST ====================
+
+{Bag(LocatedA (HsBind Var)):
+ [(L
+   ((EpAnnS
+     (EpaSpan { <no location info> })
+     (AnnListItem
+      [])
+     (EpaComments
+      [])))
+   (VarBind
+    (NoExtField)
+    {Var: T15242.$trModule}
+    (L
+     ((EpAnnS
+       (EpaSpan { <no location info> })
+       (AnnListItem
+        [])
+       (EpaComments
+        [])))
+     (HsApp
+      (EpAnn
+       (EpaDelta (SameLine 0) [])
+       (NoEpAnns)
+       (EpaComments
+        []))
+      (L
+       ((EpAnnS
+         (EpaSpan { <no location info> })
+         (AnnListItem
+          [])
+         (EpaComments
+          [])))
+       (HsApp
+        (EpAnn
+         (EpaDelta (SameLine 0) [])
+         (NoEpAnns)
+         (EpaComments
+          []))
+        (L
+         ((EpAnnS
+           (EpaSpan { <no location info> })
+           (AnnListItem
+            [])
+           (EpaComments
+            [])))
+         (XExpr
+          (ConLikeTc
+           ({abstract:ConLike})
+           []
+           [])))
+        (L
+         ((EpAnnS
+           (EpaSpan { <no location info> })
+           (AnnListItem
+            [])
+           (EpaComments
+            [])))
+         (HsPar
+          (EpAnnNotUsed)
+          (L
+           (NoTokenLoc)
+           (HsTok))
+          (L
+           ((EpAnnS
+             (EpaSpan { <no location info> })
+             (AnnListItem
+              [])
+             (EpaComments
+              [])))
+           (HsApp
+            (EpAnn
+             (EpaDelta (SameLine 0) [])
+             (NoEpAnns)
+             (EpaComments
+              []))
+            (L
+             ((EpAnnS
+               (EpaSpan { <no location info> })
+               (AnnListItem
+                [])
+               (EpaComments
+                [])))
+             (XExpr
+              (ConLikeTc
+               ({abstract:ConLike})
+               []
+               [])))
+            (L
+             ((EpAnnS
+               (EpaSpan { <no location info> })
+               (AnnListItem
+                [])
+               (EpaComments
+                [])))
+             (HsLit
+              (EpAnn
+               (EpaDelta (SameLine 0) [])
+               (NoEpAnns)
+               (EpaComments
+                []))
+              (HsStringPrim
+               (NoSourceText)
+               "main")))))
+          (L
+           (NoTokenLoc)
+           (HsTok))))))
+      (L
+       ((EpAnnS
+         (EpaSpan { <no location info> })
+         (AnnListItem
+          [])
+         (EpaComments
+          [])))
+       (HsPar
+        (EpAnnNotUsed)
+        (L
+         (NoTokenLoc)
+         (HsTok))
+        (L
+         ((EpAnnS
+           (EpaSpan { <no location info> })
+           (AnnListItem
+            [])
+           (EpaComments
+            [])))
+         (HsApp
+          (EpAnn
+           (EpaDelta (SameLine 0) [])
+           (NoEpAnns)
+           (EpaComments
+            []))
+          (L
+           ((EpAnnS
+             (EpaSpan { <no location info> })
+             (AnnListItem
+              [])
+             (EpaComments
+              [])))
+           (XExpr
+            (ConLikeTc
+             ({abstract:ConLike})
+             []
+             [])))
+          (L
+           ((EpAnnS
+             (EpaSpan { <no location info> })
+             (AnnListItem
+              [])
+             (EpaComments
+              [])))
+           (HsLit
+            (EpAnn
+             (EpaDelta (SameLine 0) [])
+             (NoEpAnns)
+             (EpaComments
+              []))
+            (HsStringPrim
+             (NoSourceText)
+             "T15242")))))
+        (L
+         (NoTokenLoc)
+         (HsTok))))))))
+ ,(L
+   ((EpAnnS
+     (EpaSpan { T15242.hs:6:1-44 })
+     (AnnListItem
+      [])
+     (EpaComments
+      [])))
+   (XHsBindsLR
+    (AbsBinds
+     [{Var: a_awV}]
+     []
+     [(ABE
+       {Var: g}
+       {Var: g_awX}
+       (WpHole)
+       (SpecPrags
+        []))]
+     [({abstract:TcEvBinds})]
+     {Bag(LocatedA (HsBind Var)):
+      [(L
+        ((EpAnnS
+          (EpaSpan { T15242.hs:6:1-44 })
+          (AnnListItem
+           [])
+          (EpaComments
+           [])))
+        (FunBind
+         ((,)
+          (WpHole)
+          [])
+         (L
+          ((EpAnnS
+            (EpaSpan { T15242.hs:6:1 })
+            (NameAnnTrailing
+             [])
+            (EpaComments
+             [])))
+          {Var: g_awX})
+         (MG
+          (MatchGroupTc
+           []
+           (FunTy
+            (FTF_T_T)
+            (TyConApp
+             ({abstract:TyCon})
+             [])
+            (TyVarTy
+             {Var: a_awV})
+            (TyVarTy
+             {Var: a_awV}))
+           (FromSource))
+          (L
+           (SrcSpanAnn (EpAnnNotUsed) { T15242.hs:6:1-44 })
+           [(L
+             ((EpAnnS
+               (EpaSpan { T15242.hs:6:1-44 })
+               (AnnListItem
+                [])
+               (EpaComments
+                [])))
+             (Match
+              (EpAnnNotUsed)
+              (FunRhs
+               (L
+                ((EpAnnS
+                  (EpaSpan { T15242.hs:6:1 })
+                  (NameAnnTrailing
+                   [])
+                  (EpaComments
+                   [])))
+                {Name: g})
+               (Prefix)
+               (NoSrcStrict))
+              []
+              (GRHSs
+               (EpaComments
+                [])
+               [(L
+                 (EpAnnS
+                  (EpaSpan { T15242.hs:6:3-44 })
+                  (NoEpAnns)
+                  (EpaComments
+                   []))
+                 (GRHS
+                  (EpAnnNotUsed)
+                  []
+                  (L
+                   ((EpAnnS
+                     (EpaSpan { T15242.hs:6:5-44 })
+                     (AnnListItem
+                      [])
+                     (EpaComments
+                      [])))
+                   (HsApp
+                    (EpAnnNotUsed)
+                    (L
+                     ((EpAnnS
+                       (EpaSpan { T15242.hs:6:5-41 })
+                       (AnnListItem
+                        [])
+                       (EpaComments
+                        [])))
+                     (HsPar
+                      (EpAnnNotUsed)
+                      (L
+                       (NoTokenLoc)
+                       (HsTok))
+                      (L
+                       ((EpAnnS
+                         (EpaSpan { T15242.hs:6:6-40 })
+                         (AnnListItem
+                          [])
+                         (EpaComments
+                          [])))
+                       (HsPar
+                        (EpAnnNotUsed)
+                        (L
+                         (NoTokenLoc)
+                         (HsTok))
+                        (L
+                         ((EpAnnS
+                           (EpaSpan { T15242.hs:6:7-39 })
+                           (AnnListItem
+                            [])
+                           (EpaComments
+                            [])))
+                         (HsPar
+                          (EpAnnNotUsed)
+                          (L
+                           (NoTokenLoc)
+                           (HsTok))
+                          (L
+                           ((EpAnnS
+                             (EpaSpan { T15242.hs:6:8-38 })
+                             (AnnListItem
+                              [])
+                             (EpaComments
+                              [])))
+                           (HsApp
+                            (EpAnnNotUsed)
+                            (L
+                             ((EpAnnS
+                               (EpaSpan { T15242.hs:6:8-35 })
+                               (AnnListItem
+                                [])
+                               (EpaComments
+                                [])))
+                             (HsPar
+                              (EpAnnNotUsed)
+                              (L
+                               (NoTokenLoc)
+                               (HsTok))
+                              (L
+                               ((EpAnnS
+                                 (EpaSpan { T15242.hs:6:9-34 })
+                                 (AnnListItem
+                                  [])
+                                 (EpaComments
+                                  [])))
+                               (HsPar
+                                (EpAnnNotUsed)
+                                (L
+                                 (NoTokenLoc)
+                                 (HsTok))
+                                (L
+                                 ((EpAnnS
+                                   (EpaSpan { T15242.hs:6:10-33 })
+                                   (AnnListItem
+                                    [])
+                                   (EpaComments
+                                    [])))
+                                 (HsPar
+                                  (EpAnnNotUsed)
+                                  (L
+                                   (NoTokenLoc)
+                                   (HsTok))
+                                  (L
+                                   ((EpAnnS
+                                     (EpaSpan { T15242.hs:6:11-32 })
+                                     (AnnListItem
+                                      [])
+                                     (EpaComments
+                                      [])))
+                                   (HsApp
+                                    (EpAnnNotUsed)
+                                    (L
+                                     ((EpAnnS
+                                       (EpaSpan { T15242.hs:6:11-29 })
+                                       (AnnListItem
+                                        [])
+                                       (EpaComments
+                                        [])))
+                                     (HsPar
+                                      (EpAnnNotUsed)
+                                      (L
+                                       (NoTokenLoc)
+                                       (HsTok))
+                                      (L
+                                       ((EpAnnS
+                                         (EpaSpan { T15242.hs:6:12-28 })
+                                         (AnnListItem
+                                          [])
+                                         (EpaComments
+                                          [])))
+                                       (HsApp
+                                        (EpAnnNotUsed)
+                                        (L
+                                         ((EpAnnS
+                                           (EpaSpan { T15242.hs:6:12-25 })
+                                           (AnnListItem
+                                            [])
+                                           (EpaComments
+                                            [])))
+                                         (HsPar
+                                          (EpAnnNotUsed)
+                                          (L
+                                           (NoTokenLoc)
+                                           (HsTok))
+                                          (L
+                                           ((EpAnnS
+                                             (EpaSpan { T15242.hs:6:13-24 })
+                                             (AnnListItem
+                                              [])
+                                             (EpaComments
+                                              [])))
+                                           (HsApp
+                                            (EpAnnNotUsed)
+                                            (L
+                                             ((EpAnnS
+                                               (EpaSpan { T15242.hs:6:13-21 })
+                                               (AnnListItem
+                                                [])
+                                               (EpaComments
+                                                [])))
+                                             (HsPar
+                                              (EpAnnNotUsed)
+                                              (L
+                                               (NoTokenLoc)
+                                               (HsTok))
+                                              (L
+                                               ((EpAnnS
+                                                 (EpaSpan { T15242.hs:6:14-20 })
+                                                 (AnnListItem
+                                                  [])
+                                                 (EpaComments
+                                                  [])))
+                                               (HsPar
+                                                (EpAnnNotUsed)
+                                                (L
+                                                 (NoTokenLoc)
+                                                 (HsTok))
+                                                (L
+                                                 ((EpAnnS
+                                                   (EpaSpan { T15242.hs:6:15-19 })
+                                                   (AnnListItem
+                                                    [])
+                                                   (EpaComments
+                                                    [])))
+                                                 (HsApp
+                                                  (EpAnnNotUsed)
+                                                  (L
+                                                   ((EpAnnS
+                                                     (EpaSpan { T15242.hs:6:15-16 })
+                                                     (AnnListItem
+                                                      [])
+                                                     (EpaComments
+                                                      [])))
+                                                   (XExpr
+                                                    (WrapExpr
+                                                     (HsWrap
+                                                      (WpTyApp
+                                                       (FunTy
+                                                        (FTF_T_T)
+                                                        (TyConApp
+                                                         ({abstract:TyCon})
+                                                         [])
+                                                        (FunTy
+                                                         (FTF_T_T)
+                                                         (TyConApp
+                                                          ({abstract:TyCon})
+                                                          [])
+                                                         (FunTy
+                                                          (FTF_T_T)
+                                                          (TyConApp
+                                                           ({abstract:TyCon})
+                                                           [])
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV})))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))))
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV})))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV})))))
+                                                         (FunTy
+                                                          (FTF_T_T)
+                                                          (TyConApp
+                                                           ({abstract:TyCon})
+                                                           [])
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV})))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))))
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV})))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))))))
+                                                        (FunTy
+                                                         (FTF_T_T)
+                                                         (TyConApp
+                                                          ({abstract:TyCon})
+                                                          [])
+                                                         (FunTy
+                                                          (FTF_T_T)
+                                                          (TyConApp
+                                                           ({abstract:TyCon})
+                                                           [])
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV})))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))))
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV})))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV})))))
+                                                         (FunTy
+                                                          (FTF_T_T)
+                                                          (TyConApp
+                                                           ({abstract:TyCon})
+                                                           [])
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV})))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))))
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV})))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))
+                                                            (FunTy
+                                                             (FTF_T_T)
+                                                             (TyConApp
+                                                              ({abstract:TyCon})
+                                                              [])
+                                                             (TyVarTy
+                                                              {Var: a_awV})
+                                                             (TyVarTy
+                                                              {Var: a_awV}))))))))
+                                                      (HsVar
+                                                       (NoExtField)
+                                                       (L
+                                                        ((EpAnnS
+                                                          (EpaSpan { <no location info> })
+                                                          (NameAnnTrailing
+                                                           [])
+                                                          (EpaComments
+                                                           [])))
+                                                        {Var: id}))))))
+                                                  (L
+                                                   ((EpAnnS
+                                                     (EpaSpan { T15242.hs:6:18-19 })
+                                                     (AnnListItem
+                                                      [])
+                                                     (EpaComments
+                                                      [])))
+                                                   (XExpr
+                                                    (WrapExpr
+                                                     (HsWrap
+                                                      (WpTyApp
+                                                       (FunTy
+                                                        (FTF_T_T)
+                                                        (TyConApp
+                                                         ({abstract:TyCon})
+                                                         [])
+                                                        (FunTy
+                                                         (FTF_T_T)
+                                                         (TyConApp
+                                                          ({abstract:TyCon})
+                                                          [])
+                                                         (FunTy
+                                                          (FTF_T_T)
+                                                          (TyConApp
+                                                           ({abstract:TyCon})
+                                                           [])
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV}))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV})))
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV}))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV}))))
+                                                         (FunTy
+                                                          (FTF_T_T)
+                                                          (TyConApp
+                                                           ({abstract:TyCon})
+                                                           [])
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV}))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV})))
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV}))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV})))))
+                                                        (FunTy
+                                                         (FTF_T_T)
+                                                         (TyConApp
+                                                          ({abstract:TyCon})
+                                                          [])
+                                                         (FunTy
+                                                          (FTF_T_T)
+                                                          (TyConApp
+                                                           ({abstract:TyCon})
+                                                           [])
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV}))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV})))
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV}))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV}))))
+                                                         (FunTy
+                                                          (FTF_T_T)
+                                                          (TyConApp
+                                                           ({abstract:TyCon})
+                                                           [])
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV}))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV})))
+                                                          (FunTy
+                                                           (FTF_T_T)
+                                                           (TyConApp
+                                                            ({abstract:TyCon})
+                                                            [])
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV}))
+                                                           (FunTy
+                                                            (FTF_T_T)
+                                                            (TyConApp
+                                                             ({abstract:TyCon})
+                                                             [])
+                                                            (TyVarTy
+                                                             {Var: a_awV})
+                                                            (TyVarTy
+                                                             {Var: a_awV})))))))
+                                                      (HsVar
+                                                       (NoExtField)
+                                                       (L
+                                                        ((EpAnnS
+                                                          (EpaSpan { <no location info> })
+                                                          (NameAnnTrailing
+                                                           [])
+                                                          (EpaComments
+                                                           [])))
+                                                        {Var: id}))))))))
+                                                (L
+                                                 (NoTokenLoc)
+                                                 (HsTok))))
+                                              (L
+                                               (NoTokenLoc)
+                                               (HsTok))))
+                                            (L
+                                             ((EpAnnS
+                                               (EpaSpan { T15242.hs:6:23-24 })
+                                               (AnnListItem
+                                                [])
+                                               (EpaComments
+                                                [])))
+                                             (XExpr
+                                              (WrapExpr
+                                               (HsWrap
+                                                (WpTyApp
+                                                 (FunTy
+                                                  (FTF_T_T)
+                                                  (TyConApp
+                                                   ({abstract:TyCon})
+                                                   [])
+                                                  (FunTy
+                                                   (FTF_T_T)
+                                                   (TyConApp
+                                                    ({abstract:TyCon})
+                                                    [])
+                                                   (FunTy
+                                                    (FTF_T_T)
+                                                    (TyConApp
+                                                     ({abstract:TyCon})
+                                                     [])
+                                                    (FunTy
+                                                     (FTF_T_T)
+                                                     (TyConApp
+                                                      ({abstract:TyCon})
+                                                      [])
+                                                     (TyVarTy
+                                                      {Var: a_awV})
+                                                     (TyVarTy
+                                                      {Var: a_awV}))
+                                                    (FunTy
+                                                     (FTF_T_T)
+                                                     (TyConApp
+                                                      ({abstract:TyCon})
+                                                      [])
+                                                     (TyVarTy
+                                                      {Var: a_awV})
+                                                     (TyVarTy
+                                                      {Var: a_awV})))
+                                                   (FunTy
+                                                    (FTF_T_T)
+                                                    (TyConApp
+                                                     ({abstract:TyCon})
+                                                     [])
+                                                    (FunTy
+                                                     (FTF_T_T)
+                                                     (TyConApp
+                                                      ({abstract:TyCon})
+                                                      [])
+                                                     (TyVarTy
+                                                      {Var: a_awV})
+                                                     (TyVarTy
+                                                      {Var: a_awV}))
+                                                    (FunTy
+                                                     (FTF_T_T)
+                                                     (TyConApp
+                                                      ({abstract:TyCon})
+                                                      [])
+                                                     (TyVarTy
+                                                      {Var: a_awV})
+                                                     (TyVarTy
+                                                      {Var: a_awV}))))
+                                                  (FunTy
+                                                   (FTF_T_T)
+                                                   (TyConApp
+                                                    ({abstract:TyCon})
+                                                    [])
+                                                   (FunTy
+                                                    (FTF_T_T)
+                                                    (TyConApp
+                                                     ({abstract:TyCon})
+                                                     [])
+                                                    (FunTy
+                                                     (FTF_T_T)
+                                                     (TyConApp
+                                                      ({abstract:TyCon})
+                                                      [])
+                                                     (TyVarTy
+                                                      {Var: a_awV})
+                                                     (TyVarTy
+                                                      {Var: a_awV}))
+                                                    (FunTy
+                                                     (FTF_T_T)
+                                                     (TyConApp
+                                                      ({abstract:TyCon})
+                                                      [])
+                                                     (TyVarTy
+                                                      {Var: a_awV})
+                                                     (TyVarTy
+                                                      {Var: a_awV})))
+                                                   (FunTy
+                                                    (FTF_T_T)
+                                                    (TyConApp
+                                                     ({abstract:TyCon})
+                                                     [])
+                                                    (FunTy
+                                                     (FTF_T_T)
+                                                     (TyConApp
+                                                      ({abstract:TyCon})
+                                                      [])
+                                                     (TyVarTy
+                                                      {Var: a_awV})
+                                                     (TyVarTy
+                                                      {Var: a_awV}))
+                                                    (FunTy
+                                                     (FTF_T_T)
+                                                     (TyConApp
+                                                      ({abstract:TyCon})
+                                                      [])
+                                                     (TyVarTy
+                                                      {Var: a_awV})
+                                                     (TyVarTy
+                                                      {Var: a_awV}))))))
+                                                (HsVar
+                                                 (NoExtField)
+                                                 (L
+                                                  ((EpAnnS
+                                                    (EpaSpan { <no location info> })
+                                                    (NameAnnTrailing
+                                                     [])
+                                                    (EpaComments
+                                                     [])))
+                                                  {Var: id}))))))))
+                                          (L
+                                           (NoTokenLoc)
+                                           (HsTok))))
+                                        (L
+                                         ((EpAnnS
+                                           (EpaSpan { T15242.hs:6:27-28 })
+                                           (AnnListItem
+                                            [])
+                                           (EpaComments
+                                            [])))
+                                         (XExpr
+                                          (WrapExpr
+                                           (HsWrap
+                                            (WpTyApp
+                                             (FunTy
+                                              (FTF_T_T)
+                                              (TyConApp
+                                               ({abstract:TyCon})
+                                               [])
+                                              (FunTy
+                                               (FTF_T_T)
+                                               (TyConApp
+                                                ({abstract:TyCon})
+                                                [])
+                                               (FunTy
+                                                (FTF_T_T)
+                                                (TyConApp
+                                                 ({abstract:TyCon})
+                                                 [])
+                                                (TyVarTy
+                                                 {Var: a_awV})
+                                                (TyVarTy
+                                                 {Var: a_awV}))
+                                               (FunTy
+                                                (FTF_T_T)
+                                                (TyConApp
+                                                 ({abstract:TyCon})
+                                                 [])
+                                                (TyVarTy
+                                                 {Var: a_awV})
+                                                (TyVarTy
+                                                 {Var: a_awV})))
+                                              (FunTy
+                                               (FTF_T_T)
+                                               (TyConApp
+                                                ({abstract:TyCon})
+                                                [])
+                                               (FunTy
+                                                (FTF_T_T)
+                                                (TyConApp
+                                                 ({abstract:TyCon})
+                                                 [])
+                                                (TyVarTy
+                                                 {Var: a_awV})
+                                                (TyVarTy
+                                                 {Var: a_awV}))
+                                               (FunTy
+                                                (FTF_T_T)
+                                                (TyConApp
+                                                 ({abstract:TyCon})
+                                                 [])
+                                                (TyVarTy
+                                                 {Var: a_awV})
+                                                (TyVarTy
+                                                 {Var: a_awV})))))
+                                            (HsVar
+                                             (NoExtField)
+                                             (L
+                                              ((EpAnnS
+                                                (EpaSpan { <no location info> })
+                                                (NameAnnTrailing
+                                                 [])
+                                                (EpaComments
+                                                 [])))
+                                              {Var: id}))))))))
+                                      (L
+                                       (NoTokenLoc)
+                                       (HsTok))))
+                                    (L
+                                     ((EpAnnS
+                                       (EpaSpan { T15242.hs:6:31-32 })
+                                       (AnnListItem
+                                        [])
+                                       (EpaComments
+                                        [])))
+                                     (XExpr
+                                      (WrapExpr
+                                       (HsWrap
+                                        (WpTyApp
+                                         (FunTy
+                                          (FTF_T_T)
+                                          (TyConApp
+                                           ({abstract:TyCon})
+                                           [])
+                                          (FunTy
+                                           (FTF_T_T)
+                                           (TyConApp
+                                            ({abstract:TyCon})
+                                            [])
+                                           (TyVarTy
+                                            {Var: a_awV})
+                                           (TyVarTy
+                                            {Var: a_awV}))
+                                          (FunTy
+                                           (FTF_T_T)
+                                           (TyConApp
+                                            ({abstract:TyCon})
+                                            [])
+                                           (TyVarTy
+                                            {Var: a_awV})
+                                           (TyVarTy
+                                            {Var: a_awV}))))
+                                        (HsVar
+                                         (NoExtField)
+                                         (L
+                                          ((EpAnnS
+                                            (EpaSpan { <no location info> })
+                                            (NameAnnTrailing
+                                             [])
+                                            (EpaComments
+                                             [])))
+                                          {Var: id}))))))))
+                                  (L
+                                   (NoTokenLoc)
+                                   (HsTok))))
+                                (L
+                                 (NoTokenLoc)
+                                 (HsTok))))
+                              (L
+                               (NoTokenLoc)
+                               (HsTok))))
+                            (L
+                             ((EpAnnS
+                               (EpaSpan { T15242.hs:6:37-38 })
+                               (AnnListItem
+                                [])
+                               (EpaComments
+                                [])))
+                             (XExpr
+                              (WrapExpr
+                               (HsWrap
+                                (WpTyApp
+                                 (FunTy
+                                  (FTF_T_T)
+                                  (TyConApp
+                                   ({abstract:TyCon})
+                                   [])
+                                  (TyVarTy
+                                   {Var: a_awV})
+                                  (TyVarTy
+                                   {Var: a_awV})))
+                                (HsVar
+                                 (NoExtField)
+                                 (L
+                                  ((EpAnnS
+                                    (EpaSpan { <no location info> })
+                                    (NameAnnTrailing
+                                     [])
+                                    (EpaComments
+                                     [])))
+                                  {Var: id}))))))))
+                          (L
+                           (NoTokenLoc)
+                           (HsTok))))
+                        (L
+                         (NoTokenLoc)
+                         (HsTok))))
+                      (L
+                       (NoTokenLoc)
+                       (HsTok))))
+                    (L
+                     ((EpAnnS
+                       (EpaSpan { T15242.hs:6:43-44 })
+                       (AnnListItem
+                        [])
+                       (EpaComments
+                        [])))
+                     (XExpr
+                      (WrapExpr
+                       (HsWrap
+                        (WpTyApp
+                         (TyVarTy
+                          {Var: a_awV}))
+                        (HsVar
+                         (NoExtField)
+                         (L
+                          ((EpAnnS
+                            (EpaSpan { <no location info> })
+                            (NameAnnTrailing
+                             [])
+                            (EpaComments
+                             [])))
+                          {Var: id}))))))))))]
+               (EmptyLocalBinds
+                (NoExtField)))))]))))]}
+     (False))))
+ ,(L
+   ((EpAnnS
+     (EpaSpan { T15242.hs:5:1-37 })
+     (AnnListItem
+      [])
+     (EpaComments
+      [])))
+   (XHsBindsLR
+    (AbsBinds
+     []
+     []
+     [(ABE
+       {Var: f}
+       {Var: f_aAD}
+       (WpHole)
+       (SpecPrags
+        []))]
+     [({abstract:TcEvBinds})]
+     {Bag(LocatedA (HsBind Var)):
+      [(L
+        ((EpAnnS
+          (EpaSpan { T15242.hs:5:1-37 })
+          (AnnListItem
+           [])
+          (EpaComments
+           [])))
+        (FunBind
+         ((,)
+          (WpHole)
+          [])
+         (L
+          ((EpAnnS
+            (EpaSpan { T15242.hs:5:1 })
+            (NameAnnTrailing
+             [])
+            (EpaComments
+             [])))
+          {Var: f_aAD})
+         (MG
+          (MatchGroupTc
+           []
+           (TyConApp
+            ({abstract:TyCon})
+            [])
+           (FromSource))
+          (L
+           (SrcSpanAnn (EpAnnNotUsed) { T15242.hs:5:1-37 })
+           [(L
+             ((EpAnnS
+               (EpaSpan { T15242.hs:5:1-37 })
+               (AnnListItem
+                [])
+               (EpaComments
+                [])))
+             (Match
+              (EpAnnNotUsed)
+              (FunRhs
+               (L
+                ((EpAnnS
+                  (EpaSpan { T15242.hs:5:1 })
+                  (NameAnnTrailing
+                   [])
+                  (EpaComments
+                   [])))
+                {Name: f})
+               (Prefix)
+               (NoSrcStrict))
+              []
+              (GRHSs
+               (EpaComments
+                [])
+               [(L
+                 (EpAnnS
+                  (EpaSpan { T15242.hs:5:3-37 })
+                  (NoEpAnns)
+                  (EpaComments
+                   []))
+                 (GRHS
+                  (EpAnnNotUsed)
+                  []
+                  (L
+                   ((EpAnnS
+                     (EpaSpan { T15242.hs:5:5-37 })
+                     (AnnListItem
+                      [])
+                     (EpaComments
+                      [])))
+                   (HsApp
+                    (EpAnnNotUsed)
+                    (L
+                     ((EpAnnS
+                       (EpaSpan { T15242.hs:5:5-17 })
+                       (AnnListItem
+                        [])
+                       (EpaComments
+                        [])))
+                     (HsPar
+                      (EpAnnNotUsed)
+                      (L
+                       (NoTokenLoc)
+                       (HsTok))
+                      (L
+                       ((EpAnnS
+                         (EpaSpan { T15242.hs:5:6-16 })
+                         (AnnListItem
+                          [])
+                         (EpaComments
+                          [])))
+                       (HsPar
+                        (EpAnnNotUsed)
+                        (L
+                         (NoTokenLoc)
+                         (HsTok))
+                        (L
+                         ((EpAnnS
+                           (EpaSpan { T15242.hs:5:7-15 })
+                           (AnnListItem
+                            [])
+                           (EpaComments
+                            [])))
+                         (HsApp
+                          (EpAnnNotUsed)
+                          (L
+                           ((EpAnnS
+                             (EpaSpan { T15242.hs:5:7-13 })
+                             (AnnListItem
+                              [])
+                             (EpaComments
+                              [])))
+                           (XExpr
+                            (WrapExpr
+                             (HsWrap
+                              (WpCompose
+                               (WpTyApp
+                                (TyConApp
+                                 ({abstract:TyCon})
+                                 []))
+                               (WpTyApp
+                                (TyConApp
+                                 ({abstract:TyCon})
+                                 [])))
+                              (HsPar
+                               (EpAnnNotUsed)
+                               (L
+                                (NoTokenLoc)
+                                (HsTok))
+                               (L
+                                ((EpAnnS
+                                  (EpaSpan { T15242.hs:5:8-12 })
+                                  (AnnListItem
+                                   [])
+                                  (EpaComments
+                                   [])))
+                                (HsVar
+                                 (NoExtField)
+                                 (L
+                                  ((EpAnnS
+                                    (EpaSpan { <no location info> })
+                                    (NameAnnTrailing
+                                     [])
+                                    (EpaComments
+                                     [])))
+                                  {Var: const})))
+                               (L
+                                (NoTokenLoc)
+                                (HsTok)))))))
+                          (L
+                           ((EpAnnS
+                             (EpaSpan { T15242.hs:5:15 })
+                             (AnnListItem
+                              [])
+                             (EpaComments
+                              [])))
+                           (HsOverLit
+                            (EpAnnNotUsed)
+                            (OverLit
+                             (OverLitTc
+                              (False)
+                              (HsApp
+                               (EpAnnNotUsed)
+                               (L
+                                ((EpAnnS
+                                  (EpaSpan { <no location info> })
+                                  (AnnListItem
+                                   [])
+                                  (EpaComments
+                                   [])))
+                                (XExpr
+                                 (WrapExpr
+                                  (HsWrap
+                                   (WpCompose
+                                    (WpEvApp
+                                     (EvExpr
+                                      (Var
+                                       {Var: $dNum_aAx})))
+                                    (WpTyApp
+                                     (TyConApp
+                                      ({abstract:TyCon})
+                                      [])))
+                                   (HsVar
+                                    (NoExtField)
+                                    (L
+                                     ((EpAnnS
+                                       (EpaSpan { <no location info> })
+                                       (NameAnnTrailing
+                                        [])
+                                       (EpaComments
+                                        [])))
+                                     {Var: fromInteger}))))))
+                               (L
+                                ((EpAnnS
+                                  (EpaSpan { <no location info> })
+                                  (AnnListItem
+                                   [])
+                                  (EpaComments
+                                   [])))
+                                (HsLit
+                                 (EpAnnNotUsed)
+                                 (HsInteger
+                                  (SourceText 3)
+                                  (3)
+                                  (TyConApp
+                                   ({abstract:TyCon})
+                                   [])))))
+                              (TyConApp
+                               ({abstract:TyCon})
+                               []))
+                             (HsIntegral
+                              (IL
+                               (SourceText 3)
+                               (False)
+                               (3))))))))
+                        (L
+                         (NoTokenLoc)
+                         (HsTok))))
+                      (L
+                       (NoTokenLoc)
+                       (HsTok))))
+                    (L
+                     ((EpAnnS
+                       (EpaSpan { T15242.hs:5:19-37 })
+                       (AnnListItem
+                        [])
+                       (EpaComments
+                        [])))
+                     (HsPar
+                      (EpAnn
+                       (EpaSpan { T15242.hs:5:19-37 })
+                       (NoEpAnns)
+                       (EpaComments
+                        []))
+                      (L
+                       (TokenLoc
+                        (EpaSpan { T15242.hs:5:19 }))
+                       (HsTok))
+                      (L
+                       ((EpAnnS
+                         (EpaSpan { T15242.hs:5:20-36 })
+                         (AnnListItem
+                          [])
+                         (EpaComments
+                          [])))
+                       (HsApp
+                        (EpAnnNotUsed)
+                        (L
+                         ((EpAnnS
+                           (EpaSpan { T15242.hs:5:20-32 })
+                           (AnnListItem
+                            [])
+                           (EpaComments
+                            [])))
+                         (HsPar
+                          (EpAnnNotUsed)
+                          (L
+                           (NoTokenLoc)
+                           (HsTok))
+                          (L
+                           ((EpAnnS
+                             (EpaSpan { T15242.hs:5:21-31 })
+                             (AnnListItem
+                              [])
+                             (EpaComments
+                              [])))
+                           (HsPar
+                            (EpAnnNotUsed)
+                            (L
+                             (NoTokenLoc)
+                             (HsTok))
+                            (L
+                             ((EpAnnS
+                               (EpaSpan { T15242.hs:5:22-30 })
+                               (AnnListItem
+                                [])
+                               (EpaComments
+                                [])))
+                             (HsApp
+                              (EpAnnNotUsed)
+                              (L
+                               ((EpAnnS
+                                 (EpaSpan { T15242.hs:5:22-26 })
+                                 (AnnListItem
+                                  [])
+                                 (EpaComments
+                                  [])))
+                               (XExpr
+                                (WrapExpr
+                                 (HsWrap
+                                  (WpCompose
+                                   (WpTyApp
+                                    (TyConApp
+                                     ({abstract:TyCon})
+                                     []))
+                                   (WpTyApp
+                                    (TyConApp
+                                     ({abstract:TyCon})
+                                     [])))
+                                  (HsPar
+                                   (EpAnnNotUsed)
+                                   (L
+                                    (NoTokenLoc)
+                                    (HsTok))
+                                   (L
+                                    ((EpAnnS
+                                      (EpaSpan { T15242.hs:5:23-25 })
+                                      (AnnListItem
+                                       [])
+                                      (EpaComments
+                                       [])))
+                                    (XExpr
+                                     (WrapExpr
+                                      (HsWrap
+                                       (WpTyApp
+                                        (TyConApp
+                                         ({abstract:TyCon})
+                                         []))
+                                       (HsVar
+                                        (NoExtField)
+                                        (L
+                                         ((EpAnnS
+                                           (EpaSpan { <no location info> })
+                                           (NameAnnTrailing
+                                            [])
+                                           (EpaComments
+                                            [])))
+                                         {Var: seq}))))))
+                                   (L
+                                    (NoTokenLoc)
+                                    (HsTok)))))))
+                              (L
+                               ((EpAnnS
+                                 (EpaSpan { T15242.hs:5:28-30 })
+                                 (AnnListItem
+                                  [])
+                                 (EpaComments
+                                  [])))
+                               (HsLit
+                                (EpAnn
+                                 (EpaSpan { T15242.hs:5:28-30 })
+                                 (NoEpAnns)
+                                 (EpaComments
+                                  []))
+                                (HsChar
+                                 (SourceText 'a')
+                                 ('a'))))))
+                            (L
+                             (NoTokenLoc)
+                             (HsTok))))
+                          (L
+                           (NoTokenLoc)
+                           (HsTok))))
+                        (L
+                         ((EpAnnS
+                           (EpaSpan { T15242.hs:5:34-36 })
+                           (AnnListItem
+                            [])
+                           (EpaComments
+                            [])))
+                         (HsLit
+                          (EpAnn
+                           (EpaSpan { T15242.hs:5:34-36 })
+                           (NoEpAnns)
+                           (EpaComments
+                            []))
+                          (HsChar
+                           (SourceText 'b')
+                           ('b'))))))
+                      (L
+                       (TokenLoc
+                        (EpaSpan { T15242.hs:5:37 }))
+                       (HsTok))))))))]
+               (EmptyLocalBinds
+                (NoExtField)))))]))))]}
+     (False))))]}


=====================================
testsuite/tests/typecheck/should_compile/all.T
=====================================
@@ -635,22 +635,7 @@ test('T15788', normal, compile, [''])
 test('T15807a', normal, compile, [''])
 test('T13833', normal, compile, [''])
 test('T14185', expect_broken(14185), compile, [''])
-
-def onlyHsParLocs(x):
-    """
-    We only want to check that all the parentheses are present with the correct location,
-    not compare the entire typechecked AST.
-    Located (HsPar GhcTc) are pretty printed with the form
-    ({ <location info>
-     (HsPar
-    This function tries to extract all such location infos from the typechecked AST.
-    """
-    ls = x.split("\n")
-    filteredLines = (loc.strip() for (loc,hspar) in zip(ls,ls[5:])
-                      if hspar.strip().startswith("(HsPar")
-                        and not "<no location info>" in loc)
-    return '\n'.join(filteredLines)
-test('T15242', normalise_errmsg_fun(onlyHsParLocs), compile, [''])
+test('T15242', normal, compile, [''])
 test('T15431', normal, compile, [''])
 test('T15431a', normal, compile, [''])
 test('T15428', normal, compile, [''])


=====================================
utils/check-exact/ExactPrint.hs
=====================================
@@ -1542,17 +1542,17 @@ instance (ExactPrint a) => ExactPrint (LocatedA a) where
   exact (L la a) = do
     debugM $ "LocatedA a:la loc=" ++ show (ss2range $ locA la)
     a' <- markAnnotated a
--- start of variant ANEW
--- start of variant A
-    ann' <- markALocatedA (ann la)
-    return (L (la { ann = ann'}) a')
--- start of variant B
-    -- return (L la a')
--- end of variants
-    la' <- markALocatedA la
-    return (L la' a')
---- end end
--- end of ANEW
+-- -- start of variant ANEW
+-- -- start of variant A
+--     ann' <- markALocatedA (ann la)
+--     return (L (la { ann = ann'}) a')
+-- -- start of variant B
+--     -- return (L la a')
+-- -- end of variants
+--     la' <- markALocatedA la
+--     return (L la' a')
+-- --- end end
+-- -- end of ANEW
     return (L la a')
 -- end of BNEW
 
@@ -4945,7 +4945,7 @@ instance ExactPrint (HsPatSigType GhcPs) where
 
 instance ExactPrint (HsTyPat GhcPs) where
   getAnnotationEntry = const NoEntryVal
-  setAnnotationAnchor a _ _ = a
+  setAnnotationAnchor a _ _ _ = a
 
   exact (HsTP an ty) = do
     ty' <- markAnnotated ty


=====================================
utils/check-exact/Utils.hs
=====================================
@@ -48,8 +48,8 @@ import Types
 
 -- |Global switch to enable debug tracing in ghc-exactprint Delta / Print
 debugEnabledFlag :: Bool
-debugEnabledFlag = True
--- debugEnabledFlag = False
+-- debugEnabledFlag = True
+debugEnabledFlag = False
 
 -- |Provide a version of trace that comes at the end of the line, so it can
 -- easily be commented out when debugging different things.



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/a361f8269f8440fe65f7ad187c88717780ba3dbd

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/a361f8269f8440fe65f7ad187c88717780ba3dbd
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20230719/b59bf5fe/attachment-0001.html>


More information about the ghc-commits mailing list