==================== Parser AST ==================== (L { Test20297.hs:1:1 } (HsModule (XModulePs (EpAnn (Anchor { Test20297.hs:1:1 } (UnchangedAnchor)) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { Test20297.hs:2:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { Test20297.hs:2:18-22 }))] (AnnList (Nothing) (Nothing) (Nothing) [] [])) (EpaCommentsBalanced [(L (Anchor { Test20297.hs:1:1-33 } (UnchangedAnchor)) (EpaComment (EpaBlockComment "{-# OPTIONS -ddump-parsed-ast #-}") { Test20297.hs:1:1 }))] [(L (Anchor { Test20297.hs:12:1 } (UnchangedAnchor)) (EpaComment (EpaEofComment) { Test20297.hs:12:1 }))])) (VirtualBraces (1)) (Nothing) (Nothing)) (Just (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:2:8-16 }) {ModuleName: Test20297})) (Nothing) [] [(L (SrcSpanAnn (EpAnn (Anchor { Test20297.hs:(5,1)-(7,7) } (UnchangedAnchor)) (AnnListItem []) (EpaComments [(L (Anchor { Test20297.hs:7:9-19 } (UnchangedAnchor)) (EpaComment (EpaLineComment "-- comment1") { Test20297.hs:7:3-7 }))])) { Test20297.hs:(5,1)-(7,7) }) (ValD (NoExtField) (FunBind (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:5:1-3 }) (Unqual {OccName: bar})) (MG (FromSource) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:(5,1)-(7,7) }) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:(5,1)-(7,7) }) (Match (EpAnn (Anchor { Test20297.hs:(5,1)-(7,7) } (UnchangedAnchor)) [] (EpaComments [])) (FunRhs (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:5:1-3 }) (Unqual {OccName: bar})) (Prefix) (NoSrcStrict)) [] (GRHSs (EpaComments []) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:(5,5)-(7,7) }) (GRHS (EpAnn (Anchor { Test20297.hs:(5,5)-(7,7) } (UnchangedAnchor)) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { Test20297.hs:5:5 }))) (EpaComments [(L (Anchor { Test20297.hs:6:3-13 } (UnchangedAnchor)) (EpaComment (EpaLineComment "-- comment0") { Test20297.hs:5:7 }))])) [] (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:5:7 }) (HsVar (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:5:7 }) (Unqual {OccName: x}))))))] (HsValBinds (EpAnn (Anchor { Test20297.hs:7:3-7 } (UnchangedAnchor)) (AnnList (Just (Anchor { Test20297.hs:7:3-7 } (UnchangedAnchor))) (Nothing) (Nothing) [(AddEpAnn AnnWhere (EpaSpan { Test20297.hs:7:3-7 }))] []) (EpaComments [])) (ValBinds (NoAnnSortKey) {Bag(LocatedA (HsBind GhcPs)): []} [])))))]))))) ,(L (SrcSpanAnn (EpAnn (Anchor { Test20297.hs:(9,1)-(11,26) } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { Test20297.hs:(9,1)-(11,26) }) (ValD (NoExtField) (FunBind (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:9:1-3 }) (Unqual {OccName: foo})) (MG (FromSource) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:(9,1)-(11,26) }) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:(9,1)-(11,26) }) (Match (EpAnn (Anchor { Test20297.hs:(9,1)-(11,26) } (UnchangedAnchor)) [] (EpaComments [])) (FunRhs (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:9:1-3 }) (Unqual {OccName: foo})) (Prefix) (NoSrcStrict)) [] (GRHSs (EpaComments []) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:(9,5)-(11,26) }) (GRHS (EpAnn (Anchor { Test20297.hs:(9,5)-(11,26) } (UnchangedAnchor)) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { Test20297.hs:9:5 }))) (EpaComments [])) [] (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:9:7 }) (HsVar (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:9:7 }) (Unqual {OccName: x}))))))] (HsValBinds (EpAnn (Anchor { Test20297.hs:(10,3)-(11,26) } (UnchangedAnchor)) (AnnList (Just (Anchor { Test20297.hs:11:9-26 } (UnchangedAnchor))) (Nothing) (Nothing) [(AddEpAnn AnnWhere (EpaSpan { Test20297.hs:10:3-7 }))] []) (EpaComments [(L (Anchor { Test20297.hs:10:9-19 } (UnchangedAnchor)) (EpaComment (EpaLineComment "-- comment2") { Test20297.hs:10:3-7 }))])) (ValBinds (NoAnnSortKey) {Bag(LocatedA (HsBind GhcPs)): [(L (SrcSpanAnn (EpAnn (Anchor { Test20297.hs:11:9-26 } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { Test20297.hs:11:9-26 }) (FunBind (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:9-15 }) (Unqual {OccName: doStuff})) (MG (FromSource) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:9-26 }) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:9-26 }) (Match (EpAnn (Anchor { Test20297.hs:11:9-26 } (UnchangedAnchor)) [] (EpaComments [])) (FunRhs (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:9-15 }) (Unqual {OccName: doStuff})) (Prefix) (NoSrcStrict)) [] (GRHSs (EpaComments []) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:17-26 }) (GRHS (EpAnn (Anchor { Test20297.hs:11:17-26 } (UnchangedAnchor)) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { Test20297.hs:11:17 }))) (EpaComments [])) [] (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:19-26 }) (HsDo (EpAnn (Anchor { Test20297.hs:11:19-26 } (UnchangedAnchor)) (AnnList (Just (Anchor { Test20297.hs:11:22-26 } (UnchangedAnchor))) (Nothing) (Nothing) [(AddEpAnn AnnDo (EpaSpan { Test20297.hs:11:19-20 }))] []) (EpaComments [])) (DoExpr (Nothing)) (L (SrcSpanAnn (EpAnn (Anchor { Test20297.hs:11:22-26 } (UnchangedAnchor)) (AnnList (Just (Anchor { Test20297.hs:11:22-26 } (UnchangedAnchor))) (Nothing) (Nothing) [] []) (EpaComments [])) { Test20297.hs:11:22-26 }) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:22-26 }) (BodyStmt (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:22-26 }) (HsVar (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:22-26 }) (Unqual {OccName: stuff})))) (NoExtField) (NoExtField)))])))))] (EmptyLocalBinds (NoExtField)))))]))))]} [])))))])))))])) ==================== Parser AST ==================== (L { Test20297.ppr.hs:1:1 } (HsModule (XModulePs (EpAnn (Anchor { Test20297.ppr.hs:1:1 } (UnchangedAnchor)) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { Test20297.ppr.hs:2:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { Test20297.ppr.hs:2:18-22 }))] (AnnList (Nothing) (Nothing) (Nothing) [] [])) (EpaCommentsBalanced [(L (Anchor { Test20297.ppr.hs:1:1-33 } (UnchangedAnchor)) (EpaComment (EpaBlockComment "{-# OPTIONS -ddump-parsed-ast #-}") { Test20297.ppr.hs:1:1 }))] [(L (Anchor { Test20297.ppr.hs:9:25 } (UnchangedAnchor)) (EpaComment (EpaEofComment) { Test20297.ppr.hs:9:20 }))])) (VirtualBraces (1)) (Nothing) (Nothing)) (Just (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:2:8-16 }) {ModuleName: Test20297})) (Nothing) [] [(L (SrcSpanAnn (EpAnn (Anchor { Test20297.ppr.hs:(3,1)-(5,7) } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { Test20297.ppr.hs:(3,1)-(5,7) }) (ValD (NoExtField) (FunBind (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:3:1-3 }) (Unqual {OccName: bar})) (MG (FromSource) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:(3,1)-(5,7) }) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:(3,1)-(5,7) }) (Match (EpAnn (Anchor { Test20297.ppr.hs:(3,1)-(5,7) } (UnchangedAnchor)) [] (EpaComments [])) (FunRhs (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:3:1-3 }) (Unqual {OccName: bar})) (Prefix) (NoSrcStrict)) [] (GRHSs (EpaComments []) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:(4,3)-(5,7) }) (GRHS (EpAnn (Anchor { Test20297.ppr.hs:(4,3)-(5,7) } (UnchangedAnchor)) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { Test20297.ppr.hs:4:3 }))) (EpaComments [])) [] (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:4:5 }) (HsVar (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:4:5 }) (Unqual {OccName: x}))))))] (HsValBinds (EpAnn (Anchor { Test20297.ppr.hs:5:3-7 } (UnchangedAnchor)) (AnnList (Just (Anchor { Test20297.ppr.hs:5:3-7 } (UnchangedAnchor))) (Nothing) (Nothing) [(AddEpAnn AnnWhere (EpaSpan { Test20297.ppr.hs:5:3-7 }))] []) (EpaComments [])) (ValBinds (NoAnnSortKey) {Bag(LocatedA (HsBind GhcPs)): []} [])))))]))))) ,(L (SrcSpanAnn (EpAnn (Anchor { Test20297.ppr.hs:(6,1)-(9,24) } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { Test20297.ppr.hs:(6,1)-(9,24) }) (ValD (NoExtField) (FunBind (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:6:1-3 }) (Unqual {OccName: foo})) (MG (FromSource) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:(6,1)-(9,24) }) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:(6,1)-(9,24) }) (Match (EpAnn (Anchor { Test20297.ppr.hs:(6,1)-(9,24) } (UnchangedAnchor)) [] (EpaComments [])) (FunRhs (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:6:1-3 }) (Unqual {OccName: foo})) (Prefix) (NoSrcStrict)) [] (GRHSs (EpaComments []) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:(7,3)-(9,24) }) (GRHS (EpAnn (Anchor { Test20297.ppr.hs:(7,3)-(9,24) } (UnchangedAnchor)) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { Test20297.ppr.hs:7:3 }))) (EpaComments [])) [] (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:7:5 }) (HsVar (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:7:5 }) (Unqual {OccName: x}))))))] (HsValBinds (EpAnn (Anchor { Test20297.ppr.hs:(8,3)-(9,24) } (UnchangedAnchor)) (AnnList (Just (Anchor { Test20297.ppr.hs:9:7-24 } (UnchangedAnchor))) (Nothing) (Nothing) [(AddEpAnn AnnWhere (EpaSpan { Test20297.ppr.hs:8:3-7 }))] []) (EpaComments [])) (ValBinds (NoAnnSortKey) {Bag(LocatedA (HsBind GhcPs)): [(L (SrcSpanAnn (EpAnn (Anchor { Test20297.ppr.hs:9:7-24 } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { Test20297.ppr.hs:9:7-24 }) (FunBind (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:7-13 }) (Unqual {OccName: doStuff})) (MG (FromSource) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:7-24 }) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:7-24 }) (Match (EpAnn (Anchor { Test20297.ppr.hs:9:7-24 } (UnchangedAnchor)) [] (EpaComments [])) (FunRhs (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:7-13 }) (Unqual {OccName: doStuff})) (Prefix) (NoSrcStrict)) [] (GRHSs (EpaComments []) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:15-24 }) (GRHS (EpAnn (Anchor { Test20297.ppr.hs:9:15-24 } (UnchangedAnchor)) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { Test20297.ppr.hs:9:15 }))) (EpaComments [])) [] (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:17-24 }) (HsDo (EpAnn (Anchor { Test20297.ppr.hs:9:17-24 } (UnchangedAnchor)) (AnnList (Just (Anchor { Test20297.ppr.hs:9:20-24 } (UnchangedAnchor))) (Nothing) (Nothing) [(AddEpAnn AnnDo (EpaSpan { Test20297.ppr.hs:9:17-18 }))] []) (EpaComments [])) (DoExpr (Nothing)) (L (SrcSpanAnn (EpAnn (Anchor { Test20297.ppr.hs:9:20-24 } (UnchangedAnchor)) (AnnList (Just (Anchor { Test20297.ppr.hs:9:20-24 } (UnchangedAnchor))) (Nothing) (Nothing) [] []) (EpaComments [])) { Test20297.ppr.hs:9:20-24 }) [(L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:20-24 }) (BodyStmt (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:20-24 }) (HsVar (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:20-24 }) (Unqual {OccName: stuff})))) (NoExtField) (NoExtField)))])))))] (EmptyLocalBinds (NoExtField)))))]))))]} [])))))])))))]))