==================== Parser AST ==================== (L { DumpParsedAst.hs:1:1 } (HsModule (XModulePs (EpAnn (Anchor { DumpParsedAst.hs:1:1 } (UnchangedAnchor)) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { DumpParsedAst.hs:5:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:5:22-26 }))] (AnnList (Nothing) (Nothing) (Nothing) [] [])) (EpaCommentsBalanced [] [(L (Anchor { DumpParsedAst.hs:25:1 } (UnchangedAnchor)) (EpaComment (EpaEofComment) { DumpParsedAst.hs:25:1 }))])) (VirtualBraces (1)) (Nothing) (Nothing)) (Just (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:5:8-20 }) {ModuleName: DumpParsedAst})) (Nothing) [(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:6:1-16 }) (ImportDecl (XImportDeclPass (EpAnn (Anchor { DumpParsedAst.hs:6:1-6 } (UnchangedAnchor)) (EpAnnImportDecl (EpaSpan { DumpParsedAst.hs:6:1-6 }) (Nothing) (Nothing) (Nothing) (Nothing) (Nothing)) (EpaComments [])) (NoSourceText) (False)) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:6:8-16 }) {ModuleName: Data.Kind}) (NoRawPkgQual) (NotBoot) (False) (NotQualified) (Nothing) (Nothing)))] [(L (SrcSpanAnn (EpAnn (Anchor { DumpParsedAst.hs:8:1-30 } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { DumpParsedAst.hs:8:1-30 }) (TyClD (NoExtField) (DataDecl (EpAnn (Anchor { DumpParsedAst.hs:8:1-30 } (UnchangedAnchor)) [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:8:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:8:12 }))] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:6-10 }) (Unqual {OccName: Peano})) (HsQTvs (NoExtField) []) (Prefix) (HsDataDefn (NoExtField) (DataType) (Nothing) (Nothing) (Nothing) [(L (SrcSpanAnn (EpAnn (Anchor { DumpParsedAst.hs:8:14-17 } (UnchangedAnchor)) (AnnListItem [(AddVbarAnn (EpaSpan { DumpParsedAst.hs:8:19 }))]) (EpaComments [])) { DumpParsedAst.hs:8:14-17 }) (ConDeclH98 (EpAnn (Anchor { DumpParsedAst.hs:8:14-17 } (UnchangedAnchor)) [] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:14-17 }) (Unqual {OccName: Zero})) (False) [] (Nothing) (PrefixCon [] []) (Nothing))) ,(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:21-30 }) (ConDeclH98 (EpAnn (Anchor { DumpParsedAst.hs:8:21-30 } (UnchangedAnchor)) [] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:21-24 }) (Unqual {OccName: Succ})) (False) [] (Nothing) (PrefixCon [] [(HsScaled (HsLinearArrow (HsPct1 (L (NoTokenLoc) (HsTok)) (L (NoTokenLoc) (HsNormalTok)))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:26-30 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:8:26-30 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:26-30 }) (Unqual {OccName: Peano})))))]) (Nothing)))] [])))) ,(L (SrcSpanAnn (EpAnn (Anchor { DumpParsedAst.hs:(10,1)-(12,24) } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { DumpParsedAst.hs:(10,1)-(12,24) }) (TyClD (NoExtField) (FamDecl (NoExtField) (FamilyDecl (EpAnn (Anchor { DumpParsedAst.hs:(10,1)-(12,24) } (UnchangedAnchor)) [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:10:1-4 })) ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:10:6-11 })) ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:10:32-33 })) ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:10:41-45 }))] (EpaComments [])) (ClosedTypeFamily (Just [(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:3-36 }) (FamEqn (EpAnn (Anchor { DumpParsedAst.hs:11:3-36 } (UnchangedAnchor)) [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:11:19 }))] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:3-8 }) (Unqual {OccName: Length})) (HsOuterImplicit (NoExtField)) [(HsValArg (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:10-17 }) (HsParTy (EpAnn (Anchor { DumpParsedAst.hs:11:10 } (UnchangedAnchor)) (AnnParen (AnnParens) (EpaSpan { DumpParsedAst.hs:11:10 }) (EpaSpan { DumpParsedAst.hs:11:17 })) (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:11-16 }) (HsOpTy (EpAnnNotUsed) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:11 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:11:11 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:11 }) (Unqual {OccName: a})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:13 }) (Exact {Name: :})) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:15-16 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:11:15-16 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:15-16 }) (Unqual {OccName: as})))))))))] (Prefix) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:21-36 }) (HsAppTy (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:21-24 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:11:21-24 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:21-24 }) (Unqual {OccName: Succ})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:26-36 }) (HsParTy (EpAnn (Anchor { DumpParsedAst.hs:11:26 } (UnchangedAnchor)) (AnnParen (AnnParens) (EpaSpan { DumpParsedAst.hs:11:26 }) (EpaSpan { DumpParsedAst.hs:11:36 })) (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:27-35 }) (HsAppTy (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:27-32 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:11:27-32 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:27-32 }) (Unqual {OccName: Length})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:34-35 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:11:34-35 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:34-35 }) (Unqual {OccName: as})))))))))))) ,(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:12:3-24 }) (FamEqn (EpAnn (Anchor { DumpParsedAst.hs:12:3-24 } (UnchangedAnchor)) [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:12:19 }))] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:12:3-8 }) (Unqual {OccName: Length})) (HsOuterImplicit (NoExtField)) [(HsValArg (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:12:10-12 }) (HsExplicitListTy (EpAnn (Anchor { DumpParsedAst.hs:12:10 } (UnchangedAnchor)) [(AddEpAnn AnnSimpleQuote (EpaSpan { DumpParsedAst.hs:12:10 })) ,(AddEpAnn AnnOpenS (EpaSpan { DumpParsedAst.hs:12:11 })) ,(AddEpAnn AnnCloseS (EpaSpan { DumpParsedAst.hs:12:12 }))] (EpaComments [])) (IsPromoted) [])))] (Prefix) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:12:21-24 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:12:21-24 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:12:21-24 }) (Unqual {OccName: Zero}))))))])) (TopLevel) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:13-18 }) (Unqual {OccName: Length})) (HsQTvs (NoExtField) [(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:20-30 }) (KindedTyVar (EpAnn (Anchor { DumpParsedAst.hs:10:20-30 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:10:24-25 })) ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:10:20 })) ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:10:30 }))] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:21-22 }) (Unqual {OccName: as})) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:27-29 }) (HsListTy (EpAnn (Anchor { DumpParsedAst.hs:10:27 } (UnchangedAnchor)) (AnnParen (AnnParensSquare) (EpaSpan { DumpParsedAst.hs:10:27 }) (EpaSpan { DumpParsedAst.hs:10:29 })) (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:28 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:10:28 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:28 }) (Unqual {OccName: k}))))))))]) (Prefix) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:32-39 }) (KindSig (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:35-39 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:10:35-39 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:35-39 }) (Unqual {OccName: Peano})))))) (Nothing))))) ,(L (SrcSpanAnn (EpAnn (Anchor { DumpParsedAst.hs:15:1-29 } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { DumpParsedAst.hs:15:1-29 }) (TyClD (NoExtField) (DataDecl (EpAnn (Anchor { DumpParsedAst.hs:15:1-29 } (UnchangedAnchor)) [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:15:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:15:19 }))] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:6 }) (Unqual {OccName: T})) (HsQTvs (NoExtField) [(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:8 }) (UserTyVar (EpAnn (Anchor { DumpParsedAst.hs:15:8 } (UnchangedAnchor)) [] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:8 }) (Unqual {OccName: f})))) ,(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:10-17 }) (KindedTyVar (EpAnn (Anchor { DumpParsedAst.hs:15:10-17 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:15:13-14 })) ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:15:10 })) ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:15:17 }))] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:11 }) (Unqual {OccName: a})) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:16 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:15:16 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:16 }) (Unqual {OccName: k}))))))]) (Prefix) (HsDataDefn (NoExtField) (DataType) (Nothing) (Nothing) (Nothing) [(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:21-29 }) (ConDeclH98 (EpAnn (Anchor { DumpParsedAst.hs:15:21-29 } (UnchangedAnchor)) [] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:21-23 }) (Unqual {OccName: MkT})) (False) [] (Nothing) (PrefixCon [] [(HsScaled (HsLinearArrow (HsPct1 (L (NoTokenLoc) (HsTok)) (L (NoTokenLoc) (HsNormalTok)))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:25-29 }) (HsParTy (EpAnn (Anchor { DumpParsedAst.hs:15:25 } (UnchangedAnchor)) (AnnParen (AnnParens) (EpaSpan { DumpParsedAst.hs:15:25 }) (EpaSpan { DumpParsedAst.hs:15:29 })) (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:26-28 }) (HsAppTy (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:26 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:15:26 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:26 }) (Unqual {OccName: f})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:28 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:15:28 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:28 }) (Unqual {OccName: a})))))))))]) (Nothing)))] [])))) ,(L (SrcSpanAnn (EpAnn (Anchor { DumpParsedAst.hs:(17,1)-(18,30) } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { DumpParsedAst.hs:(17,1)-(18,30) }) (TyClD (NoExtField) (FamDecl (NoExtField) (FamilyDecl (EpAnn (Anchor { DumpParsedAst.hs:(17,1)-(18,30) } (UnchangedAnchor)) [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:17:1-4 })) ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:17:6-11 })) ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:17:42-43 })) ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:17:50-54 }))] (EpaComments [])) (ClosedTypeFamily (Just [(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:3-30 }) (FamEqn (EpAnn (Anchor { DumpParsedAst.hs:18:3-30 } (UnchangedAnchor)) [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:18:17 }))] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:3-4 }) (Unqual {OccName: F1})) (HsOuterImplicit (NoExtField)) [(HsTypeArg { DumpParsedAst.hs:18:6 } (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:7-11 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:18:7-11 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:7-11 }) (Unqual {OccName: Peano}))))) ,(HsValArg (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:13 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:18:13 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:13 }) (Unqual {OccName: a}))))) ,(HsValArg (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:15 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:18:15 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:15 }) (Unqual {OccName: f})))))] (Prefix) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19-30 }) (HsAppTy (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19-28 }) (HsAppTy (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19-26 }) (HsAppKindTy { DumpParsedAst.hs:18:21 } (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:18:19 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19 }) (Unqual {OccName: T})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:22-26 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:18:22-26 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:22-26 }) (Unqual {OccName: Peano})))))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:28 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:18:28 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:28 }) (Unqual {OccName: f})))))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:30 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:18:30 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:30 }) (Unqual {OccName: a}))))))))])) (TopLevel) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:13-14 }) (Unqual {OccName: F1})) (HsQTvs (NoExtField) [(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:16-23 }) (KindedTyVar (EpAnn (Anchor { DumpParsedAst.hs:17:16-23 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:17:19-20 })) ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:17:16 })) ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:17:23 }))] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:17 }) (Unqual {OccName: a})) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:22 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:17:22 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:22 }) (Unqual {OccName: k})))))) ,(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:25-40 }) (KindedTyVar (EpAnn (Anchor { DumpParsedAst.hs:17:25-40 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:17:28-29 })) ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:17:25 })) ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:17:40 }))] (EpaComments [])) (()) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:26 }) (Unqual {OccName: f})) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:31-39 }) (HsFunTy (EpAnn (Anchor { DumpParsedAst.hs:17:31 } (UnchangedAnchor)) (NoEpAnns) (EpaComments [])) (HsUnrestrictedArrow (L (TokenLoc (EpaSpan { DumpParsedAst.hs:17:33-34 })) (HsNormalTok))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:31 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:17:31 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:31 }) (Unqual {OccName: k})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:36-39 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:17:36-39 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:36-39 }) (Unqual {OccName: Type}))))))))]) (Prefix) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:42-48 }) (KindSig (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:45-48 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:17:45-48 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:45-48 }) (Unqual {OccName: Type})))))) (Nothing))))) ,(L (SrcSpanAnn (EpAnn (Anchor { DumpParsedAst.hs:20:1-33 } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { DumpParsedAst.hs:20:1-33 }) (TyClD (NoExtField) (FamDecl (NoExtField) (FamilyDecl (EpAnn (Anchor { DumpParsedAst.hs:20:1-33 } (UnchangedAnchor)) [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:20:1-4 })) ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:20:6-11 })) ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:20:17-18 }))] (EpaComments [])) (DataFamily) (TopLevel) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:13-15 }) (Unqual {OccName: Nat})) (HsQTvs (NoExtField) []) (Prefix) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:17-33 }) (KindSig (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:20-33 }) (HsFunTy (EpAnn (Anchor { DumpParsedAst.hs:20:20 } (UnchangedAnchor)) (NoEpAnns) (EpaComments [])) (HsUnrestrictedArrow (L (TokenLoc (EpaSpan { DumpParsedAst.hs:20:22-23 })) (HsNormalTok))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:20 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:20:20 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:20 }) (Unqual {OccName: k})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:25-33 }) (HsFunTy (EpAnn (Anchor { DumpParsedAst.hs:20:25 } (UnchangedAnchor)) (NoEpAnns) (EpaComments [])) (HsUnrestrictedArrow (L (TokenLoc (EpaSpan { DumpParsedAst.hs:20:27-28 })) (HsNormalTok))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:25 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:20:25 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:25 }) (Unqual {OccName: k})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:30-33 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:20:30-33 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:30-33 }) (Unqual {OccName: Type})))))))))) (Nothing))))) ,(L (SrcSpanAnn (EpAnn (Anchor { DumpParsedAst.hs:(21,1)-(22,45) } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { DumpParsedAst.hs:(21,1)-(22,45) }) (InstD (NoExtField) (DataFamInstD (NoExtField) (DataFamInstDecl (FamEqn (EpAnn (Anchor { DumpParsedAst.hs:(21,1)-(22,45) } (UnchangedAnchor)) [(AddEpAnn AnnNewtype (EpaSpan { DumpParsedAst.hs:21:1-7 })) ,(AddEpAnn AnnInstance (EpaSpan { DumpParsedAst.hs:21:9-16 })) ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:21:39-40 })) ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:21:62-66 }))] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:18-20 }) (Unqual {OccName: Nat})) (HsOuterImplicit (NoExtField)) [(HsValArg (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:22-37 }) (HsParTy (EpAnn (Anchor { DumpParsedAst.hs:21:22 } (UnchangedAnchor)) (AnnParen (AnnParens) (EpaSpan { DumpParsedAst.hs:21:22 }) (EpaSpan { DumpParsedAst.hs:21:37 })) (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:23-36 }) (HsKindSig (EpAnn (Anchor { DumpParsedAst.hs:21:23 } (UnchangedAnchor)) [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:21:25-26 }))] (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:23 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:21:23 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:23 }) (Unqual {OccName: a})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:28-36 }) (HsFunTy (EpAnn (Anchor { DumpParsedAst.hs:21:28 } (UnchangedAnchor)) (NoEpAnns) (EpaComments [])) (HsUnrestrictedArrow (L (TokenLoc (EpaSpan { DumpParsedAst.hs:21:30-31 })) (HsNormalTok))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:28 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:21:28 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:28 }) (Unqual {OccName: k})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:33-36 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:21:33-36 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:33-36 }) (Unqual {OccName: Type})))))))))))] (Prefix) (HsDataDefn (NoExtField) (NewType) (Nothing) (Nothing) (Just (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:42-60 }) (HsFunTy (EpAnn (Anchor { DumpParsedAst.hs:21:42-52 } (UnchangedAnchor)) (NoEpAnns) (EpaComments [])) (HsUnrestrictedArrow (L (TokenLoc (EpaSpan { DumpParsedAst.hs:21:54-55 })) (HsNormalTok))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:42-52 }) (HsParTy (EpAnn (Anchor { DumpParsedAst.hs:21:42 } (UnchangedAnchor)) (AnnParen (AnnParens) (EpaSpan { DumpParsedAst.hs:21:42 }) (EpaSpan { DumpParsedAst.hs:21:52 })) (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:43-51 }) (HsFunTy (EpAnn (Anchor { DumpParsedAst.hs:21:43 } (UnchangedAnchor)) (NoEpAnns) (EpaComments [])) (HsUnrestrictedArrow (L (TokenLoc (EpaSpan { DumpParsedAst.hs:21:45-46 })) (HsNormalTok))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:43 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:21:43 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:43 }) (Unqual {OccName: k})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:48-51 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:21:48-51 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:48-51 }) (Unqual {OccName: Type})))))))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:57-60 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:21:57-60 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:57-60 }) (Unqual {OccName: Type}))))))) [(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:3-45 }) (ConDeclGADT (EpAnn (Anchor { DumpParsedAst.hs:22:3-45 } (UnchangedAnchor)) [] (EpaComments [])) [(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:3-5 }) (Unqual {OccName: Nat}))] (L (TokenLoc (EpaSpan { DumpParsedAst.hs:22:7-8 })) (HsNormalTok)) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:10-45 }) (HsOuterImplicit (NoExtField))) (Nothing) (PrefixConGADT [(HsScaled (HsUnrestrictedArrow (L (TokenLoc (EpaSpan { DumpParsedAst.hs:22:36-37 })) (HsNormalTok))) (L (SrcSpanAnn (EpAnn (Anchor { DumpParsedAst.hs:22:10-34 } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { DumpParsedAst.hs:22:10-34 }) (HsParTy (EpAnn (Anchor { DumpParsedAst.hs:22:10 } (UnchangedAnchor)) (AnnParen (AnnParens) (EpaSpan { DumpParsedAst.hs:22:10 }) (EpaSpan { DumpParsedAst.hs:22:34 })) (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:11-33 }) (HsForAllTy (NoExtField) (HsForAllInvis (EpAnn (Anchor { DumpParsedAst.hs:22:11-16 } (UnchangedAnchor)) ((,) (AddEpAnn AnnForall (EpaSpan { DumpParsedAst.hs:22:11-16 })) (AddEpAnn AnnDot (EpaSpan { DumpParsedAst.hs:22:20 }))) (EpaComments [])) [(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:18-19 }) (UserTyVar (EpAnn (Anchor { DumpParsedAst.hs:22:18-19 } (UnchangedAnchor)) [] (EpaComments [])) (SpecifiedSpec) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:18-19 }) (Unqual {OccName: xx}))))]) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22-33 }) (HsFunTy (EpAnn (Anchor { DumpParsedAst.hs:22:22-25 } (UnchangedAnchor)) (NoEpAnns) (EpaComments [])) (HsUnrestrictedArrow (L (TokenLoc (EpaSpan { DumpParsedAst.hs:22:27-28 })) (HsNormalTok))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22-25 }) (HsAppTy (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:22:22 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22 }) (Unqual {OccName: f})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:24-25 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:22:24-25 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:24-25 }) (Unqual {OccName: xx})))))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:30-33 }) (HsAppTy (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:30 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:22:30 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:30 }) (Unqual {OccName: g})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:32-33 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:22:32-33 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:32-33 }) (Unqual {OccName: xx})))))))))))))]) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:39-45 }) (HsAppTy (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:39-43 }) (HsAppTy (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:39-41 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:22:39-41 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:39-41 }) (Unqual {OccName: Nat})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:43 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:22:43 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:43 }) (Unqual {OccName: f})))))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:45 }) (HsTyVar (EpAnn (Anchor { DumpParsedAst.hs:22:45 } (UnchangedAnchor)) [] (EpaComments [])) (NotPromoted) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:45 }) (Unqual {OccName: g})))))) (Nothing)))] [])))))) ,(L (SrcSpanAnn (EpAnn (Anchor { DumpParsedAst.hs:24:1-23 } (UnchangedAnchor)) (AnnListItem []) (EpaComments [])) { DumpParsedAst.hs:24:1-23 }) (ValD (NoExtField) (FunBind (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:1-4 }) (Unqual {OccName: main})) (MG (FromSource) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:1-23 }) [(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:1-23 }) (Match (EpAnn (Anchor { DumpParsedAst.hs:24:1-23 } (UnchangedAnchor)) [] (EpaComments [])) (FunRhs (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:1-4 }) (Unqual {OccName: main})) (Prefix) (NoSrcStrict)) [] (GRHSs (EpaComments []) [(L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:6-23 }) (GRHS (EpAnn (Anchor { DumpParsedAst.hs:24:6-23 } (UnchangedAnchor)) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:24:6 }))) (EpaComments [])) [] (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:8-23 }) (HsApp (EpAnn (Anchor { DumpParsedAst.hs:24:8-23 } (UnchangedAnchor)) (NoEpAnns) (EpaComments [])) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:8-15 }) (HsVar (NoExtField) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:8-15 }) (Unqual {OccName: putStrLn})))) (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:17-23 }) (HsLit (EpAnn (Anchor { DumpParsedAst.hs:24:17-23 } (UnchangedAnchor)) (NoEpAnns) (EpaComments [])) (HsString (SourceText "hello") {FastString: "hello"})))))))] (EmptyLocalBinds (NoExtField)))))])) [])))]))