Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 70ec89744a04da80369b4702b2c37256 > files > 785

ghc-doc-6.10.4-1mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--Rendered using the Haskell Html Library v0.2-->
<HTML
><HEAD
><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
><TITLE
>Id</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Id.html")};</SCRIPT
></HEAD
><BODY
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="topbar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
></TD
><TD CLASS="title"
>ghc-6.10.4: The GHC API</TD
><TD CLASS="topbut"
><A HREF="index.html"
>Contents</A
></TD
><TD CLASS="topbut"
><A HREF="doc-index.html"
>Index</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="modulebar"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD
><FONT SIZE="6"
>Id</FONT
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
><B
>Contents</B
></TD
></TR
><TR
><TD
><DL
><DT
><A HREF="#1"
>The main types
</A
></DT
><DD
><DL
><DT
><A HREF="#2"
>Simple construction
</A
></DT
><DT
><A HREF="#3"
>Taking an Id apart
</A
></DT
><DT
><A HREF="#4"
>Modifying an Id
</A
></DT
><DT
><A HREF="#5"
>Predicates on Ids
</A
></DT
><DT
><A HREF="#6"
>Inline pragma stuff
</A
></DT
><DT
><A HREF="#7"
>One-shot lambdas
</A
></DT
><DT
><A HREF="#8"
>Reading <TT
><A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
></TT
> fields
</A
></DT
><DT
><A HREF="#9"
>Writing <TT
><A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
></TT
> fields
</A
></DT
></DL
></DD
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
><P
><A NAME="name_types"
><A NAME="name_types"
></A
></A
>
 GHC uses several kinds of name internally:
</P
><UL
><LI
> <TT
><A HREF="OccName.html#t%3AOccName"
>OccName</A
></TT
>: see <A HREF="OccName.html#name_types"
>OccName</A
>
</LI
><LI
> RdrName.RdrName: see <A HREF="RdrName.html#name_types"
>RdrName</A
>
</LI
><LI
> <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
>: see <A HREF="Name.html#name_types"
>Name</A
>
</LI
><LI
> Id.Id represents names that not only have a <TT
><A HREF="Name.html#t%3AName"
>Name</A
></TT
> but also a TypeRep.Type and some additional
   details (a <TT
><A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
></TT
> and one of Var.LocalIdDetails or <TT
><A HREF="IdInfo.html#t%3AGlobalIdDetails"
>GlobalIdDetails</A
></TT
>) that
   are added, modified and inspected by various compiler passes. These <TT
><A HREF="Var.html#t%3AVar"
>Var</A
></TT
> names may either 
   be global or local, see <A HREF="Var.html#globalvslocal"
