Sophie

Sophie

distrib > Mageia > 3 > x86_64 > by-pkgid > d5d42515f78bdb3a5381de09f2cf4125 > files > 1108

ghc-doc-7.4.2-2.mga3.x86_64.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>TcRnTypes</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_TcRnTypes.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ghc-7.4.2: The GHC API</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">TcRnTypes</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:TcRnIf">TcRnIf</a> a b c = <a href="IOEnv.html#t:IOEnv">IOEnv</a> (<a href="TcRnTypes.html#t:Env">Env</a> a b) c</li><li class="src short"><span class="keyword">type</span> <a href="#t:TcRn">TcRn</a> a = <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> <a href="TcRnTypes.html#t:TcGblEnv">TcGblEnv</a> <a href="TcRnTypes.html#t:TcLclEnv">TcLclEnv</a> a</li><li class="src short"><span class="keyword">type</span> <a href="#t:TcM">TcM</a> a = <a href="TcRnTypes.html#t:TcRn">TcRn</a> a</li><li class="src short"><span class="keyword">type</span> <a href="#t:RnM">RnM</a> a = <a href="TcRnTypes.html#t:TcRn">TcRn</a> a</li><li class="src short"><span class="keyword">type</span> <a href="#t:IfM">IfM</a> lcl a = <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> <a href="TcRnTypes.html#t:IfGblEnv">IfGblEnv</a> lcl a</li><li class="src short"><span class="keyword">type</span> <a href="#t:IfL">IfL</a> a = <a href="TcRnTypes.html#t:IfM">IfM</a> <a href="TcRnTypes.html#t:IfLclEnv">IfLclEnv</a> a</li><li class="src short"><span class="keyword">type</span> <a href="#t:IfG">IfG</a> a = <a href="TcRnTypes.html#t:IfM">IfM</a> () a</li><li class="src short"><span class="keyword">type</span> <a href="#t:TcRef">TcRef</a> a = <a href="IOEnv.html#t:IORef">IORef</a> a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Env">Env</a> gbl lcl = <a href="#v:Env">Env</a> {<ul class="subs"><li><a href="#v:env_top">env_top</a> :: <a href="HscTypes.html#t:HscEnv">HscEnv</a></li><li><a href="#v:env_us">env_us</a> :: !(<a href="IOEnv.html#t:IORef">IORef</a> <a href="UniqSupply.html#t:UniqSupply">UniqSupply</a>)</li><li><a href="#v:env_gbl">env_gbl</a> :: gbl</li><li><a href="#v:env_lcl">env_lcl</a> :: lcl</li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:TcGblEnv">TcGblEnv</a>  = <a href="#v:TcGblEnv">TcGblEnv</a> {<ul class="subs"><li><a href="#v:tcg_mod">tcg_mod</a> :: <a href="Module.html#t:Module">Module</a></li><li><a href="#v:tcg_src">tcg_src</a> :: <a href="DriverPhases.html#t:HscSource">HscSource</a></li><li><a href="#v:tcg_rdr_env">tcg_rdr_env</a> :: <a href="RdrName.html#t:GlobalRdrEnv">GlobalRdrEnv</a></li><li><a href="#v:tcg_default">tcg_default</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Type.html#t:Type">Type</a>]</li><li><a href="#v:tcg_fix_env">tcg_fix_env</a> :: <a href="HscTypes.html#t:FixityEnv">FixityEnv</a></li><li><a href="#v:tcg_field_env">tcg_field_env</a> :: <a href="TcRnTypes.html#t:RecFieldEnv">RecFieldEnv</a></li><li><a href="#v:tcg_type_env">tcg_type_env</a> :: <a href="HscTypes.html#t:TypeEnv">TypeEnv</a></li><li><a href="#v:tcg_type_env_var">tcg_type_env_var</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="HscTypes.html#t:TypeEnv">TypeEnv</a></li><li><a href="#v:tcg_inst_env">tcg_inst_env</a> :: <a href="InstEnv.html#t:InstEnv">InstEnv</a></li><li><a href="#v:tcg_fam_inst_env">tcg_fam_inst_env</a> :: <a href="FamInstEnv.html#t:FamInstEnv">FamInstEnv</a></li><li><a href="#v:tcg_exports">tcg_exports</a> :: [<a href="Avail.html#t:AvailInfo">AvailInfo</a>]</li><li><a href="#v:tcg_imports">tcg_imports</a> :: <a href="TcRnTypes.html#t:ImportAvails">ImportAvails</a></li><li><a href="#v:tcg_dus">tcg_dus</a> :: <a href="NameSet.html#t:DefUses">DefUses</a></li><li><a href="#v:tcg_keep">tcg_keep</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="NameSet.html#t:NameSet">NameSet</a></li><li><a href="#v:tcg_th_used">tcg_th_used</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:tcg_th_splice_used">tcg_th_splice_used</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:tcg_dfun_n">tcg_dfun_n</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="OccName.html#t:OccSet">OccSet</a></li><li><a href="#v:tcg_rn_exports">tcg_rn_exports</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="SrcLoc.html#t:Located">Located</a> (<a href="HsImpExp.html#t:IE">IE</a> <a href="Name.html#t:Name">Name</a>)]</li><li><a href="#v:tcg_rn_imports">tcg_rn_imports</a> :: [<a href="HsImpExp.html#t:LImportDecl">LImportDecl</a> <a href="Name.html#t:Name">Name</a>]</li><li><a href="#v:tcg_used_rdrnames">tcg_used_rdrnames</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> (<a href="../containers-0.4.2.1/Data-Set.html#t:Set">Set</a> <a href="RdrName.html#t:RdrName">RdrName</a>)</li><li><a href="#v:tcg_rn_decls">tcg_rn_decls</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="HsDecls.html#t:HsGroup">HsGroup</a> <a href="Name.html#t:Name">Name</a>)</li><li><a href="#v:tcg_dependent_files">tcg_dependent_files</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</li><li><a href="#v:tcg_ev_binds">tcg_ev_binds</a> :: <a href="Bag.html#t:Bag">Bag</a> <a href="TcEvidence.html#t:EvBind">EvBind</a></li><li><a href="#v:tcg_binds">tcg_binds</a> :: <a href="HsBinds.html#t:LHsBinds">LHsBinds</a> <a href="Var.html#t:Id">Id</a></li><li><a href="#v:tcg_sigs">tcg_sigs</a> :: <a href="NameSet.html#t:NameSet">NameSet</a></li><li><a href="#v:tcg_imp_specs">tcg_imp_specs</a> :: [<a href="HsBinds.html#t:LTcSpecPrag">LTcSpecPrag</a>]</li><li><a href="#v:tcg_warns">tcg_warns</a> :: <a href="HscTypes.html#t:Warnings">Warnings</a></li><li><a href="#v:tcg_anns">tcg_anns</a> :: [<a href="Annotations.html#t:Annotation">Annotation</a>]</li><li><a href="#v:tcg_tcs">tcg_tcs</a> :: [<a href="TyCon.html#t:TyCon">TyCon</a>]</li><li><a href="#v:tcg_insts">tcg_insts</a> :: [<a href="InstEnv.html#t:Instance">Instance</a>]</li><li><a href="#v:tcg_fam_insts">tcg_fam_insts</a> :: [<a href="FamInstEnv.html#t:FamInst">FamInst</a>]</li><li><a href="#v:tcg_rules">tcg_rules</a> :: [<a href="HsDecls.html#t:LRuleDecl">LRuleDecl</a> <a href="Var.html#t:Id">Id</a>]</li><li><a href="#v:tcg_fords">tcg_fords</a> :: [<a href="HsDecls.html#t:LForeignDecl">LForeignDecl</a> <a href="Var.html#t:Id">Id</a>]</li><li><a href="#v:tcg_vects">tcg_vects</a> :: [<a href="HsDecls.html#t:LVectDecl">LVectDecl</a> <a href="Var.html#t:Id">Id</a>]</li><li><a href="#v:tcg_doc_hdr">tcg_doc_hdr</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="HsDoc.html#t:LHsDocString">LHsDocString</a></li><li><a href="#v:tcg_hpc">tcg_hpc</a> :: <a href="HscTypes.html#t:AnyHpcUsage">AnyHpcUsage</a></li><li><a href="#v:tcg_main">tcg_main</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Name.html#t:Name">Name</a></li><li><a href="#v:tcg_safeInfer">tcg_safeInfer</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:TcLclEnv">TcLclEnv</a>  = <a href="#v:TcLclEnv">TcLclEnv</a> {<ul class="subs"><li><a href="#v:tcl_loc">tcl_loc</a> :: <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a></li><li><a href="#v:tcl_ctxt">tcl_ctxt</a> :: [<a href="TcRnTypes.html#t:ErrCtxt">ErrCtxt</a>]</li><li><a href="#v:tcl_errs">tcl_errs</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="ErrUtils.html#t:Messages">Messages</a></li><li><a href="#v:tcl_th_ctxt">tcl_th_ctxt</a> :: <a href="TcRnTypes.html#t:ThStage">ThStage</a></li><li><a href="#v:tcl_arrow_ctxt">tcl_arrow_ctxt</a> :: <a href="TcRnTypes.html#t:ArrowCtxt">ArrowCtxt</a></li><li><a href="#v:tcl_rdr">tcl_rdr</a> :: <a href="RdrName.html#t:LocalRdrEnv">LocalRdrEnv</a></li><li><a href="#v:tcl_env">tcl_env</a> :: <a href="TcRnTypes.html#t:TcTypeEnv">TcTypeEnv</a></li><li><a href="#v:tcl_tyvars">tcl_tyvars</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="TcType.html#t:TcTyVarSet">TcTyVarSet</a></li><li><a href="#v:tcl_lie">tcl_lie</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></li><li><a href="#v:tcl_meta">tcl_meta</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="Unique.html#t:Unique">Unique</a></li><li><a href="#v:tcl_untch">tcl_untch</a> :: <a href="Unique.html#t:Unique">Unique</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:IfGblEnv">IfGblEnv</a>  = <a href="#v:IfGblEnv">IfGblEnv</a> {<ul class="subs"><li><a href="#v:if_rec_types">if_rec_types</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Module.html#t:Module">Module</a>, <a href="TcRnTypes.html#t:IfG">IfG</a> <a href="HscTypes.html#t:TypeEnv">TypeEnv</a>)</li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:IfLclEnv">IfLclEnv</a>  = <a href="#v:IfLclEnv">IfLclEnv</a> {<ul class="subs"><li><a href="#v:if_mod">if_mod</a> :: <a href="Module.html#t:Module">Module</a></li><li><a href="#v:if_loc">if_loc</a> :: <a href="Outputable.html#t:SDoc">SDoc</a></li><li><a href="#v:if_tv_env">if_tv_env</a> :: <a href="UniqFM.html#t:UniqFM">UniqFM</a> <a href="Var.html#t:TyVar">TyVar</a></li><li><a href="#v:if_id_env">if_id_env</a> :: <a href="UniqFM.html#t:UniqFM">UniqFM</a> <a href="Var.html#t:Id">Id</a></li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:ErrCtxt">ErrCtxt</a> = (<a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>, <a href="VarEnv.html#t:TidyEnv">TidyEnv</a> -&gt; <a href="TcRnTypes.html#t:TcM">TcM</a> (<a href="VarEnv.html#t:TidyEnv">TidyEnv</a>, <a href="ErrUtils.html#t:Message">Message</a>))</li><li class="src short"><span class="keyword">data</span>  <a href="#t:RecFieldEnv">RecFieldEnv</a>  = <a href="#v:RecFields">RecFields</a> (<a href="NameEnv.html#t:NameEnv">NameEnv</a> [<a href="Name.html#t:Name">Name</a>]) <a href="NameSet.html#t:NameSet">NameSet</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ImportAvails">ImportAvails</a>  = <a href="#v:ImportAvails">ImportAvails</a> {<ul class="subs"><li><a href="#v:imp_mods">imp_mods</a> :: <a href="HscTypes.html#t:ImportedMods">ImportedMods</a></li><li><a href="#v:imp_dep_mods">imp_dep_mods</a> :: <a href="Module.html#t:ModuleNameEnv">ModuleNameEnv</a> (<a href="Module.html#t:ModuleName">ModuleName</a>, <a href="HscTypes.html#t:IsBootInterface">IsBootInterface</a>)</li><li><a href="#v:imp_dep_pkgs">imp_dep_pkgs</a> :: [<a href="Module.html#t:PackageId">PackageId</a>]</li><li><a href="#v:imp_trust_pkgs">imp_trust_pkgs</a> :: [<a href="Module.html#t:PackageId">PackageId</a>]</li><li><a href="#v:imp_trust_own_pkg">imp_trust_own_pkg</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:imp_orphs">imp_orphs</a> :: [<a href="Module.html#t:Module">Module</a>]</li><li><a href="#v:imp_finsts">imp_finsts</a> :: [<a href="Module.html#t:Module">Module</a>]</li></ul>}</li><li class="src short"><a href="#v:emptyImportAvails">emptyImportAvails</a> :: <a href="TcRnTypes.html#t:ImportAvails">ImportAvails</a></li><li class="src short"><a href="#v:plusImportAvails">plusImportAvails</a> :: <a href="TcRnTypes.html#t:ImportAvails">ImportAvails</a> -&gt; <a href="TcRnTypes.html#t:ImportAvails">ImportAvails</a> -&gt; <a href="TcRnTypes.html#t:ImportAvails">ImportAvails</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:WhereFrom">WhereFrom</a> <ul class="subs"><li>= <a href="#v:ImportByUser">ImportByUser</a> <a href="HscTypes.html#t:IsBootInterface">IsBootInterface</a>  </li><li>| <a href="#v:ImportBySystem">ImportBySystem</a>  </li></ul></li><li class="src short"><a href="#v:mkModDeps">mkModDeps</a> :: [(<a href="Module.html#t:ModuleName">ModuleName</a>, <a href="HscTypes.html#t:IsBootInterface">IsBootInterface</a>)] -&gt; <a href="Module.html#t:ModuleNameEnv">ModuleNameEnv</a> (<a href="Module.html#t:ModuleName">ModuleName</a>, <a href="HscTypes.html#t:IsBootInterface">IsBootInterface</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:TcTypeEnv">TcTypeEnv</a> = <a href="NameEnv.html#t:NameEnv">NameEnv</a> <a href="TcRnTypes.html#t:TcTyThing">TcTyThing</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:TcTyThing">TcTyThing</a> <ul class="subs"><li>= <a href="#v:AGlobal">AGlobal</a> <a href="Type.html#t:TyThing">TyThing</a>  </li><li>| <a href="#v:ATcId">ATcId</a> { <ul class="subs"><li><a href="#v:tct_id">tct_id</a> :: <a href="TcRnTypes.html#t:TcId">TcId</a></li><li><a href="#v:tct_closed">tct_closed</a> :: <a href="BasicTypes.html#t:TopLevelFlag">TopLevelFlag</a></li><li><a href="#v:tct_level">tct_level</a> :: <a href="TcRnTypes.html#t:ThLevel">ThLevel</a></li></ul> }</li><li>| <a href="#v:ATyVar">ATyVar</a> <a href="Name.html#t:Name">Name</a> <a href="TcType.html#t:TcType">TcType</a>  </li><li>| <a href="#v:AThing">AThing</a> <a href="TcType.html#t:TcKind">TcKind</a>  </li><li>| <a href="#v:ANothing">ANothing</a>  </li></ul></li><li class="src short"><a href="#v:pprTcTyThingCategory">pprTcTyThingCategory</a> :: <a href="TcRnTypes.html#t:TcTyThing">TcTyThing</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ThStage">ThStage</a> <ul class="subs"><li>= <a href="#v:Splice">Splice</a>  </li><li>| <a href="#v:Comp">Comp</a>  </li><li>| <a href="#v:Brack">Brack</a> <a href="TcRnTypes.html#t:ThStage">ThStage</a> (<a href="TcRnTypes.html#t:TcRef">TcRef</a> [<a href="HsExpr.html#t:PendingSplice">PendingSplice</a>]) (<a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a>)  </li></ul></li><li class="src short"><a href="#v:topStage">topStage</a> :: <a href="TcRnTypes.html#t:ThStage">ThStage</a></li><li class="src short"><a href="#v:topAnnStage">topAnnStage</a> :: <a href="TcRnTypes.html#t:ThStage">ThStage</a></li><li class="src short"><a href="#v:topSpliceStage">topSpliceStage</a> :: <a href="TcRnTypes.html#t:ThStage">ThStage</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:ThLevel">ThLevel</a> = <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:impLevel">impLevel</a> :: <a href="TcRnTypes.html#t:ThLevel">ThLevel</a></li><li class="src short"><a href="#v:outerLevel">outerLevel</a> :: <a href="TcRnTypes.html#t:ThLevel">ThLevel</a></li><li class="src short"><a href="#v:thLevel">thLevel</a> :: <a href="TcRnTypes.html#t:ThStage">ThStage</a> -&gt; <a href="TcRnTypes.html#t:ThLevel">ThLevel</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ArrowCtxt">ArrowCtxt</a>  = <a href="#v:NoArrowCtxt">NoArrowCtxt</a></li><li class="src short"><a href="#v:newArrowScope">newArrowScope</a> ::  <a href="TcRnTypes.html#t:TcM">TcM</a> a -&gt; <a href="TcRnTypes.html#t:TcM">TcM</a> a</li><li class="src short"><a href="#v:escapeArrowScope">escapeArrowScope</a> ::  <a href="TcRnTypes.html#t:TcM">TcM</a> a -&gt; <a href="TcRnTypes.html#t:TcM">TcM</a> a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Untouchables">Untouchables</a> <ul class="subs"><li>= <a href="#v:NoUntouchables">NoUntouchables</a>  </li><li>| <a href="#v:TouchableRange">TouchableRange</a> <a href="Unique.html#t:Unique">Unique</a> <a href="Unique.html#t:Unique">Unique</a>  </li></ul></li><li class="src short"><a href="#v:inTouchableRange">inTouchableRange</a> :: <a href="TcRnTypes.html#t:Untouchables">Untouchables</a> -&gt; <a href="TcType.html#t:TcTyVar">TcTyVar</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isNoUntouchables">isNoUntouchables</a> :: <a href="TcRnTypes.html#t:Untouchables">Untouchables</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:Xi">Xi</a> = <a href="Type.html#t:Type">Type</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Ct">Ct</a> <ul class="subs"><li>= <a href="#v:CDictCan">CDictCan</a> { <ul class="subs"><li><a href="#v:cc_id">cc_id</a> :: <a href="Var.html#t:EvVar">EvVar</a></li><li><a href="#v:cc_flavor">cc_flavor</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></li><li><a href="#v:cc_class">cc_class</a> :: <a href="Class.html#t:Class">Class</a></li><li><a href="#v:cc_tyargs">cc_tyargs</a> :: [<a href="TcRnTypes.html#t:Xi">Xi</a>]</li><li><a href="#v:cc_depth">cc_depth</a> :: <a href="TcRnTypes.html#t:SubGoalDepth">SubGoalDepth</a></li></ul> }</li><li>| <a href="#v:CIPCan">CIPCan</a> { <ul class="subs"><li><a href="#v:cc_id">cc_id</a> :: <a href="Var.html#t:EvVar">EvVar</a></li><li><a href="#v:cc_flavor">cc_flavor</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></li><li><a href="#v:cc_ip_nm">cc_ip_nm</a> :: <a href="BasicTypes.html#t:IPName">IPName</a> <a href="Name.html#t:Name">Name</a></li><li><a href="#v:cc_ip_ty">cc_ip_ty</a> :: <a href="TcType.html#t:TcTauType">TcTauType</a></li><li><a href="#v:cc_depth">cc_depth</a> :: <a href="TcRnTypes.html#t:SubGoalDepth">SubGoalDepth</a></li></ul> }</li><li>| <a href="#v:CIrredEvCan">CIrredEvCan</a> { <ul class="subs"><li><a href="#v:cc_id">cc_id</a> :: <a href="Var.html#t:EvVar">EvVar</a></li><li><a href="#v:cc_flavor">cc_flavor</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></li><li><a href="#v:cc_ty">cc_ty</a> :: <a href="TcRnTypes.html#t:Xi">Xi</a></li><li><a href="#v:cc_depth">cc_depth</a> :: <a href="TcRnTypes.html#t:SubGoalDepth">SubGoalDepth</a></li></ul> }</li><li>| <a href="#v:CTyEqCan">CTyEqCan</a> { <ul class="subs"><li><a href="#v:cc_id">cc_id</a> :: <a href="Var.html#t:EvVar">EvVar</a></li><li><a href="#v:cc_flavor">cc_flavor</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></li><li><a href="#v:cc_tyvar">cc_tyvar</a> :: <a href="TcType.html#t:TcTyVar">TcTyVar</a></li><li><a href="#v:cc_rhs">cc_rhs</a> :: <a href="TcRnTypes.html#t:Xi">Xi</a></li><li><a href="#v:cc_depth">cc_depth</a> :: <a href="TcRnTypes.html#t:SubGoalDepth">SubGoalDepth</a></li></ul> }</li><li>| <a href="#v:CFunEqCan">CFunEqCan</a> { <ul class="subs"><li><a href="#v:cc_id">cc_id</a> :: <a href="Var.html#t:EvVar">EvVar</a></li><li><a href="#v:cc_flavor">cc_flavor</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></li><li><a href="#v:cc_fun">cc_fun</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></li><li><a href="#v:cc_tyargs">cc_tyargs</a> :: [<a href="TcRnTypes.html#t:Xi">Xi</a>]</li><li><a href="#v:cc_rhs">cc_rhs</a> :: <a href="TcRnTypes.html#t:Xi">Xi</a></li><li><a href="#v:cc_depth">cc_depth</a> :: <a href="TcRnTypes.html#t:SubGoalDepth">SubGoalDepth</a></li></ul> }</li><li>| <a href="#v:CNonCanonical">CNonCanonical</a> { <ul class="subs"><li><a href="#v:cc_id">cc_id</a> :: <a href="Var.html#t:EvVar">EvVar</a></li><li><a href="#v:cc_flavor">cc_flavor</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></li><li><a href="#v:cc_depth">cc_depth</a> :: <a href="TcRnTypes.html#t:SubGoalDepth">SubGoalDepth</a></li></ul> }</li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:Cts">Cts</a> = <a href="Bag.html#t:Bag">Bag</a> <a href="TcRnTypes.html#t:Ct">Ct</a></li><li class="src short"><a href="#v:emptyCts">emptyCts</a> :: <a href="TcRnTypes.html#t:Cts">Cts</a></li><li class="src short"><a href="#v:andCts">andCts</a> :: <a href="TcRnTypes.html#t:Cts">Cts</a> -&gt; <a href="TcRnTypes.html#t:Cts">Cts</a> -&gt; <a href="TcRnTypes.html#t:Cts">Cts</a></li><li class="src short"><a href="#v:andManyCts">andManyCts</a> :: [<a href="TcRnTypes.html#t:Cts">Cts</a>] -&gt; <a href="TcRnTypes.html#t:Cts">Cts</a></li><li class="src short"><a href="#v:singleCt">singleCt</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="TcRnTypes.html#t:Cts">Cts</a></li><li class="src short"><a href="#v:extendCts">extendCts</a> :: <a href="TcRnTypes.html#t:Cts">Cts</a> -&gt; <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="TcRnTypes.html#t:Cts">Cts</a></li><li class="src short"><a href="#v:isEmptyCts">isEmptyCts</a> :: <a href="TcRnTypes.html#t:Cts">Cts</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isCTyEqCan">isCTyEqCan</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isCDictCan_Maybe">isCDictCan_Maybe</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Class.html#t:Class">Class</a></li><li class="src short"><a href="#v:isCIPCan_Maybe">isCIPCan_Maybe</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="BasicTypes.html#t:IPName">IPName</a> <a href="Name.html#t:Name">Name</a>)</li><li class="src short"><a href="#v:isCFunEqCan_Maybe">isCFunEqCan_Maybe</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="TyCon.html#t:TyCon">TyCon</a></li><li class="src short"><a href="#v:isCIrredEvCan">isCIrredEvCan</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isCNonCanonical">isCNonCanonical</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:SubGoalDepth">SubGoalDepth</a> = <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:ctPred">ctPred</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="Type.html#t:PredType">PredType</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:WantedConstraints">WantedConstraints</a>  = <a href="#v:WC">WC</a> {<ul class="subs"><li><a href="#v:wc_flat">wc_flat</a> :: <a href="TcRnTypes.html#t:Cts">Cts</a></li><li><a href="#v:wc_impl">wc_impl</a> :: <a href="Bag.html#t:Bag">Bag</a> <a href="TcRnTypes.html#t:Implication">Implication</a></li><li><a href="#v:wc_insol">wc_insol</a> :: <a href="TcRnTypes.html#t:Cts">Cts</a></li></ul>}</li><li class="src short"><a href="#v:insolubleWC">insolubleWC</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:emptyWC">emptyWC</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></li><li class="src short"><a href="#v:isEmptyWC">isEmptyWC</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:andWC">andWC</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></li><li class="src short"><a href="#v:addFlats">addFlats</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="Bag.html#t:Bag">Bag</a> <a href="TcRnTypes.html#t:WantedEvVar">WantedEvVar</a> -&gt; <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></li><li class="src short"><a href="#v:addImplics">addImplics</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="Bag.html#t:Bag">Bag</a> <a href="TcRnTypes.html#t:Implication">Implication</a> -&gt; <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></li><li class="src short"><a href="#v:mkFlatWC">mkFlatWC</a> :: [<a href="TcRnTypes.html#t:Ct">Ct</a>] -&gt; <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:EvVarX">EvVarX</a> a = <a href="#v:EvVarX">EvVarX</a> <a href="Var.html#t:EvVar">EvVar</a> a</li><li class="src short"><a href="#v:mkEvVarX">mkEvVarX</a> ::  <a href="Var.html#t:EvVar">EvVar</a> -&gt; a -&gt; <a href="TcRnTypes.html#t:EvVarX">EvVarX</a> a</li><li class="src short"><a href="#v:evVarOf">evVarOf</a> ::  <a href="TcRnTypes.html#t:EvVarX">EvVarX</a> a -&gt; <a href="Var.html#t:EvVar">EvVar</a></li><li class="src short"><a href="#v:evVarX">evVarX</a> ::  <a href="TcRnTypes.html#t:EvVarX">EvVarX</a> a -&gt; a</li><li class="src short"><a href="#v:evVarOfPred">evVarOfPred</a> ::  <a href="TcRnTypes.html#t:EvVarX">EvVarX</a> a -&gt; <a href="Type.html#t:PredType">PredType</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:WantedEvVar">WantedEvVar</a> = <a href="TcRnTypes.html#t:EvVarX">EvVarX</a> <a href="TcRnTypes.html#t:WantedLoc">WantedLoc</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Implication">Implication</a>  = <a href="#v:Implic">Implic</a> {<ul class="subs"><li><a href="#v:ic_untch">ic_untch</a> :: <a href="TcRnTypes.html#t:Untouchables">Untouchables</a></li><li><a href="#v:ic_env">ic_env</a> :: <a href="TcRnTypes.html#t:TcTypeEnv">TcTypeEnv</a></li><li><a href="#v:ic_skols">ic_skols</a> :: <a href="TcType.html#t:TcTyVarSet">TcTyVarSet</a></li><li><a href="#v:ic_given">ic_given</a> :: [<a href="Var.html#t:EvVar">EvVar</a>]</li><li><a href="#v:ic_loc">ic_loc</a> :: <a href="TcRnTypes.html#t:GivenLoc">GivenLoc</a></li><li><a href="#v:ic_wanted">ic_wanted</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></li><li><a href="#v:ic_insol">ic_insol</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:ic_binds">ic_binds</a> :: <a href="TcEvidence.html#t:EvBindsVar">EvBindsVar</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:CtLoc">CtLoc</a> orig = <a href="#v:CtLoc">CtLoc</a> orig <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a> [<a href="TcRnTypes.html#t:ErrCtxt">ErrCtxt</a>]</li><li class="src short"><a href="#v:ctLocSpan">ctLocSpan</a> ::  <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> o -&gt; <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a></li><li class="src short"><a href="#v:ctLocOrigin">ctLocOrigin</a> ::  <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> o -&gt; o</li><li class="src short"><a href="#v:setCtLocOrigin">setCtLocOrigin</a> ::  <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> o -&gt; o' -&gt; <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> o'</li><li class="src short"><span class="keyword">data</span>  <a href="#t:CtOrigin">CtOrigin</a> <ul class="subs"><li>= <a href="#v:OccurrenceOf">OccurrenceOf</a> <a href="Name.html#t:Name">Name</a>  </li><li>| <a href="#v:AppOrigin">AppOrigin</a>  </li><li>| <a href="#v:SpecPragOrigin">SpecPragOrigin</a> <a href="Name.html#t:Name">Name</a>  </li><li>| <a href="#v:TypeEqOrigin">TypeEqOrigin</a> <a href="TcRnTypes.html#t:EqOrigin">EqOrigin</a>  </li><li>| <a href="#v:IPOccOrigin">IPOccOrigin</a> (<a href="BasicTypes.html#t:IPName">IPName</a> <a href="Name.html#t:Name">Name</a>)  </li><li>| <a href="#v:LiteralOrigin">LiteralOrigin</a> (<a href="HsLit.html#t:HsOverLit">HsOverLit</a> <a href="Name.html#t:Name">Name</a>)  </li><li>| <a href="#v:NegateOrigin">NegateOrigin</a>  </li><li>| <a href="#v:ArithSeqOrigin">ArithSeqOrigin</a> (<a href="HsExpr.html#t:ArithSeqInfo">ArithSeqInfo</a> <a href="Name.html#t:Name">Name</a>)  </li><li>| <a href="#v:PArrSeqOrigin">PArrSeqOrigin</a> (<a href="HsExpr.html#t:ArithSeqInfo">ArithSeqInfo</a> <a href="Name.html#t:Name">Name</a>)  </li><li>| <a href="#v:SectionOrigin">SectionOrigin</a>  </li><li>| <a href="#v:TupleOrigin">TupleOrigin</a>  </li><li>| <a href="#v:AmbigOrigin">AmbigOrigin</a> <a href="Name.html#t:Name">Name</a>  </li><li>| <a href="#v:ExprSigOrigin">ExprSigOrigin</a>  </li><li>| <a href="#v:PatSigOrigin">PatSigOrigin</a>  </li><li>| <a href="#v:PatOrigin">PatOrigin</a>  </li><li>| <a href="#v:RecordUpdOrigin">RecordUpdOrigin</a>  </li><li>| <a href="#v:ViewPatOrigin">ViewPatOrigin</a>  </li><li>| <a href="#v:ScOrigin">ScOrigin</a>  </li><li>| <a href="#v:DerivOrigin">DerivOrigin</a>  </li><li>| <a href="#v:StandAloneDerivOrigin">StandAloneDerivOrigin</a>  </li><li>| <a href="#v:DefaultOrigin">DefaultOrigin</a>  </li><li>| <a href="#v:DoOrigin">DoOrigin</a>  </li><li>| <a href="#v:MCompOrigin">MCompOrigin</a>  </li><li>| <a href="#v:IfOrigin">IfOrigin</a>  </li><li>| <a href="#v:ProcOrigin">ProcOrigin</a>  </li><li>| <a href="#v:AnnOrigin">AnnOrigin</a>  </li><li>| <a href="#v:FunDepOrigin">FunDepOrigin</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:EqOrigin">EqOrigin</a>  = <a href="#v:UnifyOrigin">UnifyOrigin</a> {<ul class="subs"><li><a href="#v:uo_actual">uo_actual</a> :: <a href="TcType.html#t:TcType">TcType</a></li><li><a href="#v:uo_expected">uo_expected</a> :: <a href="TcType.html#t:TcType">TcType</a></li></ul>}</li><li class="src short"><span class="keyword">type</span> <a href="#t:WantedLoc">WantedLoc</a> = <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> <a href="TcRnTypes.html#t:CtOrigin">CtOrigin</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:GivenLoc">GivenLoc</a> = <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> <a href="TcRnTypes.html#t:SkolemInfo">SkolemInfo</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:GivenKind">GivenKind</a> <ul class="subs"><li>= <a href="#v:GivenOrig">GivenOrig</a>  </li><li>| <a href="#v:GivenSolved">GivenSolved</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="TcEvidence.html#t:EvTerm">EvTerm</a>)  </li></ul></li><li class="src short"><a href="#v:pushErrCtxt">pushErrCtxt</a> ::  orig -&gt; <a href="TcRnTypes.html#t:ErrCtxt">ErrCtxt</a> -&gt; <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> orig -&gt; <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> orig</li><li class="src short"><span class="keyword">data</span>  <a href="#t:SkolemInfo">SkolemInfo</a> <ul class="subs"><li>= <a href="#v:SigSkol">SigSkol</a> <a href="TcType.html#t:UserTypeCtxt">UserTypeCtxt</a> <a href="Type.html#t:Type">Type</a>  </li><li>| <a href="#v:ClsSkol">ClsSkol</a> <a href="Class.html#t:Class">Class</a>  </li><li>| <a href="#v:InstSkol">InstSkol</a>  </li><li>| <a href="#v:DataSkol">DataSkol</a>  </li><li>| <a href="#v:FamInstSkol">FamInstSkol</a>  </li><li>| <a href="#v:PatSkol">PatSkol</a> <a href="DataCon.html#t:DataCon">DataCon</a> (<a href="HsExpr.html#t:HsMatchContext">HsMatchContext</a> <a href="Name.html#t:Name">Name</a>)  </li><li>| <a href="#v:ArrowSkol">ArrowSkol</a>  </li><li>| <a href="#v:IPSkol">IPSkol</a> [<a href="BasicTypes.html#t:IPName">IPName</a> <a href="Name.html#t:Name">Name</a>]  </li><li>| <a href="#v:RuleSkol">RuleSkol</a> <a href="BasicTypes.html#t:RuleName">RuleName</a>  </li><li>| <a href="#v:InferSkol">InferSkol</a> [(<a href="Name.html#t:Name">Name</a>, <a href="TcType.html#t:TcType">TcType</a>)]  </li><li>| <a href="#v:BracketSkol">BracketSkol</a>  </li><li>| <a href="#v:UnifyForAllSkol">UnifyForAllSkol</a> <a href="TcType.html#t:TcType">TcType</a>  </li><li>| <a href="#v:UnkSkol">UnkSkol</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CtFlavor">CtFlavor</a> <ul class="subs"><li>= <a href="#v:Given">Given</a> <a href="TcRnTypes.html#t:GivenLoc">GivenLoc</a> <a href="TcRnTypes.html#t:GivenKind">GivenKind</a>  </li><li>| <a href="#v:Derived">Derived</a> <a href="TcRnTypes.html#t:WantedLoc">WantedLoc</a>  </li><li>| <a href="#v:Wanted">Wanted</a> <a href="TcRnTypes.html#t:WantedLoc">WantedLoc</a>  </li></ul></li><li class="src short"><a href="#v:pprFlavorArising">pprFlavorArising</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:isWanted">isWanted</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isGivenOrSolved">isGivenOrSolved</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isGiven_maybe">isGiven_maybe</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="TcRnTypes.html#t:GivenKind">GivenKind</a></li><li class="src short"><a href="#v:isSolved">isSolved</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isDerived">isDerived</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:pprEvVarTheta">pprEvVarTheta</a> :: [<a href="Var.html#t:EvVar">EvVar</a>] -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:pprWantedEvVar">pprWantedEvVar</a> :: <a href="TcRnTypes.html#t:WantedEvVar">WantedEvVar</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:pprWantedsWithLocs">pprWantedsWithLocs</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:pprEvVars">pprEvVars</a> :: [<a href="Var.html#t:EvVar">EvVar</a>] -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:pprEvVarWithType">pprEvVarWithType</a> :: <a href="Var.html#t:EvVar">EvVar</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:pprWantedEvVarWithLoc">pprWantedEvVarWithLoc</a> :: <a href="TcRnTypes.html#t:WantedEvVar">WantedEvVar</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:pprArising">pprArising</a> :: <a href="TcRnTypes.html#t:CtOrigin">CtOrigin</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><a href="#v:pprArisingAt">pprArisingAt</a> :: <a href="Outputable.html#t:Outputable">Outputable</a> o =&gt; <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> o -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:TcId">TcId</a> = <a href="Var.html#t:Id">Id</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:TcIdSet">TcIdSet</a> = <a href="VarSet.html#t:IdSet">IdSet</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:TcTyVarBind">TcTyVarBind</a>  = <a href="#v:TcTyVarBind">TcTyVarBind</a> <a href="TcType.html#t:TcTyVar">TcTyVar</a> <a href="TcType.html#t:TcType">TcType</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:TcTyVarBinds">TcTyVarBinds</a> = <a href="Bag.html#t:Bag">Bag</a> <a href="TcRnTypes.html#t:TcTyVarBind">TcTyVarBind</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TcRnIf" class="def">TcRnIf</a> a b c = <a href="IOEnv.html#t:IOEnv">IOEnv</a> (<a href="TcRnTypes.html#t:Env">Env</a> a b) c</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TcRn" class="def">TcRn</a> a = <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> <a href="TcRnTypes.html#t:TcGblEnv">TcGblEnv</a> <a href="TcRnTypes.html#t:TcLclEnv">TcLclEnv</a> a</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TcM" class="def">TcM</a> a = <a href="TcRnTypes.html#t:TcRn">TcRn</a> a</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:RnM" class="def">RnM</a> a = <a href="TcRnTypes.html#t:TcRn">TcRn</a> a</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IfM" class="def">IfM</a> lcl a = <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> <a href="TcRnTypes.html#t:IfGblEnv">IfGblEnv</a> lcl a</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IfL" class="def">IfL</a> a = <a href="TcRnTypes.html#t:IfM">IfM</a> <a href="TcRnTypes.html#t:IfLclEnv">IfLclEnv</a> a</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:IfG" class="def">IfG</a> a = <a href="TcRnTypes.html#t:IfM">IfM</a> () a</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TcRef" class="def">TcRef</a> a = <a href="IOEnv.html#t:IORef">IORef</a> a</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Env" class="def">Env</a> gbl lcl </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Env" class="def">Env</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:env_top" class="def">env_top</a> :: <a href="HscTypes.html#t:HscEnv">HscEnv</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:env_us" class="def">env_us</a> :: !(<a href="IOEnv.html#t:IORef">IORef</a> <a href="UniqSupply.html#t:UniqSupply">UniqSupply</a>)</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:env_gbl" class="def">env_gbl</a> :: gbl</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:env_lcl" class="def">env_lcl</a> :: lcl</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Env" class="caption collapser" onclick="toggleSection('i:Env')">Instances</p><div id="section.i:Env" class="show"><table><tr><td class="src"><a href="../template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Quasi">Quasi</a> (<a href="IOEnv.html#t:IOEnv">IOEnv</a> (<a href="TcRnTypes.html#t:Env">Env</a> <a href="TcRnTypes.html#t:TcGblEnv">TcGblEnv</a> <a href="TcRnTypes.html#t:TcLclEnv">TcLclEnv</a>))</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="UniqSupply.html#t:MonadUnique">MonadUnique</a> (<a href="IOEnv.html#t:IOEnv">IOEnv</a> (<a href="TcRnTypes.html#t:Env">Env</a> gbl lcl))</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="HscTypes.html#t:MonadThings">MonadThings</a> (<a href="IOEnv.html#t:IOEnv">IOEnv</a> (<a href="TcRnTypes.html#t:Env">Env</a> <a href="TcRnTypes.html#t:TcGblEnv">TcGblEnv</a> <a href="TcRnTypes.html#t:TcLclEnv">TcLclEnv</a>))</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="HscTypes.html#t:MonadThings">MonadThings</a> (<a href="IOEnv.html#t:IOEnv">IOEnv</a> (<a href="TcRnTypes.html#t:Env">Env</a> DsGblEnv DsLclEnv))</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TcGblEnv" class="def">TcGblEnv</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TcGblEnv" class="def">TcGblEnv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:tcg_mod" class="def">tcg_mod</a> :: <a href="Module.html#t:Module">Module</a></dt><dd class="doc"><p>Module being compiled
</p></dd><dt class="src"><a name="v:tcg_src" class="def">tcg_src</a> :: <a href="DriverPhases.html#t:HscSource">HscSource</a></dt><dd class="doc"><p>What kind of module (regular Haskell, hs-boot, ext-core)
</p></dd><dt class="src"><a name="v:tcg_rdr_env" class="def">tcg_rdr_env</a> :: <a href="RdrName.html#t:GlobalRdrEnv">GlobalRdrEnv</a></dt><dd class="doc"><p>Top level envt; used during renaming
</p></dd><dt class="src"><a name="v:tcg_default" class="def">tcg_default</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="Type.html#t:Type">Type</a>]</dt><dd class="doc"><p>Types used for defaulting. <code>Nothing</code> =&gt; no <code>default</code> decl
</p></dd><dt class="src"><a name="v:tcg_fix_env" class="def">tcg_fix_env</a> :: <a href="HscTypes.html#t:FixityEnv">FixityEnv</a></dt><dd class="doc"><p>Just for things in this module
</p></dd><dt class="src"><a name="v:tcg_field_env" class="def">tcg_field_env</a> :: <a href="TcRnTypes.html#t:RecFieldEnv">RecFieldEnv</a></dt><dd class="doc"><p>Just for things in this module
</p></dd><dt class="src"><a name="v:tcg_type_env" class="def">tcg_type_env</a> :: <a href="HscTypes.html#t:TypeEnv">TypeEnv</a></dt><dd class="doc"><p>Global type env for the module we are compiling now.  All
 TyCons and Classes (for this module) end up in here right away,
 along with their derived constructors, selectors.
