diff options
author | Alan Zimmerman <alan.zimm@gmail.com> | 2021-10-11 23:05:08 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-10-14 14:34:07 -0400 |
commit | 8b7f5424c67b5ec005e061db87d30e124cf7234d (patch) | |
tree | 49b7c66079e415d6151d7edd2c180169a26e991a /testsuite | |
parent | f450e9481eafa3a00c648c81154a9a8be2da7650 (diff) | |
download | haskell-8b7f5424c67b5ec005e061db87d30e124cf7234d.tar.gz |
EPA: Preserve semicolon order in annotations
Ensure the AddSemiAnn items appear in increasing order, so that if
they are converted to delta format they are still in the correct
order.
Prior to this the exact printer sorted by Span, which is meaningless
for EpaDelta locations.
Diffstat (limited to 'testsuite')
-rw-r--r-- | testsuite/tests/parser/should_compile/DumpSemis.hs | 45 | ||||
-rw-r--r-- | testsuite/tests/parser/should_compile/DumpSemis.stderr | 2072 | ||||
-rw-r--r-- | testsuite/tests/parser/should_compile/T20452.stderr | 8 | ||||
-rw-r--r-- | testsuite/tests/parser/should_compile/all.T | 2 |
4 files changed, 2123 insertions, 4 deletions
diff --git a/testsuite/tests/parser/should_compile/DumpSemis.hs b/testsuite/tests/parser/should_compile/DumpSemis.hs new file mode 100644 index 0000000000..9f2f9629d8 --- /dev/null +++ b/testsuite/tests/parser/should_compile/DumpSemis.hs @@ -0,0 +1,45 @@ +module DumpSemis where + +-- Make sure we get all the semicolons in statements +;;;; ;; +import Data.List +; ; ; +import Data.Kind + ; ;; +foo :: IO () +foo = do + do { ;;;; a } + a +; ;; +bar :: IO () +bar = do + { ; ; + a ;; + b + } + ; ;; ; +baz :: IO () +baz = do { ;; s ; s ; ; s ;; } +; +a = undefined +b = undefined +s = undefined +; +class LiftingMonad2 ((trans :: Type)) where + proof :: trans -> Int +; +f :: ((Eq a, Ord a)) => a -> a +f x = x +; + ;;x=let{;;;;;y=2;;z=3;;;;}in y; +; +fot x = + case x of + { ;;; -- leading + 0 -> 'a'; -- case 0 + 1 -> 'b' -- case 1 + ; 2 -> 'c' ; -- case 2 + ; 3 -> 'd' -- case 3 + ;;; -- case 4 + } +; diff --git a/testsuite/tests/parser/should_compile/DumpSemis.stderr b/testsuite/tests/parser/should_compile/DumpSemis.stderr new file mode 100644 index 0000000000..05465b8a75 --- /dev/null +++ b/testsuite/tests/parser/should_compile/DumpSemis.stderr @@ -0,0 +1,2072 @@ + +==================== Parser AST ==================== + +(L + { DumpSemis.hs:1:1 } + (HsModule + (EpAnn + (Anchor + { DumpSemis.hs:1:1 } + (UnchangedAnchor)) + (AnnsModule + [(AddEpAnn AnnModule (EpaSpan { DumpSemis.hs:1:1-6 })) + ,(AddEpAnn AnnWhere (EpaSpan { DumpSemis.hs:1:18-22 }))] + (AnnList + (Nothing) + (Nothing) + (Nothing) + [] + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:4:1 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:4:2 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:4:3 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:4:4 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:4:7 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:4:8 }))])) + (EpaCommentsBalanced + [] + [(L + (Anchor + { DumpSemis.hs:46:1 } + (UnchangedAnchor)) + (EpaComment + (EpaEofComment) + { DumpSemis.hs:46:1 }))])) + (VirtualBraces + (1)) + (Just + (L + { DumpSemis.hs:1:8-16 } + {ModuleName: DumpSemis})) + (Nothing) + [(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:5:1-16 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:6:1 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:6:3 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:6:5 }))]) + (EpaComments + [])) { DumpSemis.hs:5:1-16 }) + (ImportDecl + (EpAnn + (Anchor + { DumpSemis.hs:5:1-6 } + (UnchangedAnchor)) + (EpAnnImportDecl + (EpaSpan { DumpSemis.hs:5:1-6 }) + (Nothing) + (Nothing) + (Nothing) + (Nothing) + (Nothing)) + (EpaComments + [])) + (NoSourceText) + (L + { DumpSemis.hs:5:8-16 } + {ModuleName: Data.List}) + (Nothing) + (NotBoot) + (False) + (NotQualified) + (False) + (Nothing) + (Nothing))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:7:1-16 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:8:4 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:8:6 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:8:7 }))]) + (EpaComments + [])) { DumpSemis.hs:7:1-16 }) + (ImportDecl + (EpAnn + (Anchor + { DumpSemis.hs:7:1-6 } + (UnchangedAnchor)) + (EpAnnImportDecl + (EpaSpan { DumpSemis.hs:7:1-6 }) + (Nothing) + (Nothing) + (Nothing) + (Nothing) + (Nothing)) + (EpaComments + [])) + (NoSourceText) + (L + { DumpSemis.hs:7:8-16 } + {ModuleName: Data.Kind}) + (Nothing) + (NotBoot) + (False) + (NotQualified) + (False) + (Nothing) + (Nothing)))] + [(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:9:1-12 } + (UnchangedAnchor)) + (AnnListItem + []) + (EpaComments + [])) { DumpSemis.hs:9:1-12 }) + (SigD + (NoExtField) + (TypeSig + (EpAnn + (Anchor + { DumpSemis.hs:9:1-3 } + (UnchangedAnchor)) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:9:5-6 })) + []) + (EpaComments + [])) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:9:1-3 }) + (Unqual + {OccName: foo}))] + (HsWC + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:9:8-12 }) + (HsSig + (NoExtField) + (HsOuterImplicit + (NoExtField)) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:9:8-12 }) + (HsAppTy + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:9:8-9 }) + (HsTyVar + (EpAnn + (Anchor + { DumpSemis.hs:9:8-9 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (NotPromoted) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:9:8-9 }) + (Unqual + {OccName: IO})))) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:9:11-12 }) + (HsTupleTy + (EpAnn + (Anchor + { DumpSemis.hs:9:11 } + (UnchangedAnchor)) + (AnnParen + (AnnParens) + (EpaSpan { DumpSemis.hs:9:11 }) + (EpaSpan { DumpSemis.hs:9:12 })) + (EpaComments + [])) + (HsBoxedOrConstraintTuple) + [])))))))))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:(10,1)-(12,3) } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:13:1 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:13:3 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:13:4 }))]) + (EpaComments + [])) { DumpSemis.hs:(10,1)-(12,3) }) + (ValD + (NoExtField) + (FunBind + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:10:1-3 }) + (Unqual + {OccName: foo})) + (MG + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(10,1)-(12,3) }) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(10,1)-(12,3) }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:(10,1)-(12,3) } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (FunRhs + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:10:1-3 }) + (Unqual + {OccName: foo})) + (Prefix) + (NoSrcStrict)) + [] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:(10,5)-(12,3) } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:(10,5)-(12,3) } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:10:5 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(10,7)-(12,3) }) + (HsDo + (EpAnn + (Anchor + { DumpSemis.hs:(10,7)-(12,3) } + (UnchangedAnchor)) + (AnnList + (Just + (Anchor + { DumpSemis.hs:(11,3)-(12,3) } + (UnchangedAnchor))) + (Nothing) + (Nothing) + [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:10:7-8 }))] + []) + (EpaComments + [])) + (DoExpr + (Nothing)) + (L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:(11,3)-(12,3) } + (UnchangedAnchor)) + (AnnList + (Just + (Anchor + { DumpSemis.hs:(11,3)-(12,3) } + (UnchangedAnchor))) + (Nothing) + (Nothing) + [] + []) + (EpaComments + [])) { DumpSemis.hs:(11,3)-(12,3) }) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:11:3-15 }) + (BodyStmt + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:11:3-15 }) + (HsDo + (EpAnn + (Anchor + { DumpSemis.hs:11:3-15 } + (UnchangedAnchor)) + (AnnList + (Just + (Anchor + { DumpSemis.hs:11:6-15 } + (UnchangedAnchor))) + (Nothing) + (Nothing) + [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:11:3-4 }))] + []) + (EpaComments + [])) + (DoExpr + (Nothing)) + (L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:11:6-15 } + (UnchangedAnchor)) + (AnnList + (Just + (Anchor + { DumpSemis.hs:11:8-13 } + (UnchangedAnchor))) + (Just + (AddEpAnn AnnOpenC (EpaSpan { DumpSemis.hs:11:6 }))) + (Just + (AddEpAnn AnnCloseC (EpaSpan { DumpSemis.hs:11:15 }))) + [(AddEpAnn AnnSemi (EpaSpan { DumpSemis.hs:11:8 })) + ,(AddEpAnn AnnSemi (EpaSpan { DumpSemis.hs:11:9 })) + ,(AddEpAnn AnnSemi (EpaSpan { DumpSemis.hs:11:10 })) + ,(AddEpAnn AnnSemi (EpaSpan { DumpSemis.hs:11:11 }))] + []) + (EpaComments + [])) { DumpSemis.hs:11:6-15 }) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:11:13 }) + (BodyStmt + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:11:13 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:11:13 }) + (Unqual + {OccName: a})))) + (NoExtField) + (NoExtField)))]))) + (NoExtField) + (NoExtField))) + ,(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:12:3 }) + (BodyStmt + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:12:3 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:12:3 }) + (Unqual + {OccName: a})))) + (NoExtField) + (NoExtField)))])))))] + (EmptyLocalBinds + (NoExtField)))))]) + (FromSource)) + []))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:14:1-12 } + (UnchangedAnchor)) + (AnnListItem + []) + (EpaComments + [])) { DumpSemis.hs:14:1-12 }) + (SigD + (NoExtField) + (TypeSig + (EpAnn + (Anchor + { DumpSemis.hs:14:1-3 } + (UnchangedAnchor)) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:14:5-6 })) + []) + (EpaComments + [])) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:14:1-3 }) + (Unqual + {OccName: bar}))] + (HsWC + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:14:8-12 }) + (HsSig + (NoExtField) + (HsOuterImplicit + (NoExtField)) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:14:8-12 }) + (HsAppTy + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:14:8-9 }) + (HsTyVar + (EpAnn + (Anchor + { DumpSemis.hs:14:8-9 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (NotPromoted) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:14:8-9 }) + (Unqual + {OccName: IO})))) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:14:11-12 }) + (HsTupleTy + (EpAnn + (Anchor + { DumpSemis.hs:14:11 } + (UnchangedAnchor)) + (AnnParen + (AnnParens) + (EpaSpan { DumpSemis.hs:14:11 }) + (EpaSpan { DumpSemis.hs:14:12 })) + (EpaComments + [])) + (HsBoxedOrConstraintTuple) + [])))))))))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:(15,1)-(19,3) } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:20:2 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:20:4 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:20:5 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:20:8 }))]) + (EpaComments + [])) { DumpSemis.hs:(15,1)-(19,3) }) + (ValD + (NoExtField) + (FunBind + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:15:1-3 }) + (Unqual + {OccName: bar})) + (MG + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(15,1)-(19,3) }) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(15,1)-(19,3) }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:(15,1)-(19,3) } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (FunRhs + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:15:1-3 }) + (Unqual + {OccName: bar})) + (Prefix) + (NoSrcStrict)) + [] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:(15,5)-(19,3) } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:(15,5)-(19,3) } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:15:5 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(15,7)-(19,3) }) + (HsDo + (EpAnn + (Anchor + { DumpSemis.hs:(15,7)-(19,3) } + (UnchangedAnchor)) + (AnnList + (Just + (Anchor + { DumpSemis.hs:(16,3)-(19,3) } + (UnchangedAnchor))) + (Nothing) + (Nothing) + [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:15:7-8 }))] + []) + (EpaComments + [])) + (DoExpr + (Nothing)) + (L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:(16,3)-(19,3) } + (UnchangedAnchor)) + (AnnList + (Just + (Anchor + { DumpSemis.hs:(16,5)-(18,5) } + (UnchangedAnchor))) + (Just + (AddEpAnn AnnOpenC (EpaSpan { DumpSemis.hs:16:3 }))) + (Just + (AddEpAnn AnnCloseC (EpaSpan { DumpSemis.hs:19:3 }))) + [(AddEpAnn AnnSemi (EpaSpan { DumpSemis.hs:16:5 })) + ,(AddEpAnn AnnSemi (EpaSpan { DumpSemis.hs:16:8 }))] + []) + (EpaComments + [])) { DumpSemis.hs:(16,3)-(19,3) }) + [(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:17:5 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:17:7 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:17:8 }))]) + (EpaComments + [])) { DumpSemis.hs:17:5 }) + (BodyStmt + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:17:5 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:17:5 }) + (Unqual + {OccName: a})))) + (NoExtField) + (NoExtField))) + ,(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:18:5 }) + (BodyStmt + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:18:5 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:18:5 }) + (Unqual + {OccName: b})))) + (NoExtField) + (NoExtField)))])))))] + (EmptyLocalBinds + (NoExtField)))))]) + (FromSource)) + []))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:21:1-12 } + (UnchangedAnchor)) + (AnnListItem + []) + (EpaComments + [])) { DumpSemis.hs:21:1-12 }) + (SigD + (NoExtField) + (TypeSig + (EpAnn + (Anchor + { DumpSemis.hs:21:1-3 } + (UnchangedAnchor)) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:21:5-6 })) + []) + (EpaComments + [])) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:21:1-3 }) + (Unqual + {OccName: baz}))] + (HsWC + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:21:8-12 }) + (HsSig + (NoExtField) + (HsOuterImplicit + (NoExtField)) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:21:8-12 }) + (HsAppTy + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:21:8-9 }) + (HsTyVar + (EpAnn + (Anchor + { DumpSemis.hs:21:8-9 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (NotPromoted) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:21:8-9 }) + (Unqual + {OccName: IO})))) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:21:11-12 }) + (HsTupleTy + (EpAnn + (Anchor + { DumpSemis.hs:21:11 } + (UnchangedAnchor)) + (AnnParen + (AnnParens) + (EpaSpan { DumpSemis.hs:21:11 }) + (EpaSpan { DumpSemis.hs:21:12 })) + (EpaComments + [])) + (HsBoxedOrConstraintTuple) + [])))))))))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:22:1-30 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:23:1 }))]) + (EpaComments + [])) { DumpSemis.hs:22:1-30 }) + (ValD + (NoExtField) + (FunBind + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:1-3 }) + (Unqual + {OccName: baz})) + (MG + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:1-30 }) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:1-30 }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:22:1-30 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (FunRhs + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:1-3 }) + (Unqual + {OccName: baz})) + (Prefix) + (NoSrcStrict)) + [] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:22:5-30 } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:22:5-30 } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:22:5 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:7-30 }) + (HsDo + (EpAnn + (Anchor + { DumpSemis.hs:22:7-30 } + (UnchangedAnchor)) + (AnnList + (Just + (Anchor + { DumpSemis.hs:22:10-30 } + (UnchangedAnchor))) + (Nothing) + (Nothing) + [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:22:7-8 }))] + []) + (EpaComments + [])) + (DoExpr + (Nothing)) + (L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:22:10-30 } + (UnchangedAnchor)) + (AnnList + (Just + (Anchor + { DumpSemis.hs:22:12-25 } + (UnchangedAnchor))) + (Just + (AddEpAnn AnnOpenC (EpaSpan { DumpSemis.hs:22:10 }))) + (Just + (AddEpAnn AnnCloseC (EpaSpan { DumpSemis.hs:22:30 }))) + [(AddEpAnn AnnSemi (EpaSpan { DumpSemis.hs:22:12 })) + ,(AddEpAnn AnnSemi (EpaSpan { DumpSemis.hs:22:13 }))] + []) + (EpaComments + [])) { DumpSemis.hs:22:10-30 }) + [(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:22:15 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:22:17 }))]) + (EpaComments + [])) { DumpSemis.hs:22:15 }) + (BodyStmt + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:15 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:15 }) + (Unqual + {OccName: s})))) + (NoExtField) + (NoExtField))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:22:19 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:22:21 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:22:23 }))]) + (EpaComments + [])) { DumpSemis.hs:22:19 }) + (BodyStmt + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:19 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:19 }) + (Unqual + {OccName: s})))) + (NoExtField) + (NoExtField))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:22:25 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:22:27 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:22:28 }))]) + (EpaComments + [])) { DumpSemis.hs:22:25 }) + (BodyStmt + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:25 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:25 }) + (Unqual + {OccName: s})))) + (NoExtField) + (NoExtField)))])))))] + (EmptyLocalBinds + (NoExtField)))))]) + (FromSource)) + []))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:24:1-13 } + (UnchangedAnchor)) + (AnnListItem + []) + (EpaComments + [])) { DumpSemis.hs:24:1-13 }) + (ValD + (NoExtField) + (FunBind + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:24:1 }) + (Unqual + {OccName: a})) + (MG + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:24:1-13 }) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:24:1-13 }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:24:1-13 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (FunRhs + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:24:1 }) + (Unqual + {OccName: a})) + (Prefix) + (NoSrcStrict)) + [] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:24:3-13 } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:24:3-13 } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:24:3 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:24:5-13 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:24:5-13 }) + (Unqual + {OccName: undefined}))))))] + (EmptyLocalBinds + (NoExtField)))))]) + (FromSource)) + []))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:25:1-13 } + (UnchangedAnchor)) + (AnnListItem + []) + (EpaComments + [])) { DumpSemis.hs:25:1-13 }) + (ValD + (NoExtField) + (FunBind + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:25:1 }) + (Unqual + {OccName: b})) + (MG + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:25:1-13 }) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:25:1-13 }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:25:1-13 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (FunRhs + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:25:1 }) + (Unqual + {OccName: b})) + (Prefix) + (NoSrcStrict)) + [] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:25:3-13 } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:25:3-13 } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:25:3 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:25:5-13 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:25:5-13 }) + (Unqual + {OccName: undefined}))))))] + (EmptyLocalBinds + (NoExtField)))))]) + (FromSource)) + []))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:26:1-13 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:27:1 }))]) + (EpaComments + [])) { DumpSemis.hs:26:1-13 }) + (ValD + (NoExtField) + (FunBind + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:26:1 }) + (Unqual + {OccName: s})) + (MG + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:26:1-13 }) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:26:1-13 }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:26:1-13 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (FunRhs + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:26:1 }) + (Unqual + {OccName: s})) + (Prefix) + (NoSrcStrict)) + [] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:26:3-13 } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:26:3-13 } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:26:3 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:26:5-13 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:26:5-13 }) + (Unqual + {OccName: undefined}))))))] + (EmptyLocalBinds + (NoExtField)))))]) + (FromSource)) + []))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:(28,1)-(29,23) } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:30:1 }))]) + (EpaComments + [])) { DumpSemis.hs:(28,1)-(29,23) }) + (TyClD + (NoExtField) + (ClassDecl + ((,,) + (EpAnn + (Anchor + { DumpSemis.hs:(28,1)-(29,23) } + (UnchangedAnchor)) + [(AddEpAnn AnnClass (EpaSpan { DumpSemis.hs:28:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { DumpSemis.hs:28:40-44 }))] + (EpaComments + [])) + (NoAnnSortKey) + (VirtualBraces + (3))) + (Nothing) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:28:7-19 }) + (Unqual + {OccName: LiftingMonad2})) + (HsQTvs + (NoExtField) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:28:22-38 }) + (KindedTyVar + (EpAnn + (Anchor + { DumpSemis.hs:28:22-38 } + (UnchangedAnchor)) + [(AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:28:30-31 })) + ,(AddEpAnn AnnOpenP (EpaSpan { DumpSemis.hs:28:22 })) + ,(AddEpAnn AnnOpenP (EpaSpan { DumpSemis.hs:28:23 })) + ,(AddEpAnn AnnCloseP (EpaSpan { DumpSemis.hs:28:37 })) + ,(AddEpAnn AnnCloseP (EpaSpan { DumpSemis.hs:28:38 }))] + (EpaComments + [])) + (()) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:28:24-28 }) + (Unqual + {OccName: trans})) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:28:33-36 }) + (HsTyVar + (EpAnn + (Anchor + { DumpSemis.hs:28:33-36 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (NotPromoted) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:28:33-36 }) + (Unqual + {OccName: Type}))))))]) + (Prefix) + [] + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:3-23 }) + (ClassOpSig + (EpAnn + (Anchor + { DumpSemis.hs:29:3-7 } + (UnchangedAnchor)) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:29:9-10 })) + []) + (EpaComments + [])) + (False) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:3-7 }) + (Unqual + {OccName: proof}))] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:12-23 }) + (HsSig + (NoExtField) + (HsOuterImplicit + (NoExtField)) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:12-23 }) + (HsFunTy + (EpAnn + (Anchor + { DumpSemis.hs:29:12-16 } + (UnchangedAnchor)) + (NoEpAnns) + (EpaComments + [])) + (HsUnrestrictedArrow + (L + (TokenLoc + (EpaSpan { DumpSemis.hs:29:18-19 })) + (HsNormalTok))) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:12-16 }) + (HsTyVar + (EpAnn + (Anchor + { DumpSemis.hs:29:12-16 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (NotPromoted) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:12-16 }) + (Unqual + {OccName: trans})))) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:21-23 }) + (HsTyVar + (EpAnn + (Anchor + { DumpSemis.hs:29:21-23 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (NotPromoted) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:21-23 }) + (Unqual + {OccName: Int}))))))))))] + {Bag(LocatedA (HsBind GhcPs)): + []} + [] + [] + []))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:31:1-30 } + (UnchangedAnchor)) + (AnnListItem + []) + (EpaComments + [])) { DumpSemis.hs:31:1-30 }) + (SigD + (NoExtField) + (TypeSig + (EpAnn + (Anchor + { DumpSemis.hs:31:1 } + (UnchangedAnchor)) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:31:3-4 })) + []) + (EpaComments + [])) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:1 }) + (Unqual + {OccName: f}))] + (HsWC + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:6-30 }) + (HsSig + (NoExtField) + (HsOuterImplicit + (NoExtField)) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:6-30 }) + (HsQualTy + (NoExtField) + (L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:31:6-20 } + (UnchangedAnchor)) + (AnnContext + (Just + ((,) + (NormalSyntax) + (EpaSpan { DumpSemis.hs:31:22-23 }))) + [(EpaSpan { DumpSemis.hs:31:6 }) + ,(EpaSpan { DumpSemis.hs:31:7 })] + [(EpaSpan { DumpSemis.hs:31:19 }) + ,(EpaSpan { DumpSemis.hs:31:20 })]) + (EpaComments + [])) { DumpSemis.hs:31:6-20 }) + [(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:31:8-11 } + (UnchangedAnchor)) + (AnnListItem + [(AddCommaAnn + (EpaSpan { DumpSemis.hs:31:12 }))]) + (EpaComments + [])) { DumpSemis.hs:31:8-11 }) + (HsAppTy + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:8-9 }) + (HsTyVar + (EpAnn + (Anchor + { DumpSemis.hs:31:8-9 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (NotPromoted) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:8-9 }) + (Unqual + {OccName: Eq})))) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:11 }) + (HsTyVar + (EpAnn + (Anchor + { DumpSemis.hs:31:11 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (NotPromoted) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:11 }) + (Unqual + {OccName: a})))))) + ,(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:14-18 }) + (HsAppTy + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:14-16 }) + (HsTyVar + (EpAnn + (Anchor + { DumpSemis.hs:31:14-16 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (NotPromoted) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:14-16 }) + (Unqual + {OccName: Ord})))) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:18 }) + (HsTyVar + (EpAnn + (Anchor + { DumpSemis.hs:31:18 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (NotPromoted) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:18 }) + (Unqual + {OccName: a}))))))]) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:25-30 }) + (HsFunTy + (EpAnn + (Anchor + { DumpSemis.hs:31:25 } + (UnchangedAnchor)) + (NoEpAnns) + (EpaComments + [])) + (HsUnrestrictedArrow + (L + (TokenLoc + (EpaSpan { DumpSemis.hs:31:27-28 })) + (HsNormalTok))) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:25 }) + (HsTyVar + (EpAnn + (Anchor + { DumpSemis.hs:31:25 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (NotPromoted) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:25 }) + (Unqual + {OccName: a})))) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:30 }) + (HsTyVar + (EpAnn + (Anchor + { DumpSemis.hs:31:30 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (NotPromoted) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:30 }) + (Unqual + {OccName: a})))))))))))))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:32:1-7 } + (UnchangedAnchor)) + (AnnListItem + []) + (EpaComments + [])) { DumpSemis.hs:32:1-7 }) + (ValD + (NoExtField) + (FunBind + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:1 }) + (Unqual + {OccName: f})) + (MG + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:1-7 }) + [(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:32:1-7 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:33:1 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:6 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:7 }))]) + (EpaComments + [])) { DumpSemis.hs:32:1-7 }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:32:1-7 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (FunRhs + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:1 }) + (Unqual + {OccName: f})) + (Prefix) + (NoSrcStrict)) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:3 }) + (VarPat + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:3 }) + (Unqual + {OccName: x}))))] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:32:5-7 } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:32:5-7 } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:32:5 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:7 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:7 }) + (Unqual + {OccName: x}))))))] + (EmptyLocalBinds + (NoExtField)))))]) + (FromSource)) + []))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:34:8-35 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:36 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:35:1 }))]) + (EpaComments + [])) { DumpSemis.hs:34:8-35 }) + (ValD + (NoExtField) + (FunBind + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:8 }) + (Unqual + {OccName: x})) + (MG + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:8-35 }) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:8-35 }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:34:8-35 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (FunRhs + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:8 }) + (Unqual + {OccName: x})) + (Prefix) + (NoSrcStrict)) + [] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:34:9-35 } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:34:9-35 } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:34:9 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:10-35 }) + (HsLet + (EpAnn + (Anchor + { DumpSemis.hs:34:10-35 } + (UnchangedAnchor)) + (AnnsLet + (EpaSpan { DumpSemis.hs:34:10-12 }) + (EpaSpan { DumpSemis.hs:34:32-33 })) + (EpaComments + [])) + (HsValBinds + (EpAnn + (Anchor + { DumpSemis.hs:34:13-31 } + (UnchangedAnchor)) + (AnnList + (Just + (Anchor + { DumpSemis.hs:34:14-30 } + (UnchangedAnchor))) + (Just + (AddEpAnn AnnOpenC (EpaSpan { DumpSemis.hs:34:13 }))) + (Just + (AddEpAnn AnnCloseC (EpaSpan { DumpSemis.hs:34:31 }))) + [] + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:14 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:15 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:16 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:17 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:18 }))]) + (EpaComments + [])) + (ValBinds + (NoAnnSortKey) + {Bag(LocatedA (HsBind GhcPs)): + [(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:34:19-21 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:22 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:23 }))]) + (EpaComments + [])) { DumpSemis.hs:34:19-21 }) + (FunBind + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:19 }) + (Unqual + {OccName: y})) + (MG + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:19-21 }) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:19-21 }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:34:19-21 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (FunRhs + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:19 }) + (Unqual + {OccName: y})) + (Prefix) + (NoSrcStrict)) + [] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:34:20-21 } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:34:20-21 } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:34:20 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:21 }) + (HsOverLit + (EpAnn + (Anchor + { DumpSemis.hs:34:21 } + (UnchangedAnchor)) + (NoEpAnns) + (EpaComments + [])) + (OverLit + (NoExtField) + (HsIntegral + (IL + (SourceText 2) + (False) + (2))))))))] + (EmptyLocalBinds + (NoExtField)))))]) + (FromSource)) + [])) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:34:24-26 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:27 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:28 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:29 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:30 }))]) + (EpaComments + [])) { DumpSemis.hs:34:24-26 }) + (FunBind + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:24 }) + (Unqual + {OccName: z})) + (MG + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:24-26 }) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:24-26 }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:34:24-26 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (FunRhs + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:24 }) + (Unqual + {OccName: z})) + (Prefix) + (NoSrcStrict)) + [] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:34:25-26 } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:34:25-26 } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:34:25 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:26 }) + (HsOverLit + (EpAnn + (Anchor + { DumpSemis.hs:34:26 } + (UnchangedAnchor)) + (NoEpAnns) + (EpaComments + [])) + (OverLit + (NoExtField) + (HsIntegral + (IL + (SourceText 3) + (False) + (3))))))))] + (EmptyLocalBinds + (NoExtField)))))]) + (FromSource)) + []))]} + [])) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:35 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:35 }) + (Unqual + {OccName: y}))))))))] + (EmptyLocalBinds + (NoExtField)))))]) + (FromSource)) + []))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:(36,1)-(44,4) } + (UnchangedAnchor)) + (AnnListItem + []) + (EpaComments + [])) { DumpSemis.hs:(36,1)-(44,4) }) + (ValD + (NoExtField) + (FunBind + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:36:1-3 }) + (Unqual + {OccName: fot})) + (MG + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(36,1)-(44,4) }) + [(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:(36,1)-(44,4) } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:45:1 }))]) + (EpaComments + [])) { DumpSemis.hs:(36,1)-(44,4) }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:(36,1)-(44,4) } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (FunRhs + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:36:1-3 }) + (Unqual + {OccName: fot})) + (Prefix) + (NoSrcStrict)) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:36:5 }) + (VarPat + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:36:5 }) + (Unqual + {OccName: x}))))] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:(36,7)-(44,4) } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:(36,7)-(44,4) } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:36:7 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(37,3)-(44,4) }) + (HsCase + (EpAnn + (Anchor + { DumpSemis.hs:(37,3)-(44,4) } + (UnchangedAnchor)) + (EpAnnHsCase + (EpaSpan { DumpSemis.hs:37:3-6 }) + (EpaSpan { DumpSemis.hs:37:10-11 }) + []) + (EpaComments + [])) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:37:8 }) + (HsVar + (NoExtField) + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:37:8 }) + (Unqual + {OccName: x})))) + (MG + (NoExtField) + (L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:(38,4)-(44,4) } + (UnchangedAnchor)) + (AnnList + (Just + (Anchor + { DumpSemis.hs:(38,6)-(43,13) } + (UnchangedAnchor))) + (Just + (AddEpAnn AnnOpenC (EpaSpan { DumpSemis.hs:38:4 }))) + (Just + (AddEpAnn AnnCloseC (EpaSpan { DumpSemis.hs:44:4 }))) + [(AddEpAnn AnnSemi (EpaSpan { DumpSemis.hs:38:6 })) + ,(AddEpAnn AnnSemi (EpaSpan { DumpSemis.hs:38:7 })) + ,(AddEpAnn AnnSemi (EpaSpan { DumpSemis.hs:38:8 }))] + []) + (EpaComments + [])) { DumpSemis.hs:(38,4)-(44,4) }) + [(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:39:6-13 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:39:14 }))]) + (EpaComments + [])) { DumpSemis.hs:39:6-13 }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:39:6 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (CaseAlt) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:39:6 }) + (NPat + (EpAnnNotUsed) + (L + { DumpSemis.hs:39:6 } + (OverLit + (NoExtField) + (HsIntegral + (IL + (SourceText 0) + (False) + (0))))) + (Nothing) + (NoExtField)))] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:39:8-13 } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:39:8-9 } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnRarrow (EpaSpan { DumpSemis.hs:39:8-9 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:39:11-13 }) + (HsLit + (EpAnn + (Anchor + { DumpSemis.hs:39:11-13 } + (UnchangedAnchor)) + (NoEpAnns) + (EpaComments + [])) + (HsChar + (SourceText 'a') + ('a'))))))] + (EmptyLocalBinds + (NoExtField))))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:40:6-13 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:41:4 }))]) + (EpaComments + [])) { DumpSemis.hs:40:6-13 }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:40:6 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (CaseAlt) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:40:6 }) + (NPat + (EpAnnNotUsed) + (L + { DumpSemis.hs:40:6 } + (OverLit + (NoExtField) + (HsIntegral + (IL + (SourceText 1) + (False) + (1))))) + (Nothing) + (NoExtField)))] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:40:8-13 } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:40:8-9 } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnRarrow (EpaSpan { DumpSemis.hs:40:8-9 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:40:11-13 }) + (HsLit + (EpAnn + (Anchor + { DumpSemis.hs:40:11-13 } + (UnchangedAnchor)) + (NoEpAnns) + (EpaComments + [])) + (HsChar + (SourceText 'b') + ('b'))))))] + (EmptyLocalBinds + (NoExtField))))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:41:6-13 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:41:15 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:42:4 }))]) + (EpaComments + [])) { DumpSemis.hs:41:6-13 }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:41:6 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (CaseAlt) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:41:6 }) + (NPat + (EpAnnNotUsed) + (L + { DumpSemis.hs:41:6 } + (OverLit + (NoExtField) + (HsIntegral + (IL + (SourceText 2) + (False) + (2))))) + (Nothing) + (NoExtField)))] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:41:8-13 } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:41:8-9 } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnRarrow (EpaSpan { DumpSemis.hs:41:8-9 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:41:11-13 }) + (HsLit + (EpAnn + (Anchor + { DumpSemis.hs:41:11-13 } + (UnchangedAnchor)) + (NoEpAnns) + (EpaComments + [])) + (HsChar + (SourceText 'c') + ('c'))))))] + (EmptyLocalBinds + (NoExtField))))) + ,(L + (SrcSpanAnn (EpAnn + (Anchor + { DumpSemis.hs:42:6-13 } + (UnchangedAnchor)) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:43:11 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:43:12 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:43:13 }))]) + (EpaComments + [])) { DumpSemis.hs:42:6-13 }) + (Match + (EpAnn + (Anchor + { DumpSemis.hs:42:6 } + (UnchangedAnchor)) + [] + (EpaComments + [])) + (CaseAlt) + [(L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:42:6 }) + (NPat + (EpAnnNotUsed) + (L + { DumpSemis.hs:42:6 } + (OverLit + (NoExtField) + (HsIntegral + (IL + (SourceText 3) + (False) + (3))))) + (Nothing) + (NoExtField)))] + (GRHSs + (EpaComments + []) + [(L + { DumpSemis.hs:42:8-13 } + (GRHS + (EpAnn + (Anchor + { DumpSemis.hs:42:8-9 } + (UnchangedAnchor)) + (GrhsAnn + (Nothing) + (AddEpAnn AnnRarrow (EpaSpan { DumpSemis.hs:42:8-9 }))) + (EpaComments + [])) + [] + (L + (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:42:11-13 }) + (HsLit + (EpAnn + (Anchor + { DumpSemis.hs:42:11-13 } + (UnchangedAnchor)) + (NoEpAnns) + (EpaComments + [])) + (HsChar + (SourceText 'd') + ('d'))))))] + (EmptyLocalBinds + (NoExtField)))))]) + (FromSource))))))] + (EmptyLocalBinds + (NoExtField)))))]) + (FromSource)) + [])))] + (Nothing) + (Nothing)))
\ No newline at end of file diff --git a/testsuite/tests/parser/should_compile/T20452.stderr b/testsuite/tests/parser/should_compile/T20452.stderr index 47a05d5770..d1a11145fa 100644 --- a/testsuite/tests/parser/should_compile/T20452.stderr +++ b/testsuite/tests/parser/should_compile/T20452.stderr @@ -155,9 +155,9 @@ { T20452.hs:6:13-22 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:6:17-18 })) + ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:6:13 })) ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:6:14 })) ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:6:21 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:6:13 })) ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:6:22 }))] (EpaComments [])) @@ -436,9 +436,9 @@ { T20452.hs:9:14-27 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:9:20-21 })) + ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:14 })) ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:15 })) ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:26 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:14 })) ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:27 }))] (EpaComments [])) @@ -470,9 +470,9 @@ { T20452.hs:9:29-46 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:9:36-37 })) + ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:29 })) ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:30 })) ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:45 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:29 })) ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:46 }))] (EpaComments [])) @@ -504,9 +504,9 @@ { T20452.hs:9:48-76 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:9:54-55 })) + ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:48 })) ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:49 })) ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:75 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:48 })) ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:76 }))] (EpaComments [])) diff --git a/testsuite/tests/parser/should_compile/all.T b/testsuite/tests/parser/should_compile/all.T index d24321a103..5f81a651c3 100644 --- a/testsuite/tests/parser/should_compile/all.T +++ b/testsuite/tests/parser/should_compile/all.T @@ -179,3 +179,5 @@ test('T19521', normal, compile, ['']) test('T20186', normal, compile, ['']) test('T20452', normal, compile, ['']) + +test('DumpSemis', normal, compile, ['-dsuppress-uniques -ddump-parsed-ast']) |