<!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.12.3: 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 > OccName.OccName: 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 IdInfo.GlobalIdDetails) 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%3AIdDetails" >IdDetails</A > -> <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A > -> <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 > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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 > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A > -> <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 > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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 > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A > -> <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 > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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 > -> <A HREF="Unique.html#t%3AUnique" >Unique</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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 => <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> 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 > -> <A HREF="Unique.html#t%3AUnique" >Unique</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <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 => <A HREF="OccName.html#t%3AOccName" >OccName</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> 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 >] -> [<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="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> [<A HREF="Type.html#t%3AType" >Type</A >] -> [<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="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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 > -> <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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 > -> <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 > -> <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 > -> <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 > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AidDetails" >idDetails</A > :: <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="IdInfo.html#t%3AIdDetails" >IdDetails</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisId" >isId</A > :: <A HREF="Var.html#t%3AVar" >Var</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</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 > -> <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 > -> (<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 > -> <A HREF="Name.html#t%3AName" >Name</A > -> <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 > -> <A HREF="Unique.html#t%3AUnique" >Unique</A > -> <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 > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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 > -> <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 > -> <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="Id.html#t%3AId" >Id</A > -> <A HREF="Id.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AlocaliseId" >localiseId</A > :: <A HREF="Id.html#t%3AId" >Id</A > -> <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 > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A > -> <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 > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A > -> <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 > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A >) -> <A HREF="Id.html#t%3AId" >Id</A > -> <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-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A > -> <A HREF="Id.html#t%3AId" >Id</A > -> <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 > -> <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 > -> <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 > -> <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 > -> [<A HREF="Var.html#t%3AVar" >Var</A >] -> <A HREF="Id.html#t%3AId" >Id</A > -> <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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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="Var.html#t%3AVar" >Var</A > -> <A HREF="../base-4.2.0.2/Data-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="Var.html#t%3AVar" >Var</A > -> <A HREF="../base-4.2.0.2/Data-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="Var.html#t%3AVar" >Var</A > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/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%3AisDFunId" >isDFunId</A > :: <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/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 > -> <A HREF="../base-4.2.0.2/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 > -> <A HREF="DataCon.html#t%3ADataCon" >DataCon</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisConLikeId" >isConLikeId</A > :: <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="BasicTypes.html#t%3AInlinePragma" >InlinePragma</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 > -> <A HREF="BasicTypes.html#t%3AInlinePragma" >InlinePragma</A > -> <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 > -> (<A HREF="BasicTypes.html#t%3AInlinePragma" >InlinePragma</A > -> <A HREF="BasicTypes.html#t%3AInlinePragma" >InlinePragma</A >) -> <A HREF="Id.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AidInlineActivation" >idInlineActivation</A > :: <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="BasicTypes.html#t%3AActivation" >Activation</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsetInlineActivation" >setInlineActivation</A > :: <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="BasicTypes.html#t%3AActivation" >Activation</A > -> <A HREF="Id.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AidRuleMatchInfo" >idRuleMatchInfo</A > :: <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="BasicTypes.html#t%3ARuleMatchInfo" >RuleMatchInfo</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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <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 > -> <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 > -> <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 > -> <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 > -> <A HREF="../base-4.2.0.2/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 > -> <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 > -> <A HREF="../base-4.2.0.2/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 > -> <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 > -> <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 > -> <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 > -> [<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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <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 > -> <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 > -> <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 > -> <A HREF="CoreSyn.html#t%3AUnfolding" >Unfolding</A > -> <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 > -> <A HREF="BasicTypes.html#t%3AArity" >Arity</A > -> <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 > -> <A HREF="NewDemand.html#t%3ADemand" >Demand</A > -> <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 > -> <A HREF="NewDemand.html#t%3AStrictSig" >StrictSig</A > -> <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 > -> <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 > -> <A HREF="IdInfo.html#t%3AWorkerInfo" >WorkerInfo</A > -> <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 > -> <A HREF="IdInfo.html#t%3ASpecInfo" >SpecInfo</A > -> <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 > -> <A HREF="IdInfo.html#t%3ACafInfo" >CafInfo</A > -> <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 > -> <A HREF="BasicTypes.html#t%3AOccInfo" >OccInfo</A > -> <A HREF="Id.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AzapIdOccInfo" >zapIdOccInfo</A > :: <A HREF="Id.html#t%3AId" >Id</A > -> <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%3AIdDetails" >IdDetails</A > -> <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A > -> <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 > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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 > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A > -> <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 > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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 > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A > -> <A HREF="Id.html#t%3AId" >Id</A ></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 > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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="decl" ><A NAME="v:mkSysLocal" ><A NAME="v%3AmkSysLocal" ></A ></A ><B >mkSysLocal</B > :: <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="Unique.html#t%3AUnique" >Unique</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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 => <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> 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 > -> <A HREF="Unique.html#t%3AUnique" >Unique</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <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 => <A HREF="OccName.html#t%3AOccName" >OccName</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> 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 >] -> [<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="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> [<A HREF="Type.html#t%3AType" >Type</A >] -> [<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:mkTemplateLocal" ><A NAME="v%3AmkTemplateLocal" ></A ></A ><B >mkTemplateLocal</B > :: <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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 > -> <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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="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 > -> <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 > -> <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 > -> <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 > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:idDetails" ><A NAME="v%3AidDetails" ></A ></A ><B >idDetails</B > :: <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="IdInfo.html#t%3AIdDetails" >IdDetails</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="Var.html#t%3AVar" >Var</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</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 > -> <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 > -> (<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 > -> <A HREF="Name.html#t%3AName" >Name</A > -> <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 > -> <A HREF="Unique.html#t%3AUnique" >Unique</A > -> <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 > -> <A HREF="Type.html#t%3AType" >Type</A > -> <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 > -> <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 > -> <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="Id.html#t%3AId" >Id</A > -> <A HREF="Id.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="doc" >If it's a local, make it global </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:localiseId" ><A NAME="v%3AlocaliseId" ></A ></A ><B >localiseId</B > :: <A HREF="Id.html#t%3AId" >Id</A > -> <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 > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A > -> <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 > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A > -> <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 > -> <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A >) -> <A HREF="Id.html#t%3AId" >Id</A > -> <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-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="IdInfo.html#t%3AIdInfo" >IdInfo</A > -> <A HREF="Id.html#t%3AId" >Id</A > -> <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 > -> <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 > -> <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 > -> <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 > -> [<A HREF="Var.html#t%3AVar" >Var</A >] -> <A HREF="Id.html#t%3AId" >Id</A > -> <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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 "strict type" 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="Var.html#t%3AVar" >Var</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="doc" >isExportedIdVar means "don't throw this away" </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="Var.html#t%3AVar" >Var</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</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="Var.html#t%3AVar" >Var</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/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:isDFunId" ><A NAME="v%3AisDFunId" ></A ></A ><B >isDFunId</B > :: <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/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 > -> <A HREF="../base-4.2.0.2/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 > -> <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:isConLikeId" ><A NAME="v%3AisConLikeId" ></A ></A ><B >isConLikeId</B > :: <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="BasicTypes.html#t%3AInlinePragma" >InlinePragma</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 > -> <A HREF="BasicTypes.html#t%3AInlinePragma" >InlinePragma</A > -> <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 > -> (<A HREF="BasicTypes.html#t%3AInlinePragma" >InlinePragma</A > -> <A HREF="BasicTypes.html#t%3AInlinePragma" >InlinePragma</A >) -> <A HREF="Id.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:idInlineActivation" ><A NAME="v%3AidInlineActivation" ></A ></A ><B >idInlineActivation</B > :: <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="BasicTypes.html#t%3AActivation" >Activation</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:setInlineActivation" ><A NAME="v%3AsetInlineActivation" ></A ></A ><B >setInlineActivation</B > :: <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="BasicTypes.html#t%3AActivation" >Activation</A > -> <A HREF="Id.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:idRuleMatchInfo" ><A NAME="v%3AidRuleMatchInfo" ></A ></A ><B >idRuleMatchInfo</B > :: <A HREF="Id.html#t%3AId" >Id</A > -> <A HREF="BasicTypes.html#t%3ARuleMatchInfo" >RuleMatchInfo</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 > -> <A HREF="../base-4.2.0.2/Data-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 "state hack" 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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <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 > -> <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 > -> <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 > -> <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 > -> <A HREF="../base-4.2.0.2/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 > -> <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 > -> <A HREF="../base-4.2.0.2/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 > -> <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 > -> <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 > -> <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 > -> [<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 > -> <A HREF="../base-4.2.0.2/Data-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 > -> <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 > -> <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 > -> <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 > -> <A HREF="CoreSyn.html#t%3AUnfolding" >Unfolding</A > -> <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 > -> <A HREF="BasicTypes.html#t%3AArity" >Arity</A > -> <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 > -> <A HREF="NewDemand.html#t%3ADemand" >Demand</A > -> <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 > -> <A HREF="NewDemand.html#t%3AStrictSig" >StrictSig</A > -> <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 > -> <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 > -> <A HREF="IdInfo.html#t%3AWorkerInfo" >WorkerInfo</A > -> <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 > -> <A HREF="IdInfo.html#t%3ASpecInfo" >SpecInfo</A > -> <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 > -> <A HREF="IdInfo.html#t%3ACafInfo" >CafInfo</A > -> <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 > -> <A HREF="BasicTypes.html#t%3AOccInfo" >OccInfo</A > -> <A HREF="Id.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:zapIdOccInfo" ><A NAME="v%3AzapIdOccInfo" ></A ></A ><B >zapIdOccInfo</B > :: <A HREF="Id.html#t%3AId" >Id</A > -> <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.6.1</TD ></TR ></TABLE ></BODY ></HTML >