summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Zimmerman <alan.zimm@gmail.com>2017-09-13 14:02:42 +0200
committerAlan Zimmerman <alan.zimm@gmail.com>2017-09-13 19:52:36 +0200
commit2fe6f6baba70de071c391bccc77197ab4f81064d (patch)
treeb36e69864cf1f37b66667b54e0e49be889d4fd59
parent6139f7f7c1e95ffda13d8c5c05a3db1cc35e40bb (diff)
downloadhaskell-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.hs34
-rw-r--r--compiler/typecheck/TcRnDriver.hs4
-rw-r--r--compiler/typecheck/TcRnMonad.hs5
-rw-r--r--testsuite/tests/parser/should_compile/DumpRenamedAst.stderr673
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)))
+