>Var</A
>
</LI
><LI
> <TT
><A HREF="Var.html#t%3AVar"
>Var</A
></TT
>: see <A HREF="Var.html#name_types"
>Var</A
>
</LI
></UL
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Synopsis</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AId"
>Id</A
> = <A HREF="Var.html#t%3AVar"
>Var</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3ADictId"
>DictId</A
> = <A HREF="Var.html#t%3AVar"
>Var</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkGlobalId"
>mkGlobalId</A
> :: <A HREF="IdInfo.html#t%3AGlobalIdDetails"
>GlobalIdDetails</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkVanillaGlobal"
>mkVanillaGlobal</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkVanillaGlobalWithInfo"
>mkVanillaGlobalWithInfo</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkLocalId"
>mkLocalId</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkLocalIdWithInfo"
>mkLocalIdWithInfo</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkSysLocal"
>mkSysLocal</A
> :: <A HREF="FastString.html#t%3AFastString"
>FastString</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkSysLocalM"
>mkSysLocalM</A
> :: <A HREF="UniqSupply.html#t%3AMonadUnique"
>MonadUnique</A
> m =&gt; <A HREF="FastString.html#t%3AFastString"
>FastString</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; m <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkUserLocal"
>mkUserLocal</A
> :: <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkUserLocalM"
>mkUserLocalM</A
> :: <A HREF="UniqSupply.html#t%3AMonadUnique"
>MonadUnique</A
> m =&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
> -&gt; m <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkTemplateLocals"
>mkTemplateLocals</A
> :: [<A HREF="Type.html#t%3AType"
>Type</A
>] -&gt; [<A HREF="Id.html#t%3AId"
>Id</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkTemplateLocalsNum"
>mkTemplateLocalsNum</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; [<A HREF="Type.html#t%3AType"
>Type</A
>] -&gt; [<A HREF="Id.html#t%3AId"
>Id</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkWildId"
>mkWildId</A
> :: <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkTemplateLocal"
>mkTemplateLocal</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkWorkerId"
>mkWorkerId</A
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmkExportedLocalId"
>mkExportedLocalId</A
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidName"
>idName</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidType"
>idType</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Type.html#t%3AKind"
>Kind</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidUnique"
>idUnique</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidInfo"
>idInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisId"
>isId</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AglobalIdDetails"
>globalIdDetails</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AGlobalIdDetails"
>GlobalIdDetails</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidPrimRep"
>idPrimRep</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="TyCon.html#t%3APrimRep"
>PrimRep</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArecordSelectorFieldLabel"
>recordSelectorFieldLabel</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; (<A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>, <A HREF="TyCon.html#t%3AFieldLabel"
>FieldLabel</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdName"
>setIdName</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdUnique"
>setIdUnique</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdType"
>setIdType</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdExported"
>setIdExported</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdNotExported"
>setIdNotExported</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AglobaliseId"
>globaliseId</A
> :: <A HREF="IdInfo.html#t%3AGlobalIdDetails"
>GlobalIdDetails</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdInfo"
>setIdInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlazySetIdInfo"
>lazySetIdInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmodifyIdInfo"
>modifyIdInfo</A
> :: (<A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
>) -&gt; <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmaybeModifyIdInfo"
>maybeModifyIdInfo</A
> :: <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzapLamIdInfo"
>zapLamIdInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzapDemandIdInfo"
>zapDemandIdInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzapFragileIdInfo"
>zapFragileIdInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtransferPolyIdInfo"
>transferPolyIdInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisImplicitId"
>isImplicitId</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisDeadBinder"
>isDeadBinder</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisDictId"
>isDictId</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisStrictId"
>isStrictId</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisExportedId"
>isExportedId</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisLocalId"
>isLocalId</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisGlobalId"
>isGlobalId</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisRecordSelector"
>isRecordSelector</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisNaughtyRecordSelector"
>isNaughtyRecordSelector</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisClassOpId_maybe"
>isClassOpId_maybe</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Class.html#t%3AClass"
>Class</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisPrimOpId"
>isPrimOpId</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisPrimOpId_maybe"
>isPrimOpId_maybe</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="PrimOp.html#t%3APrimOp"
>PrimOp</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisFCallId"
>isFCallId</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisFCallId_maybe"
>isFCallId_maybe</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="ForeignCall.html#t%3AForeignCall"
>ForeignCall</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisDataConWorkId"
>isDataConWorkId</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisDataConWorkId_maybe"
>isDataConWorkId_maybe</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisDataConId_maybe"
>isDataConId_maybe</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidDataCon"
>idDataCon</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisBottomingId"
>isBottomingId</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidIsFrom"
>idIsFrom</A
> :: <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisTickBoxOp"
>isTickBoxOp</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisTickBoxOp_maybe"
>isTickBoxOp_maybe</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="IdInfo.html#t%3ATickBoxOp"
>TickBoxOp</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AhasNoBinding"
>hasNoBinding</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidInlinePragma"
>idInlinePragma</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AInlinePragInfo"
>InlinePragInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetInlinePragma"
>setInlinePragma</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AInlinePragInfo"
>InlinePragInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmodifyInlinePragma"
>modifyInlinePragma</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; (<A HREF="IdInfo.html#t%3AInlinePragInfo"
>InlinePragInfo</A
> -&gt; <A HREF="IdInfo.html#t%3AInlinePragInfo"
>InlinePragInfo</A
>) -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisOneShotBndr"
>isOneShotBndr</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisOneShotLambda"
>isOneShotLambda</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisStateHackType"
>isStateHackType</A
> :: <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetOneShotLambda"
>setOneShotLambda</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AclearOneShotLambda"
>clearOneShotLambda</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidArity"
>idArity</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="BasicTypes.html#t%3AArity"
>Arity</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidNewDemandInfo"
>idNewDemandInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="NewDemand.html#t%3ADemand"
>Demand</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidNewDemandInfo_maybe"
>idNewDemandInfo_maybe</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="NewDemand.html#t%3ADemand"
>Demand</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidNewStrictness"
>idNewStrictness</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="NewDemand.html#t%3AStrictSig"
>StrictSig</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidNewStrictness_maybe"
>idNewStrictness_maybe</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="NewDemand.html#t%3AStrictSig"
>StrictSig</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidWorkerInfo"
>idWorkerInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AWorkerInfo"
>WorkerInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidUnfolding"
>idUnfolding</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="CoreSyn.html#t%3AUnfolding"
>Unfolding</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidSpecialisation"
>idSpecialisation</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidCoreRules"
>idCoreRules</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidHasRules"
>idHasRules</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidCafInfo"
>idCafInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3ACafInfo"
>CafInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidLBVarInfo"
>idLBVarInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3ALBVarInfo"
>LBVarInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AidOccInfo"
>idOccInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="BasicTypes.html#t%3AOccInfo"
>OccInfo</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdUnfolding"
>setIdUnfolding</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="CoreSyn.html#t%3AUnfolding"
>Unfolding</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdArity"
>setIdArity</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="BasicTypes.html#t%3AArity"
>Arity</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdNewDemandInfo"
>setIdNewDemandInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="NewDemand.html#t%3ADemand"
>Demand</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdNewStrictness"
>setIdNewStrictness</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="NewDemand.html#t%3AStrictSig"
>StrictSig</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzapIdNewStrictness"
>zapIdNewStrictness</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdWorkerInfo"
>setIdWorkerInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AWorkerInfo"
>WorkerInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdSpecialisation"
>setIdSpecialisation</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdCafInfo"
>setIdCafInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3ACafInfo"
>CafInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsetIdOccInfo"
>setIdOccInfo</A
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="BasicTypes.html#t%3AOccInfo"
>OccInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>The main types
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:Id"
><A NAME="t%3AId"
></A
></A
><B
>Id</B
> = <A HREF="Var.html#t%3AVar"
>Var</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:DictId"
><A NAME="t%3ADictId"
></A
></A
><B
>DictId</B
> = <A HREF="Var.html#t%3AVar"
>Var</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="2"
><A NAME="2"
>Simple construction
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkGlobalId"
><A NAME="v%3AmkGlobalId"
></A
></A
><B
>mkGlobalId</B
> :: <A HREF="IdInfo.html#t%3AGlobalIdDetails"
>GlobalIdDetails</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="doc"
>For an explanation of global vs. local <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
>s, see <A HREF="Var.html#globalvslocal"
>Var</A
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkVanillaGlobal"
><A NAME="v%3AmkVanillaGlobal"
></A
></A
><B
>mkVanillaGlobal</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="doc"
>Make a global <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
> without any extra information at all
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkVanillaGlobalWithInfo"
><A NAME="v%3AmkVanillaGlobalWithInfo"
></A
></A
><B
>mkVanillaGlobalWithInfo</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="doc"
>Make a global <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
> with no global information but some generic <TT
><A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkLocalId"
><A NAME="v%3AmkLocalId"
></A
></A
><B
>mkLocalId</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="doc"
>For an explanation of global vs. local <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
>s, see <A HREF="Var.html#globalvslocal"
>Var</A
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkLocalIdWithInfo"
><A NAME="v%3AmkLocalIdWithInfo"
></A
></A
><B
>mkLocalIdWithInfo</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkSysLocal"
><A NAME="v%3AmkSysLocal"
></A
></A
><B
>mkSysLocal</B
> :: <A HREF="FastString.html#t%3AFastString"
>FastString</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="doc"
>Create a system local <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
>. These are local <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
>s (see <A HREF="Var.html#globalvslocal"
>Var</A
>) that are created by the compiler out of thin air
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkSysLocalM"
><A NAME="v%3AmkSysLocalM"
></A
></A
><B
>mkSysLocalM</B
> :: <A HREF="UniqSupply.html#t%3AMonadUnique"
>MonadUnique</A
> m =&gt; <A HREF="FastString.html#t%3AFastString"
>FastString</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; m <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkUserLocal"
><A NAME="v%3AmkUserLocal"
></A
></A
><B
>mkUserLocal</B
> :: <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="doc"
>Create a user local <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
>. These are local <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
>s (see <A HREF="Var.html#globalvslocal"
>Var</A
>) with a name and location that the user might recognize
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkUserLocalM"
><A NAME="v%3AmkUserLocalM"
></A
></A
><B
>mkUserLocalM</B
> :: <A HREF="UniqSupply.html#t%3AMonadUnique"
>MonadUnique</A
> m =&gt; <A HREF="OccName.html#t%3AOccName"
>OccName</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="SrcLoc.html#t%3ASrcSpan"
>SrcSpan</A
> -&gt; m <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkTemplateLocals"
><A NAME="v%3AmkTemplateLocals"
></A
></A
><B
>mkTemplateLocals</B
> :: [<A HREF="Type.html#t%3AType"
>Type</A
>] -&gt; [<A HREF="Id.html#t%3AId"
>Id</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>Create a template local for a series of types
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkTemplateLocalsNum"
><A NAME="v%3AmkTemplateLocalsNum"
></A
></A
><B
>mkTemplateLocalsNum</B
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; [<A HREF="Type.html#t%3AType"
>Type</A
>] -&gt; [<A HREF="Id.html#t%3AId"
>Id</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>Create a template local for a series of type, but start from a specified template local
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkWildId"
><A NAME="v%3AmkWildId"
></A
></A
><B
>mkWildId</B
> :: <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="doc"
>Make a <EM
>wild Id</EM
>. This is typically used when you need a binder that you don't expect to use
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkTemplateLocal"
><A NAME="v%3AmkTemplateLocal"
></A
></A
><B
>mkTemplateLocal</B
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="doc"
>Create a <EM
>template local</EM
>: a family of system local <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
>s in bijection with <TT
>Int</TT
>s, typically used in unfoldings
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkWorkerId"
><A NAME="v%3AmkWorkerId"
></A
></A
><B
>mkWorkerId</B
> :: <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="doc"
>Workers get local names. <A HREF="CoreTidy.html"
>CoreTidy</A
> will externalise these if necessary
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mkExportedLocalId"
><A NAME="v%3AmkExportedLocalId"
></A
></A
><B
>mkExportedLocalId</B
> :: <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="doc"
>Create a local <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
> that is marked as exported. This prevents things attached to it from being removed as dead code.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="3"
><A NAME="3"
>Taking an Id apart
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idName"
><A NAME="v%3AidName"
></A
></A
><B
>idName</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idType"
><A NAME="v%3AidType"
></A
></A
><B
>idType</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Type.html#t%3AKind"
>Kind</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idUnique"
><A NAME="v%3AidUnique"
></A
></A
><B
>idUnique</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idInfo"
><A NAME="v%3AidInfo"
></A
></A
><B
>idInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isId"
><A NAME="v%3AisId"
></A
></A
><B
>isId</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:globalIdDetails"
><A NAME="v%3AglobalIdDetails"
></A
></A
><B
>globalIdDetails</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AGlobalIdDetails"
>GlobalIdDetails</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idPrimRep"
><A NAME="v%3AidPrimRep"
></A
></A
><B
>idPrimRep</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="TyCon.html#t%3APrimRep"
>PrimRep</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:recordSelectorFieldLabel"
><A NAME="v%3ArecordSelectorFieldLabel"
></A
></A
><B
>recordSelectorFieldLabel</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; (<A HREF="TyCon.html#t%3ATyCon"
>TyCon</A
>, <A HREF="TyCon.html#t%3AFieldLabel"
>FieldLabel</A
>)</TD
></TR
><TR
><TD CLASS="doc"
>If the <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
> is that for a record selector, extract the <TT
><A HREF="IdInfo.html#v%3Asel_tycon"
>sel_tycon</A
></TT
> and label. Panic otherwise
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="4"
><A NAME="4"
>Modifying an Id
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdName"
><A NAME="v%3AsetIdName"
></A
></A
><B
>setIdName</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Name.html#t%3AName"
>Name</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdUnique"
><A NAME="v%3AsetIdUnique"
></A
></A
><B
>setIdUnique</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Unique.html#t%3AUnique"
>Unique</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdType"
><A NAME="v%3AsetIdType"
></A
></A
><B
>setIdType</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="doc"
>Not only does this set the <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
> <TT
><A HREF="Type.html#t%3AType"
>Type</A
></TT
>, it also evaluates the type to try and
 reduce space usage
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdExported"
><A NAME="v%3AsetIdExported"
></A
></A
><B
>setIdExported</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdNotExported"
><A NAME="v%3AsetIdNotExported"
></A
></A
><B
>setIdNotExported</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:globaliseId"
><A NAME="v%3AglobaliseId"
></A
></A
><B
>globaliseId</B
> :: <A HREF="IdInfo.html#t%3AGlobalIdDetails"
>GlobalIdDetails</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdInfo"
><A NAME="v%3AsetIdInfo"
></A
></A
><B
>setIdInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lazySetIdInfo"
><A NAME="v%3AlazySetIdInfo"
></A
></A
><B
>lazySetIdInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:modifyIdInfo"
><A NAME="v%3AmodifyIdInfo"
></A
></A
><B
>modifyIdInfo</B
> :: (<A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
>) -&gt; <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:maybeModifyIdInfo"
><A NAME="v%3AmaybeModifyIdInfo"
></A
></A
><B
>maybeModifyIdInfo</B
> :: <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:zapLamIdInfo"
><A NAME="v%3AzapLamIdInfo"
></A
></A
><B
>zapLamIdInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:zapDemandIdInfo"
><A NAME="v%3AzapDemandIdInfo"
></A
></A
><B
>zapDemandIdInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:zapFragileIdInfo"
><A NAME="v%3AzapFragileIdInfo"
></A
></A
><B
>zapFragileIdInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:transferPolyIdInfo"
><A NAME="v%3AtransferPolyIdInfo"
></A
></A
><B
>transferPolyIdInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="5"
><A NAME="5"
>Predicates on Ids
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isImplicitId"
><A NAME="v%3AisImplicitId"
></A
></A
><B
>isImplicitId</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Id.html#v%3AisImplicitId"
>isImplicitId</A
></TT
> tells whether an <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
>s info is implied by other
 declarations, so we don't need to put its signature in an interface
 file, even if it's mentioned in some other interface unfolding.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isDeadBinder"
><A NAME="v%3AisDeadBinder"
></A
></A
><B
>isDeadBinder</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isDictId"
><A NAME="v%3AisDictId"
></A
></A
><B
>isDictId</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isStrictId"
><A NAME="v%3AisStrictId"
></A
></A
><B
>isStrictId</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>This predicate says whether the <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
> has a strict demand placed on it or
 has a type such that it can always be evaluated strictly (e.g., an
 unlifted type, but see the comment for <TT
><A HREF="Type.html#v%3AisStrictType"
>isStrictType</A
></TT
>).  We need to
 check separately whether the <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
> has a so-called &quot;strict type&quot; because if
 the demand for the given <TT
>id</TT
> hasn't been computed yet but <TT
>id</TT
> has a strict
 type, we still want <TT
>isStrictId id</TT
> to be <TT
>True</TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isExportedId"
><A NAME="v%3AisExportedId"
></A
></A
><B
>isExportedId</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Determines whether an <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
> is marked as exported and hence will not be considered dead code
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isLocalId"
><A NAME="v%3AisLocalId"
></A
></A
><B
>isLocalId</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>For an explanation of global vs. local <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
>s, see <A HREF="Var.html#globalvslocal"
>Var</A
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isGlobalId"
><A NAME="v%3AisGlobalId"
></A
></A
><B
>isGlobalId</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>For an explanation of global vs. local <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
>s, see <A HREF="Var.html#globalvslocal"
>Var</A
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isRecordSelector"
><A NAME="v%3AisRecordSelector"
></A
></A
><B
>isRecordSelector</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isNaughtyRecordSelector"
><A NAME="v%3AisNaughtyRecordSelector"
></A
></A
><B
>isNaughtyRecordSelector</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isClassOpId_maybe"
><A NAME="v%3AisClassOpId_maybe"
></A
></A
><B
>isClassOpId_maybe</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Class.html#t%3AClass"
>Class</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isPrimOpId"
><A NAME="v%3AisPrimOpId"
></A
></A
><B
>isPrimOpId</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isPrimOpId_maybe"
><A NAME="v%3AisPrimOpId_maybe"
></A
></A
><B
>isPrimOpId_maybe</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="PrimOp.html#t%3APrimOp"
>PrimOp</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isFCallId"
><A NAME="v%3AisFCallId"
></A
></A
><B
>isFCallId</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isFCallId_maybe"
><A NAME="v%3AisFCallId_maybe"
></A
></A
><B
>isFCallId_maybe</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="ForeignCall.html#t%3AForeignCall"
>ForeignCall</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isDataConWorkId"
><A NAME="v%3AisDataConWorkId"
></A
></A
><B
>isDataConWorkId</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isDataConWorkId_maybe"
><A NAME="v%3AisDataConWorkId_maybe"
></A
></A
><B
>isDataConWorkId_maybe</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isDataConId_maybe"
><A NAME="v%3AisDataConId_maybe"
></A
></A
><B
>isDataConId_maybe</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idDataCon"
><A NAME="v%3AidDataCon"
></A
></A
><B
>idDataCon</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Get from either the worker or the wrapper <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
> to the <TT
><A HREF="DataCon.html#t%3ADataCon"
>DataCon</A
></TT
>. Currently used only in the desugarer.
</P
><P
>INVARIANT: <TT
>idDataCon (dataConWrapId d) = d</TT
>: remember, <TT
><A HREF="DataCon.html#v%3AdataConWrapId"
>dataConWrapId</A
></TT
> can return either the wrapper or the worker
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isBottomingId"
><A NAME="v%3AisBottomingId"
></A
></A
><B
>isBottomingId</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Returns true if an application to n args would diverge
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idIsFrom"
><A NAME="v%3AidIsFrom"
></A
></A
><B
>idIsFrom</B
> :: <A HREF="Module.html#t%3AModule"
>Module</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isTickBoxOp"
><A NAME="v%3AisTickBoxOp"
></A
></A
><B
>isTickBoxOp</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isTickBoxOp_maybe"
><A NAME="v%3AisTickBoxOp_maybe"
></A
></A
><B
>isTickBoxOp_maybe</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="IdInfo.html#t%3ATickBoxOp"
>TickBoxOp</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:hasNoBinding"
><A NAME="v%3AhasNoBinding"
></A
></A
><B
>hasNoBinding</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Returns <TT
>True</TT
> of an <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
> which may not have a
 binding, even though it is defined in this module.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="6"
><A NAME="6"
>Inline pragma stuff
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idInlinePragma"
><A NAME="v%3AidInlinePragma"
></A
></A
><B
>idInlinePragma</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AInlinePragInfo"
>InlinePragInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setInlinePragma"
><A NAME="v%3AsetInlinePragma"
></A
></A
><B
>setInlinePragma</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AInlinePragInfo"
>InlinePragInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:modifyInlinePragma"
><A NAME="v%3AmodifyInlinePragma"
></A
></A
><B
>modifyInlinePragma</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; (<A HREF="IdInfo.html#t%3AInlinePragInfo"
>InlinePragInfo</A
> -&gt; <A HREF="IdInfo.html#t%3AInlinePragInfo"
>InlinePragInfo</A
>) -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="7"
><A NAME="7"
>One-shot lambdas
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isOneShotBndr"
><A NAME="v%3AisOneShotBndr"
></A
></A
><B
>isOneShotBndr</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Returns whether the lambda associated with the <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
> is certainly applied at most once
 OR we are applying the &quot;state hack&quot; which makes it appear as if theis is the case for
 lambdas used in <TT
>IO</TT
>. You should prefer using this over <TT
><A HREF="Id.html#v%3AisOneShotLambda"
>isOneShotLambda</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isOneShotLambda"
><A NAME="v%3AisOneShotLambda"
></A
></A
><B
>isOneShotLambda</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Returns whether the lambda associated with the <TT
><A HREF="Id.html#t%3AId"
>Id</A
></TT
> is certainly applied at most once.
 You probably want to use <TT
><A HREF="Id.html#v%3AisOneShotBndr"
>isOneShotBndr</A
></TT
> instead
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isStateHackType"
><A NAME="v%3AisStateHackType"
></A
></A
><B
>isStateHackType</B
> :: <A HREF="Type.html#t%3AType"
>Type</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Should we apply the state hack to values of this <TT
><A HREF="Type.html#t%3AType"
>Type</A
></TT
>?
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setOneShotLambda"
><A NAME="v%3AsetOneShotLambda"
></A
></A
><B
>setOneShotLambda</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:clearOneShotLambda"
><A NAME="v%3AclearOneShotLambda"
></A
></A
><B
>clearOneShotLambda</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="8"
><A NAME="8"
>Reading <TT
><A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
></TT
> fields
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idArity"
><A NAME="v%3AidArity"
></A
></A
><B
>idArity</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="BasicTypes.html#t%3AArity"
>Arity</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idNewDemandInfo"
><A NAME="v%3AidNewDemandInfo"
></A
></A
><B
>idNewDemandInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="NewDemand.html#t%3ADemand"
>Demand</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idNewDemandInfo_maybe"
><A NAME="v%3AidNewDemandInfo_maybe"
></A
></A
><B
>idNewDemandInfo_maybe</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="NewDemand.html#t%3ADemand"
>Demand</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idNewStrictness"
><A NAME="v%3AidNewStrictness"
></A
></A
><B
>idNewStrictness</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="NewDemand.html#t%3AStrictSig"
>StrictSig</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idNewStrictness_maybe"
><A NAME="v%3AidNewStrictness_maybe"
></A
></A
><B
>idNewStrictness_maybe</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="NewDemand.html#t%3AStrictSig"
>StrictSig</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idWorkerInfo"
><A NAME="v%3AidWorkerInfo"
></A
></A
><B
>idWorkerInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AWorkerInfo"
>WorkerInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idUnfolding"
><A NAME="v%3AidUnfolding"
></A
></A
><B
>idUnfolding</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="CoreSyn.html#t%3AUnfolding"
>Unfolding</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idSpecialisation"
><A NAME="v%3AidSpecialisation"
></A
></A
><B
>idSpecialisation</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idCoreRules"
><A NAME="v%3AidCoreRules"
></A
></A
><B
>idCoreRules</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; [<A HREF="CoreSyn.html#t%3ACoreRule"
>CoreRule</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idHasRules"
><A NAME="v%3AidHasRules"
></A
></A
><B
>idHasRules</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idCafInfo"
><A NAME="v%3AidCafInfo"
></A
></A
><B
>idCafInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3ACafInfo"
>CafInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idLBVarInfo"
><A NAME="v%3AidLBVarInfo"
></A
></A
><B
>idLBVarInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3ALBVarInfo"
>LBVarInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:idOccInfo"
><A NAME="v%3AidOccInfo"
></A
></A
><B
>idOccInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="BasicTypes.html#t%3AOccInfo"
>OccInfo</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="9"
><A NAME="9"
>Writing <TT
><A HREF="IdInfo.html#t%3AIdInfo"
>IdInfo</A
></TT
> fields
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdUnfolding"
><A NAME="v%3AsetIdUnfolding"
></A
></A
><B
>setIdUnfolding</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="CoreSyn.html#t%3AUnfolding"
>Unfolding</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdArity"
><A NAME="v%3AsetIdArity"
></A
></A
><B
>setIdArity</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="BasicTypes.html#t%3AArity"
>Arity</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdNewDemandInfo"
><A NAME="v%3AsetIdNewDemandInfo"
></A
></A
><B
>setIdNewDemandInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="NewDemand.html#t%3ADemand"
>Demand</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdNewStrictness"
><A NAME="v%3AsetIdNewStrictness"
></A
></A
><B
>setIdNewStrictness</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="NewDemand.html#t%3AStrictSig"
>StrictSig</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:zapIdNewStrictness"
><A NAME="v%3AzapIdNewStrictness"
></A
></A
><B
>zapIdNewStrictness</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdWorkerInfo"
><A NAME="v%3AsetIdWorkerInfo"
></A
></A
><B
>setIdWorkerInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3AWorkerInfo"
>WorkerInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdSpecialisation"
><A NAME="v%3AsetIdSpecialisation"
></A
></A
><B
>setIdSpecialisation</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3ASpecInfo"
>SpecInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdCafInfo"
><A NAME="v%3AsetIdCafInfo"
></A
></A
><B
>setIdCafInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="IdInfo.html#t%3ACafInfo"
>CafInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:setIdOccInfo"
><A NAME="v%3AsetIdOccInfo"
></A
></A
><B
>setIdOccInfo</B
> :: <A HREF="Id.html#t%3AId"
>Id</A
> -&gt; <A HREF="BasicTypes.html#t%3AOccInfo"
>OccInfo</A
> -&gt; <A HREF="Id.html#t%3AId"
>Id</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="botbar"
>Produced by <A HREF="http://www.haskell.org/haddock/"
>Haddock</A
> version 2.4.2</TD
></TR
></TABLE
></BODY
></HTML
>