<!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 >SimplMonad</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_SimplMonad.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="src/SimplMonad.html" >Source code</A ></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" >SimplMonad</FONT ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></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" >data</SPAN > <A HREF="#t%3ASimplM" >SimplM</A > result</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinitSmpl" >initSmpl</A > :: <A HREF="DynFlags.html#t%3ADynFlags" >DynFlags</A > -> <A HREF="Rules.html#t%3ARuleBase" >RuleBase</A > -> (<A HREF="FamInstEnv.html#t%3AFamInstEnv" >FamInstEnv</A >, <A HREF="FamInstEnv.html#t%3AFamInstEnv" >FamInstEnv</A >) -> <A HREF="UniqSupply.html#t%3AUniqSupply" >UniqSupply</A > -> <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > a -> (a, <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetDOptsSmpl" >getDOptsSmpl</A > :: <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > <A HREF="DynFlags.html#t%3ADynFlags" >DynFlags</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetSimplRules" >getSimplRules</A > :: <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > <A HREF="Rules.html#t%3ARuleBase" >RuleBase</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetFamEnvs" >getFamEnvs</A > :: <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > (<A HREF="FamInstEnv.html#t%3AFamInstEnv" >FamInstEnv</A >, <A HREF="FamInstEnv.html#t%3AFamInstEnv" >FamInstEnv</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > m => <A HREF="#t%3AMonadUnique" >MonadUnique</A > m <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetUniqueSupplyM" >getUniqueSupplyM</A > :: m <A HREF="UniqSupply.html#t%3AUniqSupply" >UniqSupply</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetUniqueM" >getUniqueM</A > :: m <A HREF="Unique.html#t%3AUnique" >Unique</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetUniquesM" >getUniquesM</A > :: m [<A HREF="Unique.html#t%3AUnique" >Unique</A >]</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewId" >newId</A > :: <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ASimplCount" >SimplCount</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ATick" >Tick</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3APreInlineUnconditionally" >PreInlineUnconditionally</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3APostInlineUnconditionally" >PostInlineUnconditionally</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AUnfoldingDone" >UnfoldingDone</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ARuleFired" >RuleFired</A > <A HREF="FastString.html#t%3AFastString" >FastString</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ALetFloatFromLet" >LetFloatFromLet</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AEtaExpansion" >EtaExpansion</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AEtaReduction" >EtaReduction</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ABetaReduction" >BetaReduction</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACaseOfCase" >CaseOfCase</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AKnownBranch" >KnownBranch</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACaseMerge" >CaseMerge</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AAltMerge" >AltMerge</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACaseElim" >CaseElim</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACaseIdentity" >CaseIdentity</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AFillInCaseDefault" >FillInCaseDefault</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ABottomFound" >BottomFound</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ASimplifierDone" >SimplifierDone</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Atick" >tick</A > :: <A HREF="SimplMonad.html#t%3ATick" >Tick</A > -> <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfreeTick" >freeTick</A > :: <A HREF="SimplMonad.html#t%3ATick" >Tick</A > -> <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetSimplCount" >getSimplCount</A > :: <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AzeroSimplCount" >zeroSimplCount</A > :: <A HREF="DynFlags.html#t%3ADynFlags" >DynFlags</A > -> <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApprSimplCount" >pprSimplCount</A > :: <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A > -> <A HREF="Outputable.html#t%3ASDoc" >SDoc</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AplusSimplCount" >plusSimplCount</A > :: <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A > -> <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A > -> <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisZeroSimplCount" >isZeroSimplCount</A > :: <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</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" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ASwitchChecker" >SwitchChecker</A > = <A HREF="DynFlags.html#t%3ASimplifierSwitch" >SimplifierSwitch</A > -> <A HREF="SimplMonad.html#t%3ASwitchResult" >SwitchResult</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ASwitchResult" >SwitchResult</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ASwBool" >SwBool</A > <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ASwString" >SwString</A > <A HREF="FastString.html#t%3AFastString" >FastString</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ASwInt" >SwInt</A > <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetSimplIntSwitch" >getSimplIntSwitch</A > :: <A HREF="SimplMonad.html#t%3ASwitchChecker" >SwitchChecker</A > -> (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="DynFlags.html#t%3ASimplifierSwitch" >SimplifierSwitch</A >) -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AisAmongSimpl" >isAmongSimpl</A > :: [<A HREF="DynFlags.html#t%3ASimplifierSwitch" >SimplifierSwitch</A >] -> <A HREF="DynFlags.html#t%3ASimplifierSwitch" >SimplifierSwitch</A > -> <A HREF="SimplMonad.html#t%3ASwitchResult" >SwitchResult</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AintSwitchSet" >intSwitchSet</A > :: (switch -> <A HREF="SimplMonad.html#t%3ASwitchResult" >SwitchResult</A >) -> (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> switch) -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AswitchIsOn" >switchIsOn</A > :: (switch -> <A HREF="SimplMonad.html#t%3ASwitchResult" >SwitchResult</A >) -> switch -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:SimplM" ><A NAME="t%3ASimplM" ></A ></A ><B >SimplM</B > result </TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#SimplM" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SimplM')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:SimplM" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="SimplMonad.html#t%3AMonadUnique" >MonadUnique</A > <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:initSmpl" ><A NAME="v%3AinitSmpl" ></A ></A ><B >initSmpl</B > :: <A HREF="DynFlags.html#t%3ADynFlags" >DynFlags</A > -> <A HREF="Rules.html#t%3ARuleBase" >RuleBase</A > -> (<A HREF="FamInstEnv.html#t%3AFamInstEnv" >FamInstEnv</A >, <A HREF="FamInstEnv.html#t%3AFamInstEnv" >FamInstEnv</A >) -> <A HREF="UniqSupply.html#t%3AUniqSupply" >UniqSupply</A > -> <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > a -> (a, <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A >)</TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#initSmpl" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:getDOptsSmpl" ><A NAME="v%3AgetDOptsSmpl" ></A ></A ><B >getDOptsSmpl</B > :: <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > <A HREF="DynFlags.html#t%3ADynFlags" >DynFlags</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#getDOptsSmpl" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:getSimplRules" ><A NAME="v%3AgetSimplRules" ></A ></A ><B >getSimplRules</B > :: <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > <A HREF="Rules.html#t%3ARuleBase" >RuleBase</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#getSimplRules" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:getFamEnvs" ><A NAME="v%3AgetFamEnvs" ></A ></A ><B >getFamEnvs</B > :: <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > (<A HREF="FamInstEnv.html#t%3AFamInstEnv" >FamInstEnv</A >, <A HREF="FamInstEnv.html#t%3AFamInstEnv" >FamInstEnv</A >)</TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#getFamEnvs" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > m => <A NAME="t:MonadUnique" ><A NAME="t%3AMonadUnique" ></A ></A ><B >MonadUnique</B > m <SPAN CLASS="keyword" >where</SPAN ></TD ><TD CLASS="declbut" ><A HREF="src/UniqSupply.html#MonadUnique" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >A monad for generating unique identifiers </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:getUniqueSupplyM" ><A NAME="v%3AgetUniqueSupplyM" ></A ></A ><B >getUniqueSupplyM</B > :: m <A HREF="UniqSupply.html#t%3AUniqSupply" >UniqSupply</A ></TD ><TD CLASS="declbut" ><A HREF="src/UniqSupply.html#getUniqueSupplyM" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Get a new UniqueSupply </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:getUniqueM" ><A NAME="v%3AgetUniqueM" ></A ></A ><B >getUniqueM</B > :: m <A HREF="Unique.html#t%3AUnique" >Unique</A ></TD ><TD CLASS="declbut" ><A HREF="src/UniqSupply.html#getUniqueM" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Get a new unique identifier </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:getUniquesM" ><A NAME="v%3AgetUniquesM" ></A ></A ><B >getUniquesM</B > :: m [<A HREF="Unique.html#t%3AUnique" >Unique</A >]</TD ><TD CLASS="declbut" ><A HREF="src/UniqSupply.html#getUniquesM" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Get an infinite list of new unique identifiers </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:MonadUnique')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:MonadUnique" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="SimplMonad.html#t%3AMonadUnique" >MonadUnique</A > <A HREF="UniqSupply.html#t%3AUniqSM" >UniqSM</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="SimplMonad.html#t%3AMonadUnique" >MonadUnique</A > <A HREF="OptimizationFuel.html#t%3AFuelMonad" >FuelMonad</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="SimplMonad.html#t%3AMonadUnique" >MonadUnique</A > <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="SimplMonad.html#t%3AMonadUnique" >MonadUnique</A > <A HREF="CoreMonad.html#t%3ACoreM" >CoreM</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="SimplMonad.html#t%3AMonadUnique" >MonadUnique</A > (<A HREF="IOEnv.html#t%3AIOEnv" >IOEnv</A > (<A HREF="TcRnTypes.html#t%3AEnv" >Env</A > gbl lcl))</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="SimplMonad.html#t%3AMonadUnique" >MonadUnique</A > (DFM' <A HREF="OptimizationFuel.html#t%3AFuelMonad" >FuelMonad</A > f)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:newId" ><A NAME="v%3AnewId" ></A ></A ><B >newId</B > :: <A HREF="FastString.html#t%3AFastString" >FastString</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#newId" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:SimplCount" ><A NAME="t%3ASimplCount" ></A ></A ><B >SimplCount</B > </TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#SimplCount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:Tick" ><A NAME="t%3ATick" ></A ></A ><B >Tick</B > </TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#Tick" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:PreInlineUnconditionally" ><A NAME="v%3APreInlineUnconditionally" ></A ></A ><B >PreInlineUnconditionally</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:PostInlineUnconditionally" ><A NAME="v%3APostInlineUnconditionally" ></A ></A ><B >PostInlineUnconditionally</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:UnfoldingDone" ><A NAME="v%3AUnfoldingDone" ></A ></A ><B >UnfoldingDone</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:RuleFired" ><A NAME="v%3ARuleFired" ></A ></A ><B >RuleFired</B > <A HREF="FastString.html#t%3AFastString" >FastString</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:LetFloatFromLet" ><A NAME="v%3ALetFloatFromLet" ></A ></A ><B >LetFloatFromLet</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:EtaExpansion" ><A NAME="v%3AEtaExpansion" ></A ></A ><B >EtaExpansion</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:EtaReduction" ><A NAME="v%3AEtaReduction" ></A ></A ><B >EtaReduction</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:BetaReduction" ><A NAME="v%3ABetaReduction" ></A ></A ><B >BetaReduction</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CaseOfCase" ><A NAME="v%3ACaseOfCase" ></A ></A ><B >CaseOfCase</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:KnownBranch" ><A NAME="v%3AKnownBranch" ></A ></A ><B >KnownBranch</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CaseMerge" ><A NAME="v%3ACaseMerge" ></A ></A ><B >CaseMerge</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:AltMerge" ><A NAME="v%3AAltMerge" ></A ></A ><B >AltMerge</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CaseElim" ><A NAME="v%3ACaseElim" ></A ></A ><B >CaseElim</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CaseIdentity" ><A NAME="v%3ACaseIdentity" ></A ></A ><B >CaseIdentity</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:FillInCaseDefault" ><A NAME="v%3AFillInCaseDefault" ></A ></A ><B >FillInCaseDefault</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:BottomFound" ><A NAME="v%3ABottomFound" ></A ></A ><B >BottomFound</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:SimplifierDone" ><A NAME="v%3ASimplifierDone" ></A ></A ><B >SimplifierDone</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Tick')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Tick" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Eq.html#t%3AEq" >Eq</A > <A HREF="SimplMonad.html#t%3ATick" >Tick</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Ord.html#t%3AOrd" >Ord</A > <A HREF="SimplMonad.html#t%3ATick" >Tick</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="SimplMonad.html#t%3ATick" >Tick</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:tick" ><A NAME="v%3Atick" ></A ></A ><B >tick</B > :: <A HREF="SimplMonad.html#t%3ATick" >Tick</A > -> <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#tick" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:freeTick" ><A NAME="v%3AfreeTick" ></A ></A ><B >freeTick</B > :: <A HREF="SimplMonad.html#t%3ATick" >Tick</A > -> <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#freeTick" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:getSimplCount" ><A NAME="v%3AgetSimplCount" ></A ></A ><B >getSimplCount</B > :: <A HREF="SimplMonad.html#t%3ASimplM" >SimplM</A > <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#getSimplCount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:zeroSimplCount" ><A NAME="v%3AzeroSimplCount" ></A ></A ><B >zeroSimplCount</B > :: <A HREF="DynFlags.html#t%3ADynFlags" >DynFlags</A > -> <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#zeroSimplCount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:pprSimplCount" ><A NAME="v%3ApprSimplCount" ></A ></A ><B >pprSimplCount</B > :: <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A > -> <A HREF="Outputable.html#t%3ASDoc" >SDoc</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#pprSimplCount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:plusSimplCount" ><A NAME="v%3AplusSimplCount" ></A ></A ><B >plusSimplCount</B > :: <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A > -> <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A > -> <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#plusSimplCount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:isZeroSimplCount" ><A NAME="v%3AisZeroSimplCount" ></A ></A ><B >isZeroSimplCount</B > :: <A HREF="SimplMonad.html#t%3ASimplCount" >SimplCount</A > -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#isZeroSimplCount" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:SwitchChecker" ><A NAME="t%3ASwitchChecker" ></A ></A ><B >SwitchChecker</B > = <A HREF="DynFlags.html#t%3ASimplifierSwitch" >SimplifierSwitch</A > -> <A HREF="SimplMonad.html#t%3ASwitchResult" >SwitchResult</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#SwitchChecker" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:SwitchResult" ><A NAME="t%3ASwitchResult" ></A ></A ><B >SwitchResult</B > </TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#SwitchResult" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:SwBool" ><A NAME="v%3ASwBool" ></A ></A ><B >SwBool</B > <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:SwString" ><A NAME="v%3ASwString" ></A ></A ><B >SwString</B > <A HREF="FastString.html#t%3AFastString" >FastString</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:SwInt" ><A NAME="v%3ASwInt" ></A ></A ><B >SwInt</B > <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:getSimplIntSwitch" ><A NAME="v%3AgetSimplIntSwitch" ></A ></A ><B >getSimplIntSwitch</B > :: <A HREF="SimplMonad.html#t%3ASwitchChecker" >SwitchChecker</A > -> (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> <A HREF="DynFlags.html#t%3ASimplifierSwitch" >SimplifierSwitch</A >) -> <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#getSimplIntSwitch" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:isAmongSimpl" ><A NAME="v%3AisAmongSimpl" ></A ></A ><B >isAmongSimpl</B > :: [<A HREF="DynFlags.html#t%3ASimplifierSwitch" >SimplifierSwitch</A >] -> <A HREF="DynFlags.html#t%3ASimplifierSwitch" >SimplifierSwitch</A > -> <A HREF="SimplMonad.html#t%3ASwitchResult" >SwitchResult</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#isAmongSimpl" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:intSwitchSet" ><A NAME="v%3AintSwitchSet" ></A ></A ><B >intSwitchSet</B > :: (switch -> <A HREF="SimplMonad.html#t%3ASwitchResult" >SwitchResult</A >) -> (<A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> switch) -> <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="../base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#intSwitchSet" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:switchIsOn" ><A NAME="v%3AswitchIsOn" ></A ></A ><B >switchIsOn</B > :: (switch -> <A HREF="SimplMonad.html#t%3ASwitchResult" >SwitchResult</A >) -> switch -> <A HREF="../base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/SimplMonad.html#switchIsOn" >Source</A ></TD ></TR ></TABLE ></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 >