<!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 >DsMonad</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_DsMonad.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" >DsMonad</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" >type</SPAN > <A HREF="#t%3ADsM" >DsM</A > result = <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > DsGblEnv DsLclEnv result</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmapM" >mapM</A > :: <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > m => (a -> m b) -> [a] -> m [b]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmapAndUnzipM" >mapAndUnzipM</A > :: <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > m => (a -> m (b, c)) -> [a] -> m ([b], [c])</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinitDs" >initDs</A > :: <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="Module.html#t%3AModule" >Module</A > -> <A HREF="RdrName.html#t%3AGlobalRdrEnv" >GlobalRdrEnv</A > -> <A HREF="HscTypes.html#t%3ATypeEnv" >TypeEnv</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > (<A HREF="ErrUtils.html#t%3AMessages" >Messages</A >, <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > a)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinitDsTc" >initDsTc</A > :: <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfixDs" >fixDs</A > :: (a -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a) -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfoldlM" >foldlM</A > :: <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > m => (a -> b -> m a) -> a -> [b] -> m a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AfoldrM" >foldrM</A > :: <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > m => (b -> a -> m a) -> a -> [b] -> m a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AifOptM" >ifOptM</A > :: <A HREF="DynFlags.html#t%3ADynFlag" >DynFlag</A > -> <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > gbl lcl <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A > -> <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > gbl lcl <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" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor" >Functor</A > f => <A HREF="#t%3AApplicative" >Applicative</A > f <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%3Apure" >pure</A > :: a -> f a</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%3C%2A%3E" >(<*>)</A > :: f (a -> b) -> f a -> f b</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%2A%3E" >(*>)</A > :: f a -> f b -> f b</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%3C%2A" >(<*)</A > :: f a -> f b -> f a</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%3C%24%3E" >(<$>)</A > :: <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor" >Functor</A > f => (a -> b) -> f a -> f b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewLocalName" >newLocalName</A > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > gbl lcl <A HREF="Name.html#t%3AName" >Name</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AduplicateLocalDs" >duplicateLocalDs</A > :: <A HREF="Var.html#t%3AId" >Id</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewSysLocalDs" >newSysLocalDs</A > :: <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewSysLocalsDs" >newSysLocalsDs</A > :: [<A HREF="Type.html#t%3AType" >Type</A >] -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > [<A HREF="Var.html#t%3AId" >Id</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewUniqueId" >newUniqueId</A > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewFailLocalDs" >newFailLocalDs</A > :: <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewPredVarDs" >newPredVarDs</A > :: <A HREF="Type.html#t%3APredType" >PredType</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Var.html#t%3AVar" >Var</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetSrcSpanDs" >getSrcSpanDs</A > :: <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AputSrcSpanDs" >putSrcSpanDs</A > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetModuleDs" >getModuleDs</A > :: <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Module.html#t%3AModule" >Module</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewUnique" >newUnique</A > :: <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > gbl lcl <A HREF="Unique.html#t%3AUnique" >Unique</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AUniqSupply" >UniqSupply</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnewUniqueSupply" >newUniqueSupply</A > :: <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > gbl lcl <A HREF="DsMonad.html#t%3AUniqSupply" >UniqSupply</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetDOptsDs" >getDOptsDs</A > :: <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="DynFlags.html#t%3ADynFlags" >DynFlags</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgetGhcModeDs" >getGhcModeDs</A > :: <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="DynFlags.html#t%3AGhcMode" >GhcMode</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdoptDs" >doptDs</A > :: <A HREF="DynFlags.html#t%3ADynFlag" >DynFlag</A > -> <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > gbl lcl <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%3AdsLookupGlobal" >dsLookupGlobal</A > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Type.html#t%3ATyThing" >TyThing</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdsLookupGlobalId" >dsLookupGlobalId</A > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdsLookupTyCon" >dsLookupTyCon</A > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="TyCon.html#t%3ATyCon" >TyCon</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdsLookupDataCon" >dsLookupDataCon</A > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="DataCon.html#t%3ADataCon" >DataCon</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdsLookupClass" >dsLookupClass</A > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Class.html#t%3AClass" >Class</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ADsMetaEnv" >DsMetaEnv</A > = <A HREF="NameEnv.html#t%3ANameEnv" >NameEnv</A > <A HREF="DsMonad.html#t%3ADsMetaVal" >DsMetaVal</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%3ADsMetaVal" >DsMetaVal</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ABound" >Bound</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ASplice" >Splice</A > (<A HREF="HsExpr.html#t%3AHsExpr" >HsExpr</A > <A HREF="Var.html#t%3AId" >Id</A >)</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdsLookupMetaEnv" >dsLookupMetaEnv</A > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="DsMonad.html#t%3ADsMetaVal" >DsMetaVal</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdsExtendMetaEnv" >dsExtendMetaEnv</A > :: <A HREF="DsMonad.html#t%3ADsMetaEnv" >DsMetaEnv</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ADsWarning" >DsWarning</A > = (<A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A >, <A HREF="Outputable.html#t%3ASDoc" >SDoc</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AwarnDs" >warnDs</A > :: <A HREF="Outputable.html#t%3ASDoc" >SDoc</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</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%3AfailWithDs" >failWithDs</A > :: <A HREF="Outputable.html#t%3ASDoc" >SDoc</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > 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%3ADsMatchContext" >DsMatchContext</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ADsMatchContext" >DsMatchContext</A > (<A HREF="HsExpr.html#t%3AHsMatchContext" >HsMatchContext</A > <A HREF="Name.html#t%3AName" >Name</A >) <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ANoMatchContext" >NoMatchContext</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AEquationInfo" >EquationInfo</A > = <A HREF="#v%3AEqnInfo" >EqnInfo</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3Aeqn_pats" >eqn_pats</A > :: [<A HREF="HsPat.html#t%3APat" >Pat</A > <A HREF="Var.html#t%3AId" >Id</A >]</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Aeqn_rhs" >eqn_rhs</A > :: <A HREF="DsMonad.html#t%3AMatchResult" >MatchResult</A ></TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AMatchResult" >MatchResult</A > = <A HREF="#v%3AMatchResult" >MatchResult</A > <A HREF="DsMonad.html#t%3ACanItFail" >CanItFail</A > (<A HREF="CoreSyn.html#t%3ACoreExpr" >CoreExpr</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="CoreSyn.html#t%3ACoreExpr" >CoreExpr</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3ADsWrapper" >DsWrapper</A > = <A HREF="CoreSyn.html#t%3ACoreExpr" >CoreExpr</A > -> <A HREF="CoreSyn.html#t%3ACoreExpr" >CoreExpr</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AidDsWrapper" >idDsWrapper</A > :: <A HREF="DsMonad.html#t%3ADsWrapper" >DsWrapper</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%3ACanItFail" >CanItFail</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ACanFail" >CanFail</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ACantFail" >CantFail</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AorFail" >orFail</A > :: <A HREF="DsMonad.html#t%3ACanItFail" >CanItFail</A > -> <A HREF="DsMonad.html#t%3ACanItFail" >CanItFail</A > -> <A HREF="DsMonad.html#t%3ACanItFail" >CanItFail</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="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:DsM" ><A NAME="t%3ADsM" ></A ></A ><B >DsM</B > result = <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > DsGblEnv DsLclEnv result</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mapM" ><A NAME="v%3AmapM" ></A ></A ><B >mapM</B > :: <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > m => (a -> m b) -> [a] -> m [b]</TD ></TR ><TR ><TD CLASS="doc" ><TT ><TT ><A HREF="DsMonad.html#v%3AmapM" >mapM</A ></TT > f</TT > is equivalent to <TT ><TT ><A HREF="../base-4.2.0.2/Control-Monad.html#v%3Asequence" >sequence</A ></TT > . <TT ><A HREF="../base-4.2.0.2/Data-List.html#v%3Amap" >map</A ></TT > f</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:mapAndUnzipM" ><A NAME="v%3AmapAndUnzipM" ></A ></A ><B >mapAndUnzipM</B > :: <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > m => (a -> m (b, c)) -> [a] -> m ([b], [c])</TD ></TR ><TR ><TD CLASS="doc" >The <TT ><A HREF="DsMonad.html#v%3AmapAndUnzipM" >mapAndUnzipM</A ></TT > function maps its first argument over a list, returning the result as a pair of lists. This function is mainly used with complicated data structures or a state-transforming monad. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:initDs" ><A NAME="v%3AinitDs" ></A ></A ><B >initDs</B > :: <A HREF="HscTypes.html#t%3AHscEnv" >HscEnv</A > -> <A HREF="Module.html#t%3AModule" >Module</A > -> <A HREF="RdrName.html#t%3AGlobalRdrEnv" >GlobalRdrEnv</A > -> <A HREF="HscTypes.html#t%3ATypeEnv" >TypeEnv</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a -> <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO" >IO</A > (<A HREF="ErrUtils.html#t%3AMessages" >Messages</A >, <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > a)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:initDsTc" ><A NAME="v%3AinitDsTc" ></A ></A ><B >initDsTc</B > :: <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a -> <A HREF="TcRnTypes.html#t%3ATcM" >TcM</A > a</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:fixDs" ><A NAME="v%3AfixDs" ></A ></A ><B >fixDs</B > :: (a -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a) -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:foldlM" ><A NAME="v%3AfoldlM" ></A ></A ><B >foldlM</B > :: <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > m => (a -> b -> m a) -> a -> [b] -> m a</TD ></TR ><TR ><TD CLASS="doc" >Monadic version of foldl </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:foldrM" ><A NAME="v%3AfoldrM" ></A ></A ><B >foldrM</B > :: <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > m => (b -> a -> m a) -> a -> [b] -> m a</TD ></TR ><TR ><TD CLASS="doc" >Monadic version of foldr </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:ifOptM" ><A NAME="v%3AifOptM" ></A ></A ><B >ifOptM</B > :: <A HREF="DynFlags.html#t%3ADynFlag" >DynFlag</A > -> <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > gbl lcl <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A > -> <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > gbl lcl <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="doc" >Do it flag is true </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor" >Functor</A > f => <A NAME="t:Applicative" ><A NAME="t%3AApplicative" ></A ></A ><B >Applicative</B > f <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" ><P >A functor with application. </P ><P >Instances should satisfy the following laws: </P ><DL ><DT ><EM >identity</EM ></DT ><DD > <TT ><TT ><A HREF="DsMonad.html#v%3Apure" >pure</A ></TT > <TT ><A HREF="../base-4.2.0.2/Control-Category.html#v%3Aid" >id</A ></TT > <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > v = v</TT > </DD ><DT ><EM >composition</EM ></DT ><DD > <TT ><TT ><A HREF="DsMonad.html#v%3Apure" >pure</A ></TT > (.) <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > u <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > v <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > w = u <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > (v <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > w)</TT > </DD ><DT ><EM >homomorphism</EM ></DT ><DD > <TT ><TT ><A HREF="DsMonad.html#v%3Apure" >pure</A ></TT > f <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > <TT ><A HREF="DsMonad.html#v%3Apure" >pure</A ></TT > x = <TT ><A HREF="DsMonad.html#v%3Apure" >pure</A ></TT > (f x)</TT > </DD ><DT ><EM >interchange</EM ></DT ><DD > <TT >u <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > <TT ><A HREF="DsMonad.html#v%3Apure" >pure</A ></TT > y = <TT ><A HREF="DsMonad.html#v%3Apure" >pure</A ></TT > (<TT ><A HREF="../base-4.2.0.2/Prelude.html#v%3A%24" >$</A ></TT > y) <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > u</TT > </DD ><DT ><EM >ignore left value</EM ></DT ><DD > <TT >u <TT ><A HREF="DsMonad.html#v%3A%2A%3E" >*></A ></TT > v = <TT ><A HREF="DsMonad.html#v%3Apure" >pure</A ></TT > (<TT ><A HREF="../base-4.2.0.2/Prelude.html#v%3Aconst" >const</A ></TT > <TT ><A HREF="../base-4.2.0.2/Control-Category.html#v%3Aid" >id</A ></TT >) <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > u <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > v</TT > </DD ><DT ><EM >ignore right value</EM ></DT ><DD > <TT >u <TT ><A HREF="DsMonad.html#v%3A%3C%2A" ><*</A ></TT > v = <TT ><A HREF="DsMonad.html#v%3Apure" >pure</A ></TT > <TT ><A HREF="../base-4.2.0.2/Prelude.html#v%3Aconst" >const</A ></TT > <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > u <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > v</TT > </DD ></DL ><P >The <TT ><A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor" >Functor</A ></TT > instance should satisfy </P ><TT > <TT ><A HREF="../base-4.2.0.2/Control-Monad.html#v%3Afmap" >fmap</A ></TT > f x = <TT ><A HREF="DsMonad.html#v%3Apure" >pure</A ></TT > f <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT > x </TT ><P >If <TT >f</TT > is also a <TT ><A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A ></TT >, define <TT ><TT ><A HREF="DsMonad.html#v%3Apure" >pure</A ></TT > = <TT ><A HREF="../base-4.2.0.2/Control-Monad.html#v%3Areturn" >return</A ></TT ></TT > and <TT >(<TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT >) = <TT ><A HREF="../base-4.2.0.2/Control-Monad.html#v%3Aap" >ap</A ></TT ></TT >. </P ><P >Minimal complete definition: <TT ><A HREF="DsMonad.html#v%3Apure" >pure</A ></TT > and <TT ><A HREF="DsMonad.html#v%3A%3C%2A%3E" ><*></A ></TT >. </P ></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="decl" ><A NAME="v:pure" ><A NAME="v%3Apure" ></A ></A ><B >pure</B > :: a -> f a</TD ></TR ><TR ><TD CLASS="doc" >Lift a value. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:<*>" ><A NAME="v%3A%3C%2A%3E" ></A ></A ><B >(<*>)</B > :: f (a -> b) -> f a -> f b</TD ></TR ><TR ><TD CLASS="doc" >Sequential application. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:*>" ><A NAME="v%3A%2A%3E" ></A ></A ><B >(*>)</B > :: f a -> f b -> f b</TD ></TR ><TR ><TD CLASS="doc" >Sequence actions, discarding the value of the first argument. </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:<*" ><A NAME="v%3A%3C%2A" ></A ></A ><B >(<*)</B > :: f a -> f b -> f a</TD ></TR ><TR ><TD CLASS="doc" >Sequence actions, discarding the value of the second argument. </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:Applicative')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Applicative" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > []</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > <A HREF="../base-4.2.0.2/System-IO.html#t%3AIO" >IO</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > <A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > <A HREF="../base-4.2.0.2/Control-Applicative.html#t%3AZipList" >ZipList</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > Id</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > <A HREF="UniqSupply.html#t%3AUniqSM" >UniqSM</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > <A HREF="CoreMonad.html#t%3ACoreM" >CoreM</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > ((->) a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Monoid.html#t%3AMonoid" >Monoid</A > a => <A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > (<A HREF="../ghc-prim-0.2.0.0/GHC-Tuple.html#t%3A%28%2C%29" >(,)</A > a)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Data-Monoid.html#t%3AMonoid" >Monoid</A > m => <A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > (<A HREF="../base-4.2.0.2/Control-Applicative.html#t%3AConst" >Const</A > m)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Control-Monad.html#t%3AMonad" >Monad</A > m => <A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > (<A HREF="../base-4.2.0.2/Control-Applicative.html#t%3AWrappedMonad" >WrappedMonad</A > m)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > (State s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > (<A HREF="State.html#t%3AState" >State</A > s)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > (<A HREF="IOEnv.html#t%3AIOEnv" >IOEnv</A > m)</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="../base-4.2.0.2/Control-Arrow.html#t%3AArrow" >Arrow</A > a => <A HREF="DsMonad.html#t%3AApplicative" >Applicative</A > (<A HREF="../base-4.2.0.2/Control-Applicative.html#t%3AWrappedArrow" >WrappedArrow</A > a b)</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:<$>" ><A NAME="v%3A%3C%24%3E" ></A ></A ><B >(<$>)</B > :: <A HREF="../base-4.2.0.2/Control-Monad.html#t%3AFunctor" >Functor</A > f => (a -> b) -> f a -> f b</TD ></TR ><TR ><TD CLASS="doc" >An infix synonym for <TT ><A HREF="../base-4.2.0.2/Control-Monad.html#v%3Afmap" >fmap</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newLocalName" ><A NAME="v%3AnewLocalName" ></A ></A ><B >newLocalName</B > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > gbl lcl <A HREF="Name.html#t%3AName" >Name</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:duplicateLocalDs" ><A NAME="v%3AduplicateLocalDs" ></A ></A ><B >duplicateLocalDs</B > :: <A HREF="Var.html#t%3AId" >Id</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newSysLocalDs" ><A NAME="v%3AnewSysLocalDs" ></A ></A ><B >newSysLocalDs</B > :: <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newSysLocalsDs" ><A NAME="v%3AnewSysLocalsDs" ></A ></A ><B >newSysLocalsDs</B > :: [<A HREF="Type.html#t%3AType" >Type</A >] -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > [<A HREF="Var.html#t%3AId" >Id</A >]</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newUniqueId" ><A NAME="v%3AnewUniqueId" ></A ></A ><B >newUniqueId</B > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newFailLocalDs" ><A NAME="v%3AnewFailLocalDs" ></A ></A ><B >newFailLocalDs</B > :: <A HREF="Type.html#t%3AType" >Type</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newPredVarDs" ><A NAME="v%3AnewPredVarDs" ></A ></A ><B >newPredVarDs</B > :: <A HREF="Type.html#t%3APredType" >PredType</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Var.html#t%3AVar" >Var</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getSrcSpanDs" ><A NAME="v%3AgetSrcSpanDs" ></A ></A ><B >getSrcSpanDs</B > :: <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:putSrcSpanDs" ><A NAME="v%3AputSrcSpanDs" ></A ></A ><B >putSrcSpanDs</B > :: <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getModuleDs" ><A NAME="v%3AgetModuleDs" ></A ></A ><B >getModuleDs</B > :: <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Module.html#t%3AModule" >Module</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newUnique" ><A NAME="v%3AnewUnique" ></A ></A ><B >newUnique</B > :: <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > gbl lcl <A HREF="Unique.html#t%3AUnique" >Unique</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:UniqSupply" ><A NAME="t%3AUniqSupply" ></A ></A ><B >UniqSupply</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >A value of type <TT ><A HREF="DsMonad.html#t%3AUniqSupply" >UniqSupply</A ></TT > is unique, and it can supply <EM >one</EM > distinct <TT ><A HREF="Unique.html#t%3AUnique" >Unique</A ></TT >. Also, from the supply, one can also manufacture an arbitrary number of further UniqueSupply values, which will be distinct from the first and from all others. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:newUniqueSupply" ><A NAME="v%3AnewUniqueSupply" ></A ></A ><B >newUniqueSupply</B > :: <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > gbl lcl <A HREF="DsMonad.html#t%3AUniqSupply" >UniqSupply</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getDOptsDs" ><A NAME="v%3AgetDOptsDs" ></A ></A ><B >getDOptsDs</B > :: <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="DynFlags.html#t%3ADynFlags" >DynFlags</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:getGhcModeDs" ><A NAME="v%3AgetGhcModeDs" ></A ></A ><B >getGhcModeDs</B > :: <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="DynFlags.html#t%3AGhcMode" >GhcMode</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:doptDs" ><A NAME="v%3AdoptDs" ></A ></A ><B >doptDs</B > :: <A HREF="DynFlags.html#t%3ADynFlag" >DynFlag</A > -> <A HREF="TcRnTypes.html#t%3ATcRnIf" >TcRnIf</A > gbl lcl <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:dsLookupGlobal" ><A NAME="v%3AdsLookupGlobal" ></A ></A ><B >dsLookupGlobal</B > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Type.html#t%3ATyThing" >TyThing</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:dsLookupGlobalId" ><A NAME="v%3AdsLookupGlobalId" ></A ></A ><B >dsLookupGlobalId</B > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Var.html#t%3AId" >Id</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:dsLookupTyCon" ><A NAME="v%3AdsLookupTyCon" ></A ></A ><B >dsLookupTyCon</B > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="TyCon.html#t%3ATyCon" >TyCon</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:dsLookupDataCon" ><A NAME="v%3AdsLookupDataCon" ></A ></A ><B >dsLookupDataCon</B > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="DataCon.html#t%3ADataCon" >DataCon</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:dsLookupClass" ><A NAME="v%3AdsLookupClass" ></A ></A ><B >dsLookupClass</B > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="Class.html#t%3AClass" >Class</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:DsMetaEnv" ><A NAME="t%3ADsMetaEnv" ></A ></A ><B >DsMetaEnv</B > = <A HREF="NameEnv.html#t%3ANameEnv" >NameEnv</A > <A HREF="DsMonad.html#t%3ADsMetaVal" >DsMetaVal</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:DsMetaVal" ><A NAME="t%3ADsMetaVal" ></A ></A ><B >DsMetaVal</B > </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:Bound" ><A NAME="v%3ABound" ></A ></A ><B >Bound</B > <A HREF="Var.html#t%3AId" >Id</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:Splice" ><A NAME="v%3ASplice" ></A ></A ><B >Splice</B > (<A HREF="HsExpr.html#t%3AHsExpr" >HsExpr</A > <A HREF="Var.html#t%3AId" >Id</A >)</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:dsLookupMetaEnv" ><A NAME="v%3AdsLookupMetaEnv" ></A ></A ><B >dsLookupMetaEnv</B > :: <A HREF="Name.html#t%3AName" >Name</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > (<A HREF="../base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > <A HREF="DsMonad.html#t%3ADsMetaVal" >DsMetaVal</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:dsExtendMetaEnv" ><A NAME="v%3AdsExtendMetaEnv" ></A ></A ><B >dsExtendMetaEnv</B > :: <A HREF="DsMonad.html#t%3ADsMetaEnv" >DsMetaEnv</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:DsWarning" ><A NAME="t%3ADsWarning" ></A ></A ><B >DsWarning</B > = (<A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A >, <A HREF="Outputable.html#t%3ASDoc" >SDoc</A >)</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:warnDs" ><A NAME="v%3AwarnDs" ></A ></A ><B >warnDs</B > :: <A HREF="Outputable.html#t%3ASDoc" >SDoc</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="../ghc-prim-0.2.0.0/GHC-Unit.html#t%3A%28%29" >()</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:failWithDs" ><A NAME="v%3AfailWithDs" ></A ></A ><B >failWithDs</B > :: <A HREF="Outputable.html#t%3ASDoc" >SDoc</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > a</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:DsMatchContext" ><A NAME="t%3ADsMatchContext" ></A ></A ><B >DsMatchContext</B > </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:DsMatchContext" ><A NAME="v%3ADsMatchContext" ></A ></A ><B >DsMatchContext</B > (<A HREF="HsExpr.html#t%3AHsMatchContext" >HsMatchContext</A > <A HREF="Name.html#t%3AName" >Name</A >) <A HREF="SrcLoc.html#t%3ASrcSpan" >SrcSpan</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:NoMatchContext" ><A NAME="v%3ANoMatchContext" ></A ></A ><B >NoMatchContext</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:EquationInfo" ><A NAME="t%3AEquationInfo" ></A ></A ><B >EquationInfo</B > </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="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:EqnInfo" ><A NAME="v%3AEqnInfo" ></A ></A ><B >EqnInfo</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v:eqn_pats" ><A NAME="v%3Aeqn_pats" ></A ></A ><B >eqn_pats</B > :: [<A HREF="HsPat.html#t%3APat" >Pat</A > <A HREF="Var.html#t%3AId" >Id</A >]</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:eqn_rhs" ><A NAME="v%3Aeqn_rhs" ></A ></A ><B >eqn_rhs</B > :: <A HREF="DsMonad.html#t%3AMatchResult" >MatchResult</A ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:EquationInfo')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:EquationInfo" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Outputable.html#t%3AOutputable" >Outputable</A > <A HREF="DsMonad.html#t%3AEquationInfo" >EquationInfo</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:MatchResult" ><A NAME="t%3AMatchResult" ></A ></A ><B >MatchResult</B > </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:MatchResult" ><A NAME="v%3AMatchResult" ></A ></A ><B >MatchResult</B > <A HREF="DsMonad.html#t%3ACanItFail" >CanItFail</A > (<A HREF="CoreSyn.html#t%3ACoreExpr" >CoreExpr</A > -> <A HREF="DsMonad.html#t%3ADsM" >DsM</A > <A HREF="CoreSyn.html#t%3ACoreExpr" >CoreExpr</A >)</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:DsWrapper" ><A NAME="t%3ADsWrapper" ></A ></A ><B >DsWrapper</B > = <A HREF="CoreSyn.html#t%3ACoreExpr" >CoreExpr</A > -> <A HREF="CoreSyn.html#t%3ACoreExpr" >CoreExpr</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:idDsWrapper" ><A NAME="v%3AidDsWrapper" ></A ></A ><B >idDsWrapper</B > :: <A HREF="DsMonad.html#t%3ADsWrapper" >DsWrapper</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:CanItFail" ><A NAME="t%3ACanItFail" ></A ></A ><B >CanItFail</B > </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:CanFail" ><A NAME="v%3ACanFail" ></A ></A ><B >CanFail</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v:CantFail" ><A NAME="v%3ACantFail" ></A ></A ><B >CantFail</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:orFail" ><A NAME="v%3AorFail" ></A ></A ><B >orFail</B > :: <A HREF="DsMonad.html#t%3ACanItFail" >CanItFail</A > -> <A HREF="DsMonad.html#t%3ACanItFail" >CanItFail</A > -> <A HREF="DsMonad.html#t%3ACanItFail" >CanItFail</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 >