</p><p>(Ids defined in this module start in the local envt, though they
  move to the global envt during zonking)
</p></dd><dt class="src"><a name="v:tcg_type_env_var" class="def">tcg_type_env_var</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="HscTypes.html#t:TypeEnv">TypeEnv</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_inst_env" class="def">tcg_inst_env</a> :: <a href="InstEnv.html#t:InstEnv">InstEnv</a></dt><dd class="doc"><p>Instance envt for <em>home-package</em> modules; Includes the dfuns in
 tcg_insts
</p></dd><dt class="src"><a name="v:tcg_fam_inst_env" class="def">tcg_fam_inst_env</a> :: <a href="FamInstEnv.html#t:FamInstEnv">FamInstEnv</a></dt><dd class="doc"><p>Ditto for family instances
</p></dd><dt class="src"><a name="v:tcg_exports" class="def">tcg_exports</a> :: [<a href="Avail.html#t:AvailInfo">AvailInfo</a>]</dt><dd class="doc"><p>What is exported
</p></dd><dt class="src"><a name="v:tcg_imports" class="def">tcg_imports</a> :: <a href="TcRnTypes.html#t:ImportAvails">ImportAvails</a></dt><dd class="doc"><p>Information about what was imported from where, including
 things bound in this module. Also store Safe Haskell info
 here about transative trusted packaage requirements.
