diff options
author | Alan Zimmerman <alan.zimm@gmail.com> | 2017-09-13 14:02:42 +0200 |
---|---|---|
committer | Alan Zimmerman <alan.zimm@gmail.com> | 2017-09-13 19:52:36 +0200 |
commit | 2fe6f6baba70de071c391bccc77197ab4f81064d (patch) | |
tree | b36e69864cf1f37b66667b54e0e49be889d4fd59 | |
parent | 6139f7f7c1e95ffda13d8c5c05a3db1cc35e40bb (diff) | |
download | haskell-2fe6f6baba70de071c391bccc77197ab4f81064d.tar.gz |
Option "-ddump-rn-ast" dumps imports and exports too
Summary:
Previously the renamed source decls only were dumped, now the imports, exports
and doc_hdr are too.
Test Plan: ./validate
Reviewers: bgamari, austin
Reviewed By: bgamari
Subscribers: rwbarton, thomie
GHC Trac Issues: #14197
Differential Revision: https://phabricator.haskell.org/D3949
-rw-r--r-- | compiler/main/HscMain.hs | 34 | ||||
-rw-r--r-- | compiler/typecheck/TcRnDriver.hs | 4 | ||||
-rw-r--r-- | compiler/typecheck/TcRnMonad.hs | 5 | ||||
-rw-r--r-- | testsuite/tests/parser/should_compile/DumpRenamedAst.stderr | 673 |
4 files changed, 377 insertions, 339 deletions
diff --git a/compiler/main/HscMain.hs b/compiler/main/HscMain.hs index e99ca31fd4..6613c9861f 100644 --- a/compiler/main/HscMain.hs +++ b/compiler/main/HscMain.hs @@ -387,25 +387,47 @@ type RenamedStuff = (Maybe (HsGroup GhcRn, [LImportDecl GhcRn], Maybe [(LIE GhcRn, Avails)], Maybe LHsDocString)) --- | Rename and typecheck a module, additionally returning the renamed syntax -hscTypecheckRename :: HscEnv -> ModSummary -> HsParsedModule - -> IO (TcGblEnv, RenamedStuff) -hscTypecheckRename hsc_env mod_summary rdr_module = runHsc hsc_env $ do - tc_result <- hscTypecheck True mod_summary (Just rdr_module) +-- ----------------------------------------------------------------------------- +-- | If the renamed source has been kept, extract it. Dump it if requested. +extract_renamed_stuff :: TcGblEnv -> Hsc (TcGblEnv, RenamedStuff) +extract_renamed_stuff tc_result = do - -- This 'do' is in the Maybe monad! + -- This 'do' is in the Maybe monad! let rn_info = do decl <- tcg_rn_decls tc_result let imports = tcg_rn_imports tc_result exports = tcg_rn_exports tc_result doc_hdr = tcg_doc_hdr tc_result return (decl,imports,exports,doc_hdr) + dflags <- getDynFlags + liftIO $ dumpIfSet_dyn dflags Opt_D_dump_rn_ast "Renamer" $ + showAstData NoBlankSrcSpan rn_info + return (tc_result, rn_info) + +-- ----------------------------------------------------------------------------- +-- | Rename and typecheck a module, additionally returning the renamed syntax +hscTypecheckRename :: HscEnv -> ModSummary -> HsParsedModule + -> IO (TcGblEnv, RenamedStuff) +hscTypecheckRename hsc_env mod_summary rdr_module = runHsc hsc_env $ do + tc_result <- hscTypecheck True mod_summary (Just rdr_module) + extract_renamed_stuff tc_result + + hscTypecheck :: Bool -- ^ Keep renamed source? -> ModSummary -> Maybe HsParsedModule -> Hsc TcGblEnv hscTypecheck keep_rn mod_summary mb_rdr_module = do + tc_result <- hscTypecheck' keep_rn mod_summary mb_rdr_module + _ <- extract_renamed_stuff tc_result + return tc_result + + +hscTypecheck' :: Bool -- ^ Keep renamed source? + -> ModSummary -> Maybe HsParsedModule + -> Hsc TcGblEnv +hscTypecheck' keep_rn mod_summary mb_rdr_module = do hsc_env <- getHscEnv let hsc_src = ms_hsc_src mod_summary dflags = hsc_dflags hsc_env diff --git a/compiler/typecheck/TcRnDriver.hs b/compiler/typecheck/TcRnDriver.hs index c48b6558bb..e53a661d17 100644 --- a/compiler/typecheck/TcRnDriver.hs +++ b/compiler/typecheck/TcRnDriver.hs @@ -2512,9 +2512,7 @@ loadUnqualIfaces hsc_env ictxt rnDump :: (Outputable a, Data a) => a -> TcRn () -- Dump, with a banner, if -ddump-rn -rnDump rn = do { traceOptTcRn Opt_D_dump_rn (mkDumpDoc "Renamer" (ppr rn)) - ; traceOptTcRn Opt_D_dump_rn_ast - (mkDumpDoc "Renamer" (showAstData NoBlankSrcSpan rn)) } +rnDump rn = do { traceOptTcRn Opt_D_dump_rn (mkDumpDoc "Renamer" (ppr rn)) } tcDump :: TcGblEnv -> TcRn () tcDump env diff --git a/compiler/typecheck/TcRnMonad.hs b/compiler/typecheck/TcRnMonad.hs index b9638edb1f..0416e36621 100644 --- a/compiler/typecheck/TcRnMonad.hs +++ b/compiler/typecheck/TcRnMonad.hs @@ -224,8 +224,9 @@ initTc hsc_env hsc_src keep_rn_syntax mod loc do_this maybe_rn_syntax :: forall a. a -> Maybe a ; maybe_rn_syntax empty_val - | keep_rn_syntax = Just empty_val - | otherwise = Nothing ; + | dopt Opt_D_dump_rn_ast dflags = Just empty_val + | keep_rn_syntax = Just empty_val + | otherwise = Nothing ; gbl_env = TcGblEnv { tcg_th_topdecls = th_topdecls_var, diff --git a/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr b/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr index 60862cc110..6d6dac17d7 100644 --- a/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr +++ b/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr @@ -1,367 +1,384 @@ ==================== Renamer ==================== -(HsGroup - (ValBindsOut - [((,) - (NonRecursive) - {Bag(Located (HsBind Name)): - [({ DumpRenamedAst.hs:18:1-23 } - (FunBind - ({ DumpRenamedAst.hs:18:1-4 } - {Name: DumpRenamedAst.main}) - (MG - ({ DumpRenamedAst.hs:18:1-23 } - [({ DumpRenamedAst.hs:18:1-23 } - (Match - (FunRhs - ({ DumpRenamedAst.hs:18:1-4 } - {Name: DumpRenamedAst.main}) - (Prefix) - (NoSrcStrict)) - [] - (Nothing) - (GRHSs - [({ DumpRenamedAst.hs:18:6-23 } - (GRHS - [] - ({ DumpRenamedAst.hs:18:8-23 } - (HsApp - ({ DumpRenamedAst.hs:18:8-15 } - (HsVar +(Just + ((,,,) + (HsGroup + (ValBindsOut + [((,) + (NonRecursive) + {Bag(Located (HsBind Name)): + [({ DumpRenamedAst.hs:18:1-23 } + (FunBind + ({ DumpRenamedAst.hs:18:1-4 } + {Name: DumpRenamedAst.main}) + (MG + ({ DumpRenamedAst.hs:18:1-23 } + [({ DumpRenamedAst.hs:18:1-23 } + (Match + (FunRhs + ({ DumpRenamedAst.hs:18:1-4 } + {Name: DumpRenamedAst.main}) + (Prefix) + (NoSrcStrict)) + [] + (Nothing) + (GRHSs + [({ DumpRenamedAst.hs:18:6-23 } + (GRHS + [] + ({ DumpRenamedAst.hs:18:8-23 } + (HsApp ({ DumpRenamedAst.hs:18:8-15 } - {Name: putStrLn}))) - ({ DumpRenamedAst.hs:18:17-23 } - (HsLit - (HsString - (SourceText - "\"hello\"") - {FastString: "hello"})))))))] - ({ <no location info> } - (EmptyLocalBinds)))))]) + (HsVar + ({ DumpRenamedAst.hs:18:8-15 } + {Name: System.IO.putStrLn}))) + ({ DumpRenamedAst.hs:18:17-23 } + (HsLit + (HsString + (SourceText + "\"hello\"") + {FastString: "hello"})))))))] + ({ <no location info> } + (EmptyLocalBinds)))))]) + [] + (PlaceHolder) + (FromSource)) + (WpHole) + {NameSet: + []} + []))]})] + []) + [] + [(TyClGroup + [({ DumpRenamedAst.hs:6:1-30 } + (DataDecl + ({ DumpRenamedAst.hs:6:6-10 } + {Name: DumpRenamedAst.Peano}) + (HsQTvs + [] [] - (PlaceHolder) - (FromSource)) - (WpHole) + {NameSet: + []}) + (Prefix) + (HsDataDefn + (DataType) + ({ <no location info> } + []) + (Nothing) + (Nothing) + [({ DumpRenamedAst.hs:6:14-17 } + (ConDeclH98 + ({ DumpRenamedAst.hs:6:14-17 } + {Name: DumpRenamedAst.Zero}) + (Nothing) + (Just + ({ <no location info> } + [])) + (PrefixCon + []) + (Nothing))) + ,({ DumpRenamedAst.hs:6:21-30 } + (ConDeclH98 + ({ DumpRenamedAst.hs:6:21-24 } + {Name: DumpRenamedAst.Succ}) + (Nothing) + (Just + ({ <no location info> } + [])) + (PrefixCon + [({ DumpRenamedAst.hs:6:26-30 } + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:6:26-30 } + {Name: DumpRenamedAst.Peano})))]) + (Nothing)))] + ({ <no location info> } + [])) + (True) {NameSet: - []} - []))]})] - []) - [] - [(TyClGroup - [({ DumpRenamedAst.hs:6:1-30 } - (DataDecl - ({ DumpRenamedAst.hs:6:6-10 } - {Name: DumpRenamedAst.Peano}) - (HsQTvs - [] - [] - {NameSet: - []}) - (Prefix) - (HsDataDefn - (DataType) - ({ <no location info> } - []) - (Nothing) - (Nothing) - [({ DumpRenamedAst.hs:6:14-17 } - (ConDeclH98 - ({ DumpRenamedAst.hs:6:14-17 } - {Name: DumpRenamedAst.Zero}) - (Nothing) - (Just - ({ <no location info> } - [])) - (PrefixCon - []) - (Nothing))) - ,({ DumpRenamedAst.hs:6:21-30 } - (ConDeclH98 - ({ DumpRenamedAst.hs:6:21-24 } - {Name: DumpRenamedAst.Succ}) - (Nothing) + [{Name: DumpRenamedAst.Peano}]}))] + [] + []) + ,(TyClGroup + [({ DumpRenamedAst.hs:8:1-39 } + (FamDecl + (FamilyDecl + (ClosedTypeFamily (Just - ({ <no location info> } - [])) - (PrefixCon - [({ DumpRenamedAst.hs:6:26-30 } - (HsTyVar - (NotPromoted) - ({ DumpRenamedAst.hs:6:26-30 } - {Name: DumpRenamedAst.Peano})))]) - (Nothing)))] - ({ <no location info> } - [])) - (True) - {NameSet: - [{Name: DumpRenamedAst.Peano}]}))] - [] - []) - ,(TyClGroup - [({ DumpRenamedAst.hs:8:1-39 } - (FamDecl - (FamilyDecl - (ClosedTypeFamily - (Just - [({ DumpRenamedAst.hs:9:3-36 } - (HsIB - [{Name: a} - ,{Name: as}] - (FamEqn - ({ DumpRenamedAst.hs:9:3-8 } - {Name: DumpRenamedAst.Length}) - [({ DumpRenamedAst.hs:9:10-17 } - (HsParTy - ({ DumpRenamedAst.hs:9:11-16 } - (HsOpTy - ({ DumpRenamedAst.hs:9:11 } - (HsTyVar - (NotPromoted) + [({ DumpRenamedAst.hs:9:3-36 } + (HsIB + [{Name: a} + ,{Name: as}] + (FamEqn + ({ DumpRenamedAst.hs:9:3-8 } + {Name: DumpRenamedAst.Length}) + [({ DumpRenamedAst.hs:9:10-17 } + (HsParTy + ({ DumpRenamedAst.hs:9:11-16 } + (HsOpTy ({ DumpRenamedAst.hs:9:11 } - {Name: a}))) - ({ DumpRenamedAst.hs:9:13 } - {Name: :}) - ({ DumpRenamedAst.hs:9:15-16 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:9:11 } + {Name: a}))) + ({ DumpRenamedAst.hs:9:13 } + {Name: :}) ({ DumpRenamedAst.hs:9:15-16 } - {Name: as})))))))] - (Prefix) - ({ DumpRenamedAst.hs:9:21-36 } - (HsAppTy - ({ DumpRenamedAst.hs:9:21-24 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:9:15-16 } + {Name: as})))))))] + (Prefix) + ({ DumpRenamedAst.hs:9:21-36 } + (HsAppTy ({ DumpRenamedAst.hs:9:21-24 } - {Name: DumpRenamedAst.Succ}))) - ({ DumpRenamedAst.hs:9:26-36 } - (HsParTy - ({ DumpRenamedAst.hs:9:27-35 } - (HsAppTy - ({ DumpRenamedAst.hs:9:27-32 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:9:21-24 } + {Name: DumpRenamedAst.Succ}))) + ({ DumpRenamedAst.hs:9:26-36 } + (HsParTy + ({ DumpRenamedAst.hs:9:27-35 } + (HsAppTy ({ DumpRenamedAst.hs:9:27-32 } - {Name: DumpRenamedAst.Length}))) - ({ DumpRenamedAst.hs:9:34-35 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:9:27-32 } + {Name: DumpRenamedAst.Length}))) ({ DumpRenamedAst.hs:9:34-35 } - {Name: as})))))))))) - (True))) - ,({ DumpRenamedAst.hs:10:3-24 } - (HsIB - [] - (FamEqn - ({ DumpRenamedAst.hs:10:3-8 } - {Name: DumpRenamedAst.Length}) - [({ DumpRenamedAst.hs:10:10-12 } - (HsExplicitListTy - (Promoted) - (PlaceHolder) - []))] - (Prefix) - ({ DumpRenamedAst.hs:10:21-24 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:9:34-35 } + {Name: as})))))))))) + (True))) + ,({ DumpRenamedAst.hs:10:3-24 } + (HsIB + [] + (FamEqn + ({ DumpRenamedAst.hs:10:3-8 } + {Name: DumpRenamedAst.Length}) + [({ DumpRenamedAst.hs:10:10-12 } + (HsExplicitListTy + (Promoted) + (PlaceHolder) + []))] + (Prefix) ({ DumpRenamedAst.hs:10:21-24 } - {Name: DumpRenamedAst.Zero})))) - (True)))])) - ({ DumpRenamedAst.hs:8:13-18 } - {Name: DumpRenamedAst.Length}) - (HsQTvs - [{Name: k}] - [({ DumpRenamedAst.hs:8:20-30 } - (KindedTyVar - ({ DumpRenamedAst.hs:8:21-22 } - {Name: as}) - ({ DumpRenamedAst.hs:8:27-29 } - (HsListTy - ({ DumpRenamedAst.hs:8:28 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:10:21-24 } + {Name: DumpRenamedAst.Zero})))) + (True)))])) + ({ DumpRenamedAst.hs:8:13-18 } + {Name: DumpRenamedAst.Length}) + (HsQTvs + [{Name: k}] + [({ DumpRenamedAst.hs:8:20-30 } + (KindedTyVar + ({ DumpRenamedAst.hs:8:21-22 } + {Name: as}) + ({ DumpRenamedAst.hs:8:27-29 } + (HsListTy ({ DumpRenamedAst.hs:8:28 } - {Name: k})))))))] - {NameSet: - []}) - (Prefix) - ({ DumpRenamedAst.hs:8:32-39 } - (KindSig - ({ DumpRenamedAst.hs:8:35-39 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:8:28 } + {Name: k})))))))] + {NameSet: + []}) + (Prefix) + ({ DumpRenamedAst.hs:8:32-39 } + (KindSig ({ DumpRenamedAst.hs:8:35-39 } - {Name: DumpRenamedAst.Peano}))))) - (Nothing))))] - [] - []) - ,(TyClGroup - [({ DumpRenamedAst.hs:12:1-30 } - (FamDecl - (FamilyDecl - (DataFamily) - ({ DumpRenamedAst.hs:12:13-15 } - {Name: DumpRenamedAst.Nat}) - (HsQTvs - [{Name: k}] - [] - {NameSet: - []}) - (Prefix) - ({ DumpRenamedAst.hs:12:17-30 } - (KindSig - ({ DumpRenamedAst.hs:12:20-30 } - (HsFunTy - ({ DumpRenamedAst.hs:12:20 } (HsTyVar (NotPromoted) - ({ DumpRenamedAst.hs:12:20 } - {Name: k}))) - ({ DumpRenamedAst.hs:12:25-30 } + ({ DumpRenamedAst.hs:8:35-39 } + {Name: DumpRenamedAst.Peano}))))) + (Nothing))))] + [] + []) + ,(TyClGroup + [({ DumpRenamedAst.hs:12:1-30 } + (FamDecl + (FamilyDecl + (DataFamily) + ({ DumpRenamedAst.hs:12:13-15 } + {Name: DumpRenamedAst.Nat}) + (HsQTvs + [{Name: k}] + [] + {NameSet: + []}) + (Prefix) + ({ DumpRenamedAst.hs:12:17-30 } + (KindSig + ({ DumpRenamedAst.hs:12:20-30 } (HsFunTy - ({ DumpRenamedAst.hs:12:25 } + ({ DumpRenamedAst.hs:12:20 } (HsTyVar (NotPromoted) - ({ DumpRenamedAst.hs:12:25 } + ({ DumpRenamedAst.hs:12:20 } {Name: k}))) - ({ DumpRenamedAst.hs:12:30 } - (HsTyVar - (NotPromoted) + ({ DumpRenamedAst.hs:12:25-30 } + (HsFunTy + ({ DumpRenamedAst.hs:12:25 } + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:12:25 } + {Name: k}))) ({ DumpRenamedAst.hs:12:30 } - {Name: *}))))))))) - (Nothing))))] - [] - [({ DumpRenamedAst.hs:(15,1)-(16,45) } - (DataFamInstD - (DataFamInstDecl - (HsIB - [{Name: k} - ,{Name: a}] - (FamEqn - ({ DumpRenamedAst.hs:15:18-20 } - {Name: DumpRenamedAst.Nat}) - [({ DumpRenamedAst.hs:15:22-34 } - (HsKindSig - ({ DumpRenamedAst.hs:15:23 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:12:30 } + {Name: GHC.Types.*}))))))))) + (Nothing))))] + [] + [({ DumpRenamedAst.hs:(15,1)-(16,45) } + (DataFamInstD + (DataFamInstDecl + (HsIB + [{Name: k} + ,{Name: a}] + (FamEqn + ({ DumpRenamedAst.hs:15:18-20 } + {Name: DumpRenamedAst.Nat}) + [({ DumpRenamedAst.hs:15:22-34 } + (HsKindSig ({ DumpRenamedAst.hs:15:23 } - {Name: a}))) - ({ DumpRenamedAst.hs:15:28-33 } - (HsFunTy - ({ DumpRenamedAst.hs:15:28 } (HsTyVar (NotPromoted) + ({ DumpRenamedAst.hs:15:23 } + {Name: a}))) + ({ DumpRenamedAst.hs:15:28-33 } + (HsFunTy ({ DumpRenamedAst.hs:15:28 } - {Name: k}))) - ({ DumpRenamedAst.hs:15:33 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:15:28 } + {Name: k}))) ({ DumpRenamedAst.hs:15:33 } - {Name: *})))))))] - (Prefix) - (HsDataDefn - (NewType) - ({ <no location info> } - []) - (Nothing) - (Just - ({ DumpRenamedAst.hs:15:39-51 } - (HsFunTy - ({ DumpRenamedAst.hs:15:39-46 } - (HsParTy - ({ DumpRenamedAst.hs:15:40-45 } - (HsFunTy - ({ DumpRenamedAst.hs:15:40 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:15:33 } + {Name: GHC.Types.*})))))))] + (Prefix) + (HsDataDefn + (NewType) + ({ <no location info> } + []) + (Nothing) + (Just + ({ DumpRenamedAst.hs:15:39-51 } + (HsFunTy + ({ DumpRenamedAst.hs:15:39-46 } + (HsParTy + ({ DumpRenamedAst.hs:15:40-45 } + (HsFunTy ({ DumpRenamedAst.hs:15:40 } - {Name: k}))) - ({ DumpRenamedAst.hs:15:45 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:15:40 } + {Name: k}))) ({ DumpRenamedAst.hs:15:45 } - {Name: *}))))))) - ({ DumpRenamedAst.hs:15:51 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:15:45 } + {Name: GHC.Types.*}))))))) ({ DumpRenamedAst.hs:15:51 } - {Name: *})))))) - [({ DumpRenamedAst.hs:16:3-45 } - (ConDeclGADT - [({ DumpRenamedAst.hs:16:3-5 } - {Name: DumpRenamedAst.Nat})] - (HsIB - [{Name: f} - ,{Name: g}] - ({ DumpRenamedAst.hs:16:10-45 } - (HsFunTy - ({ DumpRenamedAst.hs:16:10-34 } - (HsParTy - ({ DumpRenamedAst.hs:16:11-33 } - (HsForAllTy - [({ DumpRenamedAst.hs:16:18-19 } - (UserTyVar - ({ DumpRenamedAst.hs:16:18-19 } - {Name: xx})))] - ({ DumpRenamedAst.hs:16:22-33 } - (HsFunTy - ({ DumpRenamedAst.hs:16:22-25 } - (HsAppTy - ({ DumpRenamedAst.hs:16:22 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:15:51 } + {Name: GHC.Types.*})))))) + [({ DumpRenamedAst.hs:16:3-45 } + (ConDeclGADT + [({ DumpRenamedAst.hs:16:3-5 } + {Name: DumpRenamedAst.Nat})] + (HsIB + [{Name: f} + ,{Name: g}] + ({ DumpRenamedAst.hs:16:10-45 } + (HsFunTy + ({ DumpRenamedAst.hs:16:10-34 } + (HsParTy + ({ DumpRenamedAst.hs:16:11-33 } + (HsForAllTy + [({ DumpRenamedAst.hs:16:18-19 } + (UserTyVar + ({ DumpRenamedAst.hs:16:18-19 } + {Name: xx})))] + ({ DumpRenamedAst.hs:16:22-33 } + (HsFunTy + ({ DumpRenamedAst.hs:16:22-25 } + (HsAppTy ({ DumpRenamedAst.hs:16:22 } - {Name: f}))) - ({ DumpRenamedAst.hs:16:24-25 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:16:22 } + {Name: f}))) ({ DumpRenamedAst.hs:16:24-25 } - {Name: xx}))))) - ({ DumpRenamedAst.hs:16:30-33 } - (HsAppTy - ({ DumpRenamedAst.hs:16:30 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:16:24-25 } + {Name: xx}))))) + ({ DumpRenamedAst.hs:16:30-33 } + (HsAppTy ({ DumpRenamedAst.hs:16:30 } - {Name: g}))) - ({ DumpRenamedAst.hs:16:32-33 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:16:30 } + {Name: g}))) ({ DumpRenamedAst.hs:16:32-33 } - {Name: xx}))))))))))) - ({ DumpRenamedAst.hs:16:39-45 } - (HsAppTy - ({ DumpRenamedAst.hs:16:39-43 } + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:16:32-33 } + {Name: xx}))))))))))) + ({ DumpRenamedAst.hs:16:39-45 } (HsAppTy - ({ DumpRenamedAst.hs:16:39-41 } - (HsTyVar - (NotPromoted) + ({ DumpRenamedAst.hs:16:39-43 } + (HsAppTy ({ DumpRenamedAst.hs:16:39-41 } - {Name: DumpRenamedAst.Nat}))) - ({ DumpRenamedAst.hs:16:43 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:16:39-41 } + {Name: DumpRenamedAst.Nat}))) ({ DumpRenamedAst.hs:16:43 } - {Name: f}))))) - ({ DumpRenamedAst.hs:16:45 } - (HsTyVar - (NotPromoted) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:16:43 } + {Name: f}))))) ({ DumpRenamedAst.hs:16:45 } - {Name: g}))))))) - (True)) - (Nothing)))] - ({ <no location info> } - []))) - (True)))))])] - [] - [] - [] - [] - [] - [] - [] - [] - []) + (HsTyVar + (NotPromoted) + ({ DumpRenamedAst.hs:16:45 } + {Name: g}))))))) + (True)) + (Nothing)))] + ({ <no location info> } + []))) + (True)))))])] + [] + [] + [] + [] + [] + [] + [] + [] + []) + [({ DumpRenamedAst.hs:4:8-21 } + (ImportDecl + (NoSourceText) + ({ DumpRenamedAst.hs:4:8-21 } + {ModuleName: Prelude}) + (Nothing) + (False) + (False) + (False) + (True) + (Nothing) + (Nothing)))] + (Nothing) + (Nothing))) + |