==================== Parser AST ==================== (L { T20452.hs:1:1 } (HsModule (XModulePs (EpAnn (Anchor { T20452.hs:1:1 } (UnchangedAnchor)) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { T20452.hs:3:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T20452.hs:3:15-19 }))] (AnnList (Nothing) (Nothing) (Nothing) [] [])) (EpaCommentsBalanced [] [(L (Anchor { T20452.hs:10:1 } (UnchangedAnchor)) (EpaComment (EpaEofComment) { T20452.hs:10:1 }))])) (VirtualBraces (1)) (Nothing) (Nothing)) (Just (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:3:8-13 }) {ModuleName: T20452})) (Nothing) [] [(L (SrcSpanAnn (EpAnn (Anchor { T20452.hs:5:1-31 } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { T20452.hs:5:1-31 }) (TyClD (NoExtField) (DataDecl (EpAnn (Anchor { T20452.hs:5:1-31 } (UnchangedAnchor)) [(AddEpAnn AnnData (EpaSpan { T20452.hs:5:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { T20452.hs:5:24 }))] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:6-11 }) (Unqual {OccName: Proxy1})) (HsQTvs (NoExtField) [(L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:14-21 }) (KindedTyVar (EpAnn (Anchor { T20452.hs:5:14-21 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:5:17-18 })) ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:5:14 })) ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:5:21 }))] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:15 }) (Unqual {OccName: a})) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:20 }) (HsTyVar (EpAnn (Anchor { T20452.hs:5:20 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:20 }) (Unqual {OccName: k}))))))]) (Prefix) (HsDataDefn (NoExtField) (DataType) (Nothing) (Nothing) (Nothing) [(L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:26-31 }) (ConDeclH98 (EpAnn (Anchor { T20452.hs:5:26-31 } (UnchangedAnchor)) [] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:26-31 }) (Unqual {OccName: Proxy1})) (False) [] (Nothing) (PrefixCon [] []) (Nothing)))] [])))) ,(L (SrcSpanAnn (EpAnn (Anchor { T20452.hs:6:1-31 } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { T20452.hs:6:1-31 }) (TyClD (NoExtField) (DataDecl (EpAnn (Anchor { T20452.hs:6:1-31 } (UnchangedAnchor)) [(AddEpAnn AnnData (EpaSpan { T20452.hs:6:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { T20452.hs:6:24 }))] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:6-11 }) (Unqual {OccName: Proxy2})) (HsQTvs (NoExtField) [(L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:13-22 }) (KindedTyVar (EpAnn (Anchor { 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 AnnCloseP (EpaSpan { T20452.hs:6:22 }))] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:15 }) (Unqual {OccName: a})) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:20 }) (HsTyVar (EpAnn (Anchor { T20452.hs:6:20 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:20 }) (Unqual {OccName: k}))))))]) (Prefix) (HsDataDefn (NoExtField) (DataType) (Nothing) (Nothing) (Nothing) [(L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:26-31 }) (ConDeclH98 (EpAnn (Anchor { T20452.hs:6:26-31 } (UnchangedAnchor)) [] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:26-31 }) (Unqual {OccName: Proxy2})) (False) [] (Nothing) (PrefixCon [] []) (Nothing)))] [])))) ,(L (SrcSpanAnn (EpAnn (Anchor { T20452.hs:8:1-85 } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { T20452.hs:8:1-85 }) (TyClD (NoExtField) (ClassDecl ((,,) (EpAnn (Anchor { T20452.hs:8:1-85 } (UnchangedAnchor)) [(AddEpAnn AnnClass (EpaSpan { T20452.hs:8:1-5 })) ,(AddEpAnn AnnWhere (EpaSpan { T20452.hs:8:78-82 })) ,(AddEpAnn AnnOpenC (EpaSpan { T20452.hs:8:84 })) ,(AddEpAnn AnnCloseC (EpaSpan { T20452.hs:8:85 }))] (EpaComments [])) (NoAnnSortKey) (ExplicitBraces)) (Nothing) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:7-12 }) (Unqual {OccName: Prods1})) (HsQTvs (NoExtField) [(L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:15-26 }) (KindedTyVar (EpAnn (Anchor { T20452.hs:8:15-26 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:8:20-21 })) ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:8:15 })) ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:8:26 }))] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:16-18 }) (Unqual {OccName: lhs})) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:23-25 }) (HsTyVar (EpAnn (Anchor { T20452.hs:8:23-25 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:23-25 }) (Unqual {OccName: Int})))))) ,(L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:30-45 }) (KindedTyVar (EpAnn (Anchor { T20452.hs:8:30-45 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:8:36-37 })) ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:8:30 })) ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:8:45 }))] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:31-34 }) (Unqual {OccName: name})) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:39-44 }) (HsTyVar (EpAnn (Anchor { T20452.hs:8:39-44 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:39-44 }) (Unqual {OccName: String})))))) ,(L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:49-75 }) (KindedTyVar (EpAnn (Anchor { T20452.hs:8:49-75 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:8:54-55 })) ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:8:49 })) ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:8:75 }))] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:50-52 }) (Unqual {OccName: rhs})) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:57-74 }) (HsListTy (EpAnn (Anchor { T20452.hs:8:57 } (UnchangedAnchor)) (AnnParen (AnnParensSquare) (EpaSpan { T20452.hs:8:57 }) (EpaSpan { T20452.hs:8:74 })) (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:58-73 }) (HsTupleTy (EpAnn (Anchor { T20452.hs:8:58 } (UnchangedAnchor)) (AnnParen (AnnParens) (EpaSpan { T20452.hs:8:58 }) (EpaSpan { T20452.hs:8:73 })) (EpaComments [])) (HsBoxedOrConstraintTuple) [(L (SrcSpanAnn (EpAnn (Anchor { T20452.hs:8:59-64 } (UnchangedAnchor)) (AnnListItem [(AddCommaAnn (EpaSpan { T20452.hs:8:65 }))]) (EpaComments [])) { T20452.hs:8:59-64 }) (HsTyVar (EpAnn (Anchor { T20452.hs:8:59-64 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:59-64 }) (Unqual {OccName: String})))) ,(L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:67-72 }) (HsTyVar (EpAnn (Anchor { T20452.hs:8:67-72 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:67-72 }) (Unqual {OccName: String}))))]))))))]) (Prefix) [] [] {Bag(LocatedA (HsBind GhcPs)): []} [] [] []))) ,(L (SrcSpanAnn (EpAnn (Anchor { T20452.hs:9:1-85 } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { T20452.hs:9:1-85 }) (TyClD (NoExtField) (ClassDecl ((,,) (EpAnn (Anchor { T20452.hs:9:1-85 } (UnchangedAnchor)) [(AddEpAnn AnnClass (EpaSpan { T20452.hs:9:1-5 })) ,(AddEpAnn AnnWhere (EpaSpan { T20452.hs:9:78-82 })) ,(AddEpAnn AnnOpenC (EpaSpan { T20452.hs:9:84 })) ,(AddEpAnn AnnCloseC (EpaSpan { T20452.hs:9:85 }))] (EpaComments [])) (NoAnnSortKey) (ExplicitBraces)) (Nothing) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:7-12 }) (Unqual {OccName: Prods2})) (HsQTvs (NoExtField) [(L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:14-27 }) (KindedTyVar (EpAnn (Anchor { 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 AnnCloseP (EpaSpan { T20452.hs:9:27 }))] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:16-18 }) (Unqual {OccName: lhs})) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:23-25 }) (HsTyVar (EpAnn (Anchor { T20452.hs:9:23-25 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:23-25 }) (Unqual {OccName: Int})))))) ,(L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:29-46 }) (KindedTyVar (EpAnn (Anchor { 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 AnnCloseP (EpaSpan { T20452.hs:9:46 }))] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:31-34 }) (Unqual {OccName: name})) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:39-44 }) (HsTyVar (EpAnn (Anchor { T20452.hs:9:39-44 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:39-44 }) (Unqual {OccName: String})))))) ,(L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:48-76 }) (KindedTyVar (EpAnn (Anchor { 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 AnnCloseP (EpaSpan { T20452.hs:9:76 }))] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:50-52 }) (Unqual {OccName: rhs})) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:57-74 }) (HsListTy (EpAnn (Anchor { T20452.hs:9:57 } (UnchangedAnchor)) (AnnParen (AnnParensSquare) (EpaSpan { T20452.hs:9:57 }) (EpaSpan { T20452.hs:9:74 })) (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:58-73 }) (HsTupleTy (EpAnn (Anchor { T20452.hs:9:58 } (UnchangedAnchor)) (AnnParen (AnnParens) (EpaSpan { T20452.hs:9:58 }) (EpaSpan { T20452.hs:9:73 })) (EpaComments [])) (HsBoxedOrConstraintTuple) [(L (SrcSpanAnn (EpAnn (Anchor { T20452.hs:9:59-64 } (UnchangedAnchor)) (AnnListItem [(AddCommaAnn (EpaSpan { T20452.hs:9:65 }))]) (EpaComments [])) { T20452.hs:9:59-64 }) (HsTyVar (EpAnn (Anchor { T20452.hs:9:59-64 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:59-64 }) (Unqual {OccName: String})))) ,(L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:67-72 }) (HsTyVar (EpAnn (Anchor { T20452.hs:9:67-72 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:67-72 }) (Unqual {OccName: String}))))]))))))]) (Prefix) [] [] {Bag(LocatedA (HsBind GhcPs)): []} [] [] [])))]))