</p></dd><dt class="src"><a name="v:tcg_dus" class="def">tcg_dus</a> :: <a href="NameSet.html#t:DefUses">DefUses</a></dt><dd class="doc"><p>What is defined in this module and what is used.
 The latter is used to generate
</p><p>(a) version tracking; no need to recompile if these things have
      not changed version stamp
</p><p>(b) unused-import info
</p></dd><dt class="src"><a name="v:tcg_keep" class="def">tcg_keep</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="NameSet.html#t:NameSet">NameSet</a></dt><dd class="doc"><p>Locally-defined top-level names to keep alive.
</p><p><a href="Keep alive.html">Keep alive</a> means give them an Exported flag, so that the
 simplifier does not discard them as dead code, and so that they
 are exposed in the interface file (but not to export to the
 user).
</p><p>Some things, like dict-fun Ids and default-method Ids are <a href="born.html">born</a>
 with the Exported flag on, for exactly the above reason, but some
 we only discover as we go.  Specifically:
</p><ul><li> The to/from functions for generic data types
</li><li> Top-level variables appearing free in the RHS of an orphan
     rule
</li><li> Top-level variables appearing free in a TH bracket
</li></ul></dd><dt class="src"><a name="v:tcg_th_used" class="def">tcg_th_used</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p><code>True</code> <a href="=">=</a> Template Haskell syntax used.
</p><p>We need this so that we can generate a dependency on the
 Template Haskell package, becuase the desugarer is going
 to emit loads of references to TH symbols.  The reference
 is implicit rather than explicit, so we have to zap a
 mutable variable.
</p></dd><dt class="src"><a name="v:tcg_th_splice_used" class="def">tcg_th_splice_used</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p><code>True</code> <a href="=">=</a> A Template Haskell splice was used.
</p><p>Splices disable recompilation avoidance (see #481)
</p></dd><dt class="src"><a name="v:tcg_dfun_n" class="def">tcg_dfun_n</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="OccName.html#t:OccSet">OccSet</a></dt><dd class="doc"><p>Allows us to choose unique DFun names.
</p></dd><dt class="src"><a name="v:tcg_rn_exports" class="def">tcg_rn_exports</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> [<a href="SrcLoc.html#t:Located">Located</a> (<a href="HsImpExp.html#t:IE">IE</a> <a href="Name.html#t:Name">Name</a>)]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_rn_imports" class="def">tcg_rn_imports</a> :: [<a href="HsImpExp.html#t:LImportDecl">LImportDecl</a> <a href="Name.html#t:Name">Name</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_used_rdrnames" class="def">tcg_used_rdrnames</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> (<a href="../containers-0.4.2.1/Data-Set.html#t:Set">Set</a> <a href="RdrName.html#t:RdrName">RdrName</a>)</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_rn_decls" class="def">tcg_rn_decls</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="HsDecls.html#t:HsGroup">HsGroup</a> <a href="Name.html#t:Name">Name</a>)</dt><dd class="doc"><p>Renamed decls, maybe.  <code>Nothing</code> <a href="=">=</a> Don't retain renamed
 decls.
</p></dd><dt class="src"><a name="v:tcg_dependent_files" class="def">tcg_dependent_files</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> [<a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a>]</dt><dd class="doc"><p>dependencies from addDependentFile
</p></dd><dt class="src"><a name="v:tcg_ev_binds" class="def">tcg_ev_binds</a> :: <a href="Bag.html#t:Bag">Bag</a> <a href="TcEvidence.html#t:EvBind">EvBind</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_binds" class="def">tcg_binds</a> :: <a href="HsBinds.html#t:LHsBinds">LHsBinds</a> <a href="Var.html#t:Id">Id</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_sigs" class="def">tcg_sigs</a> :: <a href="NameSet.html#t:NameSet">NameSet</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_imp_specs" class="def">tcg_imp_specs</a> :: [<a href="HsBinds.html#t:LTcSpecPrag">LTcSpecPrag</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_warns" class="def">tcg_warns</a> :: <a href="HscTypes.html#t:Warnings">Warnings</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_anns" class="def">tcg_anns</a> :: [<a href="Annotations.html#t:Annotation">Annotation</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_tcs" class="def">tcg_tcs</a> :: [<a href="TyCon.html#t:TyCon">TyCon</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_insts" class="def">tcg_insts</a> :: [<a href="InstEnv.html#t:Instance">Instance</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_fam_insts" class="def">tcg_fam_insts</a> :: [<a href="FamInstEnv.html#t:FamInst">FamInst</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_rules" class="def">tcg_rules</a> :: [<a href="HsDecls.html#t:LRuleDecl">LRuleDecl</a> <a href="Var.html#t:Id">Id</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_fords" class="def">tcg_fords</a> :: [<a href="HsDecls.html#t:LForeignDecl">LForeignDecl</a> <a href="Var.html#t:Id">Id</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_vects" class="def">tcg_vects</a> :: [<a href="HsDecls.html#t:LVectDecl">LVectDecl</a> <a href="Var.html#t:Id">Id</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcg_doc_hdr" class="def">tcg_doc_hdr</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="HsDoc.html#t:LHsDocString">LHsDocString</a></dt><dd class="doc"><p>Maybe Haddock header docs
</p></dd><dt class="src"><a name="v:tcg_hpc" class="def">tcg_hpc</a> :: <a href="HscTypes.html#t:AnyHpcUsage">AnyHpcUsage</a></dt><dd class="doc"><p><code>True</code> if any part of the
  prog uses hpc instrumentation.
</p></dd><dt class="src"><a name="v:tcg_main" class="def">tcg_main</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Name.html#t:Name">Name</a></dt><dd class="doc"><p>The Name of the main
 function, if this module is
 the main module.
</p></dd><dt class="src"><a name="v:tcg_safeInfer" class="def">tcg_safeInfer</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:TcGblEnv" class="caption collapser" onclick="toggleSection('i:TcGblEnv')">Instances</p><div id="section.i:TcGblEnv" class="show"><table><tr><td class="src"><a href="../template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Quasi">Quasi</a> (<a href="IOEnv.html#t:IOEnv">IOEnv</a> (<a href="TcRnTypes.html#t:Env">Env</a> <a href="TcRnTypes.html#t:TcGblEnv">TcGblEnv</a> <a href="TcRnTypes.html#t:TcLclEnv">TcLclEnv</a>))</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="HscTypes.html#t:MonadThings">MonadThings</a> (<a href="IOEnv.html#t:IOEnv">IOEnv</a> (<a href="TcRnTypes.html#t:Env">Env</a> <a href="TcRnTypes.html#t:TcGblEnv">TcGblEnv</a> <a href="TcRnTypes.html#t:TcLclEnv">TcLclEnv</a>))</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TcLclEnv" class="def">TcLclEnv</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TcLclEnv" class="def">TcLclEnv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:tcl_loc" class="def">tcl_loc</a> :: <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcl_ctxt" class="def">tcl_ctxt</a> :: [<a href="TcRnTypes.html#t:ErrCtxt">ErrCtxt</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcl_errs" class="def">tcl_errs</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="ErrUtils.html#t:Messages">Messages</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcl_th_ctxt" class="def">tcl_th_ctxt</a> :: <a href="TcRnTypes.html#t:ThStage">ThStage</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcl_arrow_ctxt" class="def">tcl_arrow_ctxt</a> :: <a href="TcRnTypes.html#t:ArrowCtxt">ArrowCtxt</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcl_rdr" class="def">tcl_rdr</a> :: <a href="RdrName.html#t:LocalRdrEnv">LocalRdrEnv</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcl_env" class="def">tcl_env</a> :: <a href="TcRnTypes.html#t:TcTypeEnv">TcTypeEnv</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcl_tyvars" class="def">tcl_tyvars</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="TcType.html#t:TcTyVarSet">TcTyVarSet</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcl_lie" class="def">tcl_lie</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcl_meta" class="def">tcl_meta</a> :: <a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="Unique.html#t:Unique">Unique</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tcl_untch" class="def">tcl_untch</a> :: <a href="Unique.html#t:Unique">Unique</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:TcLclEnv" class="caption collapser" onclick="toggleSection('i:TcLclEnv')">Instances</p><div id="section.i:TcLclEnv" class="show"><table><tr><td class="src"><a href="../template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Quasi">Quasi</a> (<a href="IOEnv.html#t:IOEnv">IOEnv</a> (<a href="TcRnTypes.html#t:Env">Env</a> <a href="TcRnTypes.html#t:TcGblEnv">TcGblEnv</a> <a href="TcRnTypes.html#t:TcLclEnv">TcLclEnv</a>))</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="HscTypes.html#t:MonadThings">MonadThings</a> (<a href="IOEnv.html#t:IOEnv">IOEnv</a> (<a href="TcRnTypes.html#t:Env">Env</a> <a href="TcRnTypes.html#t:TcGblEnv">TcGblEnv</a> <a href="TcRnTypes.html#t:TcLclEnv">TcLclEnv</a>))</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:IfGblEnv" class="def">IfGblEnv</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:IfGblEnv" class="def">IfGblEnv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:if_rec_types" class="def">if_rec_types</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Module.html#t:Module">Module</a>, <a href="TcRnTypes.html#t:IfG">IfG</a> <a href="HscTypes.html#t:TypeEnv">TypeEnv</a>)</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:IfLclEnv" class="def">IfLclEnv</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:IfLclEnv" class="def">IfLclEnv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:if_mod" class="def">if_mod</a> :: <a href="Module.html#t:Module">Module</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:if_loc" class="def">if_loc</a> :: <a href="Outputable.html#t:SDoc">SDoc</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:if_tv_env" class="def">if_tv_env</a> :: <a href="UniqFM.html#t:UniqFM">UniqFM</a> <a href="Var.html#t:TyVar">TyVar</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:if_id_env" class="def">if_id_env</a> :: <a href="UniqFM.html#t:UniqFM">UniqFM</a> <a href="Var.html#t:Id">Id</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ErrCtxt" class="def">ErrCtxt</a> = (<a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>, <a href="VarEnv.html#t:TidyEnv">TidyEnv</a> -&gt; <a href="TcRnTypes.html#t:TcM">TcM</a> (<a href="VarEnv.html#t:TidyEnv">TidyEnv</a>, <a href="ErrUtils.html#t:Message">Message</a>))</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:RecFieldEnv" class="def">RecFieldEnv</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:RecFields" class="def">RecFields</a> (<a href="NameEnv.html#t:NameEnv">NameEnv</a> [<a href="Name.html#t:Name">Name</a>]) <a href="NameSet.html#t:NameSet">NameSet</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ImportAvails" class="def">ImportAvails</a>  </p><div class="doc"><p><code><a href="TcRnTypes.html#t:ImportAvails">ImportAvails</a></code> summarises what was imported from where, irrespective of
 whether the imported things are actually used or not.  It is used:
</p><ul><li> when processing the export list,
</li><li> when constructing usage info for the interface file,
</li><li> to identify the list of directly imported modules for initialisation
    purposes and for optimised overlap checking of family instances,
</li><li> when figuring out what things are really unused
</li></ul></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ImportAvails" class="def">ImportAvails</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:imp_mods" class="def">imp_mods</a> :: <a href="HscTypes.html#t:ImportedMods">ImportedMods</a></dt><dd class="doc"><p>Domain is all directly-imported modules
 The <code><a href="Module.html#t:ModuleName">ModuleName</a></code> is what the module was imported as, e.g. in
 <code>
     import Foo as Bar
 </code>
 it is <code>Bar</code>.
</p><p>The <code><a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></code> means:
</p><ul><li> <code>True</code> =&gt; import was <code>import Foo ()</code>
</li><li> <code>False</code> =&gt; import was some other form
</li></ul><p>Used
</p><p>(a) to help construct the usage information in the interface
       file; if we import somethign we need to recompile if the
       export version changes
</p><p>(b) to specify what child modules to initialise
</p><p>We need a full ModuleEnv rather than a ModuleNameEnv here,
 because we might be importing modules of the same name from
 different packages. (currently not the case, but might be in the
 future).
</p></dd><dt class="src"><a name="v:imp_dep_mods" class="def">imp_dep_mods</a> :: <a href="Module.html#t:ModuleNameEnv">ModuleNameEnv</a> (<a href="Module.html#t:ModuleName">ModuleName</a>, <a href="HscTypes.html#t:IsBootInterface">IsBootInterface</a>)</dt><dd class="doc"><p>Home-package modules needed by the module being compiled
</p><p>It doesn't matter whether any of these dependencies
 are actually <em>used</em> when compiling the module; they
 are listed if they are below it at all.  For
 example, suppose M imports A which imports X.  Then
 compiling M might not need to consult X.hi, but X
 is still listed in M's dependencies.
</p></dd><dt class="src"><a name="v:imp_dep_pkgs" class="def">imp_dep_pkgs</a> :: [<a href="Module.html#t:PackageId">PackageId</a>]</dt><dd class="doc"><p>Packages needed by the module being compiled, whether directly,
 or via other modules in this package, or via modules imported
 from other packages.
</p></dd><dt class="src"><a name="v:imp_trust_pkgs" class="def">imp_trust_pkgs</a> :: [<a href="Module.html#t:PackageId">PackageId</a>]</dt><dd class="doc"><p>This is strictly a subset of imp_dep_pkgs and records the
 packages the current module needs to trust for Safe Haskell
 compilation to succeed. A package is required to be trusted if
 we are dependent on a trustworthy module in that package.
 While perhaps making imp_dep_pkgs a tuple of (PackageId, Bool)
 where True for the bool indicates the package is required to be
 trusted is the more logical  design, doing so complicates a lot
 of code not concerned with Safe Haskell.
 See Note [RnNames . Tracking Trust Transitively]
</p></dd><dt class="src"><a name="v:imp_trust_own_pkg" class="def">imp_trust_own_pkg</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Do we require that our own package is trusted?
 This is to handle efficiently the case where a Safe module imports
 a Trustworthy module that resides in the same package as it.
 See Note [RnNames . Trust Own Package]
</p></dd><dt class="src"><a name="v:imp_orphs" class="def">imp_orphs</a> :: [<a href="Module.html#t:Module">Module</a>]</dt><dd class="doc"><p>Orphan modules below us in the import tree (and maybe including
 us for imported modules)
</p></dd><dt class="src"><a name="v:imp_finsts" class="def">imp_finsts</a> :: [<a href="Module.html#t:Module">Module</a>]</dt><dd class="doc"><p>Family instance modules below us in the import tree (and maybe
 including us for imported modules)
</p></dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><a name="v:emptyImportAvails" class="def">emptyImportAvails</a> :: <a href="TcRnTypes.html#t:ImportAvails">ImportAvails</a></p></div><div class="top"><p class="src"><a name="v:plusImportAvails" class="def">plusImportAvails</a> :: <a href="TcRnTypes.html#t:ImportAvails">ImportAvails</a> -&gt; <a href="TcRnTypes.html#t:ImportAvails">ImportAvails</a> -&gt; <a href="TcRnTypes.html#t:ImportAvails">ImportAvails</a></p><div class="doc"><p>Union two ImportAvails
</p><p>This function is a key part of Import handling, basically
 for each import we create a seperate ImportAvails structure
 and then union them all together with this function.
</p></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:WhereFrom" class="def">WhereFrom</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ImportByUser" class="def">ImportByUser</a> <a href="HscTypes.html#t:IsBootInterface">IsBootInterface</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ImportBySystem" class="def">ImportBySystem</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:WhereFrom" class="caption collapser" onclick="toggleSection('i:WhereFrom')">Instances</p><div id="section.i:WhereFrom" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="TcRnTypes.html#t:WhereFrom">WhereFrom</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:mkModDeps" class="def">mkModDeps</a> :: [(<a href="Module.html#t:ModuleName">ModuleName</a>, <a href="HscTypes.html#t:IsBootInterface">IsBootInterface</a>)] -&gt; <a href="Module.html#t:ModuleNameEnv">ModuleNameEnv</a> (<a href="Module.html#t:ModuleName">ModuleName</a>, <a href="HscTypes.html#t:IsBootInterface">IsBootInterface</a>)</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TcTypeEnv" class="def">TcTypeEnv</a> = <a href="NameEnv.html#t:NameEnv">NameEnv</a> <a href="TcRnTypes.html#t:TcTyThing">TcTyThing</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TcTyThing" class="def">TcTyThing</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:AGlobal" class="def">AGlobal</a> <a href="Type.html#t:TyThing">TyThing</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ATcId" class="def">ATcId</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:tct_id" class="def">tct_id</a> :: <a href="TcRnTypes.html#t:TcId">TcId</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tct_closed" class="def">tct_closed</a> :: <a href="BasicTypes.html#t:TopLevelFlag">TopLevelFlag</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:tct_level" class="def">tct_level</a> :: <a href="TcRnTypes.html#t:ThLevel">ThLevel</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:ATyVar" class="def">ATyVar</a> <a href="Name.html#t:Name">Name</a> <a href="TcType.html#t:TcType">TcType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:AThing" class="def">AThing</a> <a href="TcType.html#t:TcKind">TcKind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ANothing" class="def">ANothing</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:TcTyThing" class="caption collapser" onclick="toggleSection('i:TcTyThing')">Instances</p><div id="section.i:TcTyThing" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="TcRnTypes.html#t:TcTyThing">TcTyThing</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:pprTcTyThingCategory" class="def">pprTcTyThingCategory</a> :: <a href="TcRnTypes.html#t:TcTyThing">TcTyThing</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ThStage" class="def">ThStage</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Splice" class="def">Splice</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Comp" class="def">Comp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Brack" class="def">Brack</a> <a href="TcRnTypes.html#t:ThStage">ThStage</a> (<a href="TcRnTypes.html#t:TcRef">TcRef</a> [<a href="HsExpr.html#t:PendingSplice">PendingSplice</a>]) (<a href="TcRnTypes.html#t:TcRef">TcRef</a> <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a>)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:ThStage" class="caption collapser" onclick="toggleSection('i:ThStage')">Instances</p><div id="section.i:ThStage" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="TcRnTypes.html#t:ThStage">ThStage</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:topStage" class="def">topStage</a> :: <a href="TcRnTypes.html#t:ThStage">ThStage</a></p></div><div class="top"><p class="src"><a name="v:topAnnStage" class="def">topAnnStage</a> :: <a href="TcRnTypes.html#t:ThStage">ThStage</a></p></div><div class="top"><p class="src"><a name="v:topSpliceStage" class="def">topSpliceStage</a> :: <a href="TcRnTypes.html#t:ThStage">ThStage</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ThLevel" class="def">ThLevel</a> = <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></p></div><div class="top"><p class="src"><a name="v:impLevel" class="def">impLevel</a> :: <a href="TcRnTypes.html#t:ThLevel">ThLevel</a></p></div><div class="top"><p class="src"><a name="v:outerLevel" class="def">outerLevel</a> :: <a href="TcRnTypes.html#t:ThLevel">ThLevel</a></p></div><div class="top"><p class="src"><a name="v:thLevel" class="def">thLevel</a> :: <a href="TcRnTypes.html#t:ThStage">ThStage</a> -&gt; <a href="TcRnTypes.html#t:ThLevel">ThLevel</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ArrowCtxt" class="def">ArrowCtxt</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NoArrowCtxt" class="def">NoArrowCtxt</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:newArrowScope" class="def">newArrowScope</a> ::  <a href="TcRnTypes.html#t:TcM">TcM</a> a -&gt; <a href="TcRnTypes.html#t:TcM">TcM</a> a</p></div><div class="top"><p class="src"><a name="v:escapeArrowScope" class="def">escapeArrowScope</a> ::  <a href="TcRnTypes.html#t:TcM">TcM</a> a -&gt; <a href="TcRnTypes.html#t:TcM">TcM</a> a</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Untouchables" class="def">Untouchables</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NoUntouchables" class="def">NoUntouchables</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:TouchableRange" class="def">TouchableRange</a> <a href="Unique.html#t:Unique">Unique</a> <a href="Unique.html#t:Unique">Unique</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Untouchables" class="caption collapser" onclick="toggleSection('i:Untouchables')">Instances</p><div id="section.i:Untouchables" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="TcRnTypes.html#t:Untouchables">Untouchables</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:inTouchableRange" class="def">inTouchableRange</a> :: <a href="TcRnTypes.html#t:Untouchables">Untouchables</a> -&gt; <a href="TcType.html#t:TcTyVar">TcTyVar</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isNoUntouchables" class="def">isNoUntouchables</a> :: <a href="TcRnTypes.html#t:Untouchables">Untouchables</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Xi" class="def">Xi</a> = <a href="Type.html#t:Type">Type</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Ct" class="def">Ct</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CDictCan" class="def">CDictCan</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:cc_id" class="def">cc_id</a> :: <a href="Var.html#t:EvVar">EvVar</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_flavor" class="def">cc_flavor</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_class" class="def">cc_class</a> :: <a href="Class.html#t:Class">Class</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_tyargs" class="def">cc_tyargs</a> :: [<a href="TcRnTypes.html#t:Xi">Xi</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_depth" class="def">cc_depth</a> :: <a href="TcRnTypes.html#t:SubGoalDepth">SubGoalDepth</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:CIPCan" class="def">CIPCan</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:cc_id" class="def">cc_id</a> :: <a href="Var.html#t:EvVar">EvVar</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_flavor" class="def">cc_flavor</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_ip_nm" class="def">cc_ip_nm</a> :: <a href="BasicTypes.html#t:IPName">IPName</a> <a href="Name.html#t:Name">Name</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_ip_ty" class="def">cc_ip_ty</a> :: <a href="TcType.html#t:TcTauType">TcTauType</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_depth" class="def">cc_depth</a> :: <a href="TcRnTypes.html#t:SubGoalDepth">SubGoalDepth</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:CIrredEvCan" class="def">CIrredEvCan</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:cc_id" class="def">cc_id</a> :: <a href="Var.html#t:EvVar">EvVar</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_flavor" class="def">cc_flavor</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_ty" class="def">cc_ty</a> :: <a href="TcRnTypes.html#t:Xi">Xi</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_depth" class="def">cc_depth</a> :: <a href="TcRnTypes.html#t:SubGoalDepth">SubGoalDepth</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:CTyEqCan" class="def">CTyEqCan</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:cc_id" class="def">cc_id</a> :: <a href="Var.html#t:EvVar">EvVar</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_flavor" class="def">cc_flavor</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_tyvar" class="def">cc_tyvar</a> :: <a href="TcType.html#t:TcTyVar">TcTyVar</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_rhs" class="def">cc_rhs</a> :: <a href="TcRnTypes.html#t:Xi">Xi</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_depth" class="def">cc_depth</a> :: <a href="TcRnTypes.html#t:SubGoalDepth">SubGoalDepth</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:CFunEqCan" class="def">CFunEqCan</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:cc_id" class="def">cc_id</a> :: <a href="Var.html#t:EvVar">EvVar</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_flavor" class="def">cc_flavor</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_fun" class="def">cc_fun</a> :: <a href="TyCon.html#t:TyCon">TyCon</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_tyargs" class="def">cc_tyargs</a> :: [<a href="TcRnTypes.html#t:Xi">Xi</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_rhs" class="def">cc_rhs</a> :: <a href="TcRnTypes.html#t:Xi">Xi</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_depth" class="def">cc_depth</a> :: <a href="TcRnTypes.html#t:SubGoalDepth">SubGoalDepth</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:CNonCanonical" class="def">CNonCanonical</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:cc_id" class="def">cc_id</a> :: <a href="Var.html#t:EvVar">EvVar</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_flavor" class="def">cc_flavor</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cc_depth" class="def">cc_depth</a> :: <a href="TcRnTypes.html#t:SubGoalDepth">SubGoalDepth</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Ct" class="caption collapser" onclick="toggleSection('i:Ct')">Instances</p><div id="section.i:Ct" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="TcRnTypes.html#t:Ct">Ct</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Cts" class="def">Cts</a> = <a href="Bag.html#t:Bag">Bag</a> <a href="TcRnTypes.html#t:Ct">Ct</a></p></div><div class="top"><p class="src"><a name="v:emptyCts" class="def">emptyCts</a> :: <a href="TcRnTypes.html#t:Cts">Cts</a></p></div><div class="top"><p class="src"><a name="v:andCts" class="def">andCts</a> :: <a href="TcRnTypes.html#t:Cts">Cts</a> -&gt; <a href="TcRnTypes.html#t:Cts">Cts</a> -&gt; <a href="TcRnTypes.html#t:Cts">Cts</a></p></div><div class="top"><p class="src"><a name="v:andManyCts" class="def">andManyCts</a> :: [<a href="TcRnTypes.html#t:Cts">Cts</a>] -&gt; <a href="TcRnTypes.html#t:Cts">Cts</a></p></div><div class="top"><p class="src"><a name="v:singleCt" class="def">singleCt</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="TcRnTypes.html#t:Cts">Cts</a></p></div><div class="top"><p class="src"><a name="v:extendCts" class="def">extendCts</a> :: <a href="TcRnTypes.html#t:Cts">Cts</a> -&gt; <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="TcRnTypes.html#t:Cts">Cts</a></p></div><div class="top"><p class="src"><a name="v:isEmptyCts" class="def">isEmptyCts</a> :: <a href="TcRnTypes.html#t:Cts">Cts</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isCTyEqCan" class="def">isCTyEqCan</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isCDictCan_Maybe" class="def">isCDictCan_Maybe</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Class.html#t:Class">Class</a></p></div><div class="top"><p class="src"><a name="v:isCIPCan_Maybe" class="def">isCIPCan_Maybe</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="BasicTypes.html#t:IPName">IPName</a> <a href="Name.html#t:Name">Name</a>)</p></div><div class="top"><p class="src"><a name="v:isCFunEqCan_Maybe" class="def">isCFunEqCan_Maybe</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="TyCon.html#t:TyCon">TyCon</a></p></div><div class="top"><p class="src"><a name="v:isCIrredEvCan" class="def">isCIrredEvCan</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isCNonCanonical" class="def">isCNonCanonical</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:SubGoalDepth" class="def">SubGoalDepth</a> = <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></p></div><div class="top"><p class="src"><a name="v:ctPred" class="def">ctPred</a> :: <a href="TcRnTypes.html#t:Ct">Ct</a> -&gt; <a href="Type.html#t:PredType">PredType</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:WantedConstraints" class="def">WantedConstraints</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:WC" class="def">WC</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:wc_flat" class="def">wc_flat</a> :: <a href="TcRnTypes.html#t:Cts">Cts</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:wc_impl" class="def">wc_impl</a> :: <a href="Bag.html#t:Bag">Bag</a> <a href="TcRnTypes.html#t:Implication">Implication</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:wc_insol" class="def">wc_insol</a> :: <a href="TcRnTypes.html#t:Cts">Cts</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:WantedConstraints" class="caption collapser" onclick="toggleSection('i:WantedConstraints')">Instances</p><div id="section.i:WantedConstraints" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:insolubleWC" class="def">insolubleWC</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:emptyWC" class="def">emptyWC</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></p></div><div class="top"><p class="src"><a name="v:isEmptyWC" class="def">isEmptyWC</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:andWC" class="def">andWC</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></p></div><div class="top"><p class="src"><a name="v:addFlats" class="def">addFlats</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="Bag.html#t:Bag">Bag</a> <a href="TcRnTypes.html#t:WantedEvVar">WantedEvVar</a> -&gt; <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></p></div><div class="top"><p class="src"><a name="v:addImplics" class="def">addImplics</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="Bag.html#t:Bag">Bag</a> <a href="TcRnTypes.html#t:Implication">Implication</a> -&gt; <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></p></div><div class="top"><p class="src"><a name="v:mkFlatWC" class="def">mkFlatWC</a> :: [<a href="TcRnTypes.html#t:Ct">Ct</a>] -&gt; <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:EvVarX" class="def">EvVarX</a> a </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:EvVarX" class="def">EvVarX</a> <a href="Var.html#t:EvVar">EvVar</a> a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:EvVarX" class="caption collapser" onclick="toggleSection('i:EvVarX')">Instances</p><div id="section.i:EvVarX" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> (<a href="TcRnTypes.html#t:EvVarX">EvVarX</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:mkEvVarX" class="def">mkEvVarX</a> ::  <a href="Var.html#t:EvVar">EvVar</a> -&gt; a -&gt; <a href="TcRnTypes.html#t:EvVarX">EvVarX</a> a</p></div><div class="top"><p class="src"><a name="v:evVarOf" class="def">evVarOf</a> ::  <a href="TcRnTypes.html#t:EvVarX">EvVarX</a> a -&gt; <a href="Var.html#t:EvVar">EvVar</a></p></div><div class="top"><p class="src"><a name="v:evVarX" class="def">evVarX</a> ::  <a href="TcRnTypes.html#t:EvVarX">EvVarX</a> a -&gt; a</p></div><div class="top"><p class="src"><a name="v:evVarOfPred" class="def">evVarOfPred</a> ::  <a href="TcRnTypes.html#t:EvVarX">EvVarX</a> a -&gt; <a href="Type.html#t:PredType">PredType</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:WantedEvVar" class="def">WantedEvVar</a> = <a href="TcRnTypes.html#t:EvVarX">EvVarX</a> <a href="TcRnTypes.html#t:WantedLoc">WantedLoc</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Implication" class="def">Implication</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Implic" class="def">Implic</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:ic_untch" class="def">ic_untch</a> :: <a href="TcRnTypes.html#t:Untouchables">Untouchables</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:ic_env" class="def">ic_env</a> :: <a href="TcRnTypes.html#t:TcTypeEnv">TcTypeEnv</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:ic_skols" class="def">ic_skols</a> :: <a href="TcType.html#t:TcTyVarSet">TcTyVarSet</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:ic_given" class="def">ic_given</a> :: [<a href="Var.html#t:EvVar">EvVar</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:ic_loc" class="def">ic_loc</a> :: <a href="TcRnTypes.html#t:GivenLoc">GivenLoc</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:ic_wanted" class="def">ic_wanted</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:ic_insol" class="def">ic_insol</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:ic_binds" class="def">ic_binds</a> :: <a href="TcEvidence.html#t:EvBindsVar">EvBindsVar</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:Implication" class="caption collapser" onclick="toggleSection('i:Implication')">Instances</p><div id="section.i:Implication" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="TcRnTypes.html#t:Implication">Implication</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CtLoc" class="def">CtLoc</a> orig </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CtLoc" class="def">CtLoc</a> orig <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a> [<a href="TcRnTypes.html#t:ErrCtxt">ErrCtxt</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:ctLocSpan" class="def">ctLocSpan</a> ::  <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> o -&gt; <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a></p></div><div class="top"><p class="src"><a name="v:ctLocOrigin" class="def">ctLocOrigin</a> ::  <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> o -&gt; o</p></div><div class="top"><p class="src"><a name="v:setCtLocOrigin" class="def">setCtLocOrigin</a> ::  <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> o -&gt; o' -&gt; <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> o'</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CtOrigin" class="def">CtOrigin</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:OccurrenceOf" class="def">OccurrenceOf</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:AppOrigin" class="def">AppOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SpecPragOrigin" class="def">SpecPragOrigin</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:TypeEqOrigin" class="def">TypeEqOrigin</a> <a href="TcRnTypes.html#t:EqOrigin">EqOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:IPOccOrigin" class="def">IPOccOrigin</a> (<a href="BasicTypes.html#t:IPName">IPName</a> <a href="Name.html#t:Name">Name</a>)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:LiteralOrigin" class="def">LiteralOrigin</a> (<a href="HsLit.html#t:HsOverLit">HsOverLit</a> <a href="Name.html#t:Name">Name</a>)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:NegateOrigin" class="def">NegateOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ArithSeqOrigin" class="def">ArithSeqOrigin</a> (<a href="HsExpr.html#t:ArithSeqInfo">ArithSeqInfo</a> <a href="Name.html#t:Name">Name</a>)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:PArrSeqOrigin" class="def">PArrSeqOrigin</a> (<a href="HsExpr.html#t:ArithSeqInfo">ArithSeqInfo</a> <a href="Name.html#t:Name">Name</a>)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SectionOrigin" class="def">SectionOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:TupleOrigin" class="def">TupleOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:AmbigOrigin" class="def">AmbigOrigin</a> <a href="Name.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ExprSigOrigin" class="def">ExprSigOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:PatSigOrigin" class="def">PatSigOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:PatOrigin" class="def">PatOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:RecordUpdOrigin" class="def">RecordUpdOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ViewPatOrigin" class="def">ViewPatOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ScOrigin" class="def">ScOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DerivOrigin" class="def">DerivOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StandAloneDerivOrigin" class="def">StandAloneDerivOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DefaultOrigin" class="def">DefaultOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DoOrigin" class="def">DoOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:MCompOrigin" class="def">MCompOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:IfOrigin" class="def">IfOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ProcOrigin" class="def">ProcOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:AnnOrigin" class="def">AnnOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FunDepOrigin" class="def">FunDepOrigin</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CtOrigin" class="caption collapser" onclick="toggleSection('i:CtOrigin')">Instances</p><div id="section.i:CtOrigin" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="TcRnTypes.html#t:CtOrigin">CtOrigin</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:EqOrigin" class="def">EqOrigin</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:UnifyOrigin" class="def">UnifyOrigin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:uo_actual" class="def">uo_actual</a> :: <a href="TcType.html#t:TcType">TcType</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:uo_expected" class="def">uo_expected</a> :: <a href="TcType.html#t:TcType">TcType</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:EqOrigin" class="caption collapser" onclick="toggleSection('i:EqOrigin')">Instances</p><div id="section.i:EqOrigin" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="TcRnTypes.html#t:EqOrigin">EqOrigin</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:WantedLoc" class="def">WantedLoc</a> = <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> <a href="TcRnTypes.html#t:CtOrigin">CtOrigin</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:GivenLoc" class="def">GivenLoc</a> = <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> <a href="TcRnTypes.html#t:SkolemInfo">SkolemInfo</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:GivenKind" class="def">GivenKind</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:GivenOrig" class="def">GivenOrig</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:GivenSolved" class="def">GivenSolved</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="TcEvidence.html#t:EvTerm">EvTerm</a>)</td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:pushErrCtxt" class="def">pushErrCtxt</a> ::  orig -&gt; <a href="TcRnTypes.html#t:ErrCtxt">ErrCtxt</a> -&gt; <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> orig -&gt; <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> orig</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:SkolemInfo" class="def">SkolemInfo</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SigSkol" class="def">SigSkol</a> <a href="TcType.html#t:UserTypeCtxt">UserTypeCtxt</a> <a href="Type.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ClsSkol" class="def">ClsSkol</a> <a href="Class.html#t:Class">Class</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:InstSkol" class="def">InstSkol</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DataSkol" class="def">DataSkol</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FamInstSkol" class="def">FamInstSkol</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:PatSkol" class="def">PatSkol</a> <a href="DataCon.html#t:DataCon">DataCon</a> (<a href="HsExpr.html#t:HsMatchContext">HsMatchContext</a> <a href="Name.html#t:Name">Name</a>)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ArrowSkol" class="def">ArrowSkol</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:IPSkol" class="def">IPSkol</a> [<a href="BasicTypes.html#t:IPName">IPName</a> <a href="Name.html#t:Name">Name</a>]</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:RuleSkol" class="def">RuleSkol</a> <a href="BasicTypes.html#t:RuleName">RuleName</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:InferSkol" class="def">InferSkol</a> [(<a href="Name.html#t:Name">Name</a>, <a href="TcType.html#t:TcType">TcType</a>)]</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:BracketSkol" class="def">BracketSkol</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:UnifyForAllSkol" class="def">UnifyForAllSkol</a> <a href="TcType.html#t:TcType">TcType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:UnkSkol" class="def">UnkSkol</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SkolemInfo" class="caption collapser" onclick="toggleSection('i:SkolemInfo')">Instances</p><div id="section.i:SkolemInfo" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="TcRnTypes.html#t:SkolemInfo">SkolemInfo</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CtFlavor" class="def">CtFlavor</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Given" class="def">Given</a> <a href="TcRnTypes.html#t:GivenLoc">GivenLoc</a> <a href="TcRnTypes.html#t:GivenKind">GivenKind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Derived" class="def">Derived</a> <a href="TcRnTypes.html#t:WantedLoc">WantedLoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Wanted" class="def">Wanted</a> <a href="TcRnTypes.html#t:WantedLoc">WantedLoc</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CtFlavor" class="caption collapser" onclick="toggleSection('i:CtFlavor')">Instances</p><div id="section.i:CtFlavor" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:pprFlavorArising" class="def">pprFlavorArising</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><a name="v:isWanted" class="def">isWanted</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isGivenOrSolved" class="def">isGivenOrSolved</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isGiven_maybe" class="def">isGiven_maybe</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="TcRnTypes.html#t:GivenKind">GivenKind</a></p></div><div class="top"><p class="src"><a name="v:isSolved" class="def">isSolved</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:isDerived" class="def">isDerived</a> :: <a href="TcRnTypes.html#t:CtFlavor">CtFlavor</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:pprEvVarTheta" class="def">pprEvVarTheta</a> :: [<a href="Var.html#t:EvVar">EvVar</a>] -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><a name="v:pprWantedEvVar" class="def">pprWantedEvVar</a> :: <a href="TcRnTypes.html#t:WantedEvVar">WantedEvVar</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><a name="v:pprWantedsWithLocs" class="def">pprWantedsWithLocs</a> :: <a href="TcRnTypes.html#t:WantedConstraints">WantedConstraints</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><a name="v:pprEvVars" class="def">pprEvVars</a> :: [<a href="Var.html#t:EvVar">EvVar</a>] -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><a name="v:pprEvVarWithType" class="def">pprEvVarWithType</a> :: <a href="Var.html#t:EvVar">EvVar</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><a name="v:pprWantedEvVarWithLoc" class="def">pprWantedEvVarWithLoc</a> :: <a href="TcRnTypes.html#t:WantedEvVar">WantedEvVar</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><a name="v:pprArising" class="def">pprArising</a> :: <a href="TcRnTypes.html#t:CtOrigin">CtOrigin</a> -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><a name="v:pprArisingAt" class="def">pprArisingAt</a> :: <a href="Outputable.html#t:Outputable">Outputable</a> o =&gt; <a href="TcRnTypes.html#t:CtLoc">CtLoc</a> o -&gt; <a href="Outputable.html#t:SDoc">SDoc</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TcId" class="def">TcId</a> = <a href="Var.html#t:Id">Id</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TcIdSet" class="def">TcIdSet</a> = <a href="VarSet.html#t:IdSet">IdSet</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TcTyVarBind" class="def">TcTyVarBind</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TcTyVarBind" class="def">TcTyVarBind</a> <a href="TcType.html#t:TcTyVar">TcTyVar</a> <a href="TcType.html#t:TcType">TcType</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:TcTyVarBind" class="caption collapser" onclick="toggleSection('i:TcTyVarBind')">Instances</p><div id="section.i:TcTyVarBind" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="TcRnTypes.html#t:TcTyVarBind">TcTyVarBind</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TcTyVarBinds" class="def">TcTyVarBinds</a> = <a href="Bag.html#t:Bag">Bag</a> <a href="TcRnTypes.html#t:TcTyVarBind">TcTyVarBind</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>