Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 2863

ghc-7.4.2-4.mga5.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>DsMonad</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_DsMonad.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">ghc-7.4.2: The GHC API</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">DsMonad</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">type</span> <a href="#t:DsM">DsM</a> result = <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> DsGblEnv DsLclEnv result</li><li class="src short"><a href="#v:mapM">mapM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (a -&gt; m b) -&gt; [a] -&gt; m [b]</li><li class="src short"><a href="#v:mapAndUnzipM">mapAndUnzipM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (a -&gt; m (b, c)) -&gt; [a] -&gt; m ([b], [c])</li><li class="src short"><a href="#v:initDs">initDs</a> ::  <a href="HscTypes.html#t:HscEnv">HscEnv</a> -&gt; <a href="Module.html#t:Module">Module</a> -&gt; <a href="RdrName.html#t:GlobalRdrEnv">GlobalRdrEnv</a> -&gt; <a href="HscTypes.html#t:TypeEnv">TypeEnv</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> (<a href="ErrUtils.html#t:Messages">Messages</a>, <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:initDsTc">initDsTc</a> ::  <a href="DsMonad.html#t:DsM">DsM</a> a -&gt; <a href="TcRnTypes.html#t:TcM">TcM</a> a</li><li class="src short"><a href="#v:fixDs">fixDs</a> ::  (a -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a) -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a</li><li class="src short"><a href="#v:foldlM">foldlM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (a -&gt; b -&gt; m a) -&gt; a -&gt; [b] -&gt; m a</li><li class="src short"><a href="#v:foldrM">foldrM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (b -&gt; a -&gt; m a) -&gt; a -&gt; [b] -&gt; m a</li><li class="src short"><a href="#v:ifDOptM">ifDOptM</a> ::  <a href="DynFlags.html#t:DynFlag">DynFlag</a> -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl () -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl ()</li><li class="src short"><a href="#v:unsetDOptM">unsetDOptM</a> ::  <a href="DynFlags.html#t:DynFlag">DynFlag</a> -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl a -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl a</li><li class="src short"><a href="#v:unsetWOptM">unsetWOptM</a> ::  <a href="DynFlags.html#t:WarningFlag">WarningFlag</a> -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl a -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl a</li><li class="src short"><span class="keyword">class</span> <a href="../base-4.5.1.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a href="#t:Applicative">Applicative</a> f  <span class="keyword">where</span><ul class="subs"><li><a href="#v:pure">pure</a> ::  a -&gt; f a</li><li><a href="#v:-60--42--62-">(&lt;*&gt;)</a> ::  f (a -&gt; b) -&gt; f a -&gt; f b</li><li><a href="#v:-42--62-">(*&gt;)</a> ::  f a -&gt; f b -&gt; f b</li><li><a href="#v:-60--42-">(&lt;*)</a> ::  f a -&gt; f b -&gt; f a</li></ul></li><li class="src short"><a href="#v:-60--36--62-">(&lt;$&gt;)</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; (a -&gt; b) -&gt; f a -&gt; f b</li><li class="src short"><a href="#v:newLocalName">newLocalName</a> ::  <a href="Name.html#t:Name">Name</a> -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:duplicateLocalDs">duplicateLocalDs</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:newSysLocalDs">newSysLocalDs</a> :: <a href="Type.html#t:Type">Type</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:newSysLocalsDs">newSysLocalsDs</a> :: [<a href="Type.html#t:Type">Type</a>] -&gt; <a href="DsMonad.html#t:DsM">DsM</a> [<a href="Var.html#t:Id">Id</a>]</li><li class="src short"><a href="#v:newUniqueId">newUniqueId</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:newFailLocalDs">newFailLocalDs</a> :: <a href="Type.html#t:Type">Type</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:newPredVarDs">newPredVarDs</a> :: <a href="Type.html#t:PredType">PredType</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Var.html#t:Var">Var</a></li><li class="src short"><a href="#v:getSrcSpanDs">getSrcSpanDs</a> :: <a href="DsMonad.html#t:DsM">DsM</a> <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a></li><li class="src short"><a href="#v:putSrcSpanDs">putSrcSpanDs</a> ::  <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a</li><li class="src short"><a href="#v:getModuleDs">getModuleDs</a> :: <a href="DsMonad.html#t:DsM">DsM</a> <a href="Module.html#t:Module">Module</a></li><li class="src short"><a href="#v:mkPrintUnqualifiedDs">mkPrintUnqualifiedDs</a> :: <a href="DsMonad.html#t:DsM">DsM</a> <a href="Outputable.html#t:PrintUnqualified">PrintUnqualified</a></li><li class="src short"><a href="#v:newUnique">newUnique</a> ::  <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl <a href="Unique.html#t:Unique">Unique</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:UniqSupply">UniqSupply</a> </li><li class="src short"><a href="#v:newUniqueSupply">newUniqueSupply</a> ::  <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl <a href="DsMonad.html#t:UniqSupply">UniqSupply</a></li><li class="src short"><a href="#v:getDOptsDs">getDOptsDs</a> :: <a href="DsMonad.html#t:DsM">DsM</a> <a href="DynFlags.html#t:DynFlags">DynFlags</a></li><li class="src short"><a href="#v:getGhcModeDs">getGhcModeDs</a> :: <a href="DsMonad.html#t:DsM">DsM</a> <a href="DynFlags.html#t:GhcMode">GhcMode</a></li><li class="src short"><a href="#v:doptDs">doptDs</a> ::  <a href="DynFlags.html#t:DynFlag">DynFlag</a> -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:woptDs">woptDs</a> ::  <a href="DynFlags.html#t:WarningFlag">WarningFlag</a> -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:dsLookupGlobal">dsLookupGlobal</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Type.html#t:TyThing">TyThing</a></li><li class="src short"><a href="#v:dsLookupGlobalId">dsLookupGlobalId</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Var.html#t:Id">Id</a></li><li class="src short"><a href="#v:dsDPHBuiltin">dsDPHBuiltin</a> ::  (<a href="DsMonad.html#t:PArrBuiltin">PArrBuiltin</a> -&gt; a) -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a</li><li class="src short"><a href="#v:dsLookupTyCon">dsLookupTyCon</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="TyCon.html#t:TyCon">TyCon</a></li><li class="src short"><a href="#v:dsLookupDataCon">dsLookupDataCon</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="DataCon.html#t:DataCon">DataCon</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:PArrBuiltin">PArrBuiltin</a>  = <a href="#v:PArrBuiltin">PArrBuiltin</a> {<ul class="subs"><li><a href="#v:lengthPVar">lengthPVar</a> :: <a href="Var.html#t:Var">Var</a></li><li><a href="#v:replicatePVar">replicatePVar</a> :: <a href="Var.html#t:Var">Var</a></li><li><a href="#v:singletonPVar">singletonPVar</a> :: <a href="Var.html#t:Var">Var</a></li><li><a href="#v:mapPVar">mapPVar</a> :: <a href="Var.html#t:Var">Var</a></li><li><a href="#v:filterPVar">filterPVar</a> :: <a href="Var.html#t:Var">Var</a></li><li><a href="#v:zipPVar">zipPVar</a> :: <a href="Var.html#t:Var">Var</a></li><li><a href="#v:crossMapPVar">crossMapPVar</a> :: <a href="Var.html#t:Var">Var</a></li><li><a href="#v:indexPVar">indexPVar</a> :: <a href="Var.html#t:Var">Var</a></li><li><a href="#v:emptyPVar">emptyPVar</a> :: <a href="Var.html#t:Var">Var</a></li><li><a href="#v:appPVar">appPVar</a> :: <a href="Var.html#t:Var">Var</a></li><li><a href="#v:enumFromToPVar">enumFromToPVar</a> :: <a href="Var.html#t:Var">Var</a></li><li><a href="#v:enumFromThenToPVar">enumFromThenToPVar</a> :: <a href="Var.html#t:Var">Var</a></li></ul>}</li><li class="src short"><a href="#v:dsLookupDPHRdrEnv">dsLookupDPHRdrEnv</a> :: <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Name.html#t:Name">Name</a></li><li class="src short"><a href="#v:dsLookupDPHRdrEnv_maybe">dsLookupDPHRdrEnv_maybe</a> :: <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Name.html#t:Name">Name</a>)</li><li class="src short"><a href="#v:dsInitPArrBuiltin">dsInitPArrBuiltin</a> ::  <a href="DsMonad.html#t:DsM">DsM</a> a -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a</li><li class="src short"><span class="keyword">type</span> <a href="#t:DsMetaEnv">DsMetaEnv</a> = <a href="NameEnv.html#t:NameEnv">NameEnv</a> <a href="DsMonad.html#t:DsMetaVal">DsMetaVal</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:DsMetaVal">DsMetaVal</a> <ul class="subs"><li>= <a href="#v:Bound">Bound</a> <a href="Var.html#t:Id">Id</a>  </li><li>| <a href="#v:Splice">Splice</a> (<a href="HsExpr.html#t:HsExpr">HsExpr</a> <a href="Var.html#t:Id">Id</a>)  </li></ul></li><li class="src short"><a href="#v:dsLookupMetaEnv">dsLookupMetaEnv</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="DsMonad.html#t:DsMetaVal">DsMetaVal</a>)</li><li class="src short"><a href="#v:dsExtendMetaEnv">dsExtendMetaEnv</a> ::  <a href="DsMonad.html#t:DsMetaEnv">DsMetaEnv</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a</li><li class="src short"><span class="keyword">type</span> <a href="#t:DsWarning">DsWarning</a> = (<a href="SrcLoc.html#t:SrcSpan">SrcSpan</a>, <a href="Outputable.html#t:SDoc">SDoc</a>)</li><li class="src short"><a href="#v:warnDs">warnDs</a> :: <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> ()</li><li class="src short"><a href="#v:failWithDs">failWithDs</a> ::  <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a</li><li class="src short"><span class="keyword">data</span>  <a href="#t:DsMatchContext">DsMatchContext</a>  = <a href="#v:DsMatchContext">DsMatchContext</a> (<a href="HsExpr.html#t:HsMatchContext">HsMatchContext</a> <a href="Name.html#t:Name">Name</a>) <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:EquationInfo">EquationInfo</a>  = <a href="#v:EqnInfo">EqnInfo</a> {<ul class="subs"><li><a href="#v:eqn_pats">eqn_pats</a> :: [<a href="HsPat.html#t:Pat">Pat</a> <a href="Var.html#t:Id">Id</a>]</li><li><a href="#v:eqn_rhs">eqn_rhs</a> :: <a href="DsMonad.html#t:MatchResult">MatchResult</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:MatchResult">MatchResult</a>  = <a href="#v:MatchResult">MatchResult</a> <a href="DsMonad.html#t:CanItFail">CanItFail</a> (<a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:DsWrapper">DsWrapper</a> = <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></li><li class="src short"><a href="#v:idDsWrapper">idDsWrapper</a> :: <a href="DsMonad.html#t:DsWrapper">DsWrapper</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CanItFail">CanItFail</a> <ul class="subs"><li>= <a href="#v:CanFail">CanFail</a>  </li><li>| <a href="#v:CantFail">CantFail</a>  </li></ul></li><li class="src short"><a href="#v:orFail">orFail</a> :: <a href="DsMonad.html#t:CanItFail">CanItFail</a> -&gt; <a href="DsMonad.html#t:CanItFail">CanItFail</a> -&gt; <a href="DsMonad.html#t:CanItFail">CanItFail</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DsM" class="def">DsM</a> result = <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> DsGblEnv DsLclEnv result</p></div><div class="top"><p class="src"><a name="v:mapM" class="def">mapM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (a -&gt; m b) -&gt; [a] -&gt; m [b]<a href="../base-4.5.1.0/src/Control-Monad.html#mapM" class="link">Source</a></p><div class="doc"><p><code><code><a href="DsMonad.html#v:mapM">mapM</a></code> f</code> is equivalent to <code><code><a href="../base-4.5.1.0/Control-Monad.html#v:sequence">sequence</a></code> . <code><a href="../base-4.5.1.0/Data-List.html#v:map">map</a></code> f</code>.
</p></div></div><div class="top"><p class="src"><a name="v:mapAndUnzipM" class="def">mapAndUnzipM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (a -&gt; m (b, c)) -&gt; [a] -&gt; m ([b], [c])<a href="../base-4.5.1.0/src/Control-Monad.html#mapAndUnzipM" class="link">Source</a></p><div class="doc"><p>The <code><a href="DsMonad.html#v:mapAndUnzipM">mapAndUnzipM</a></code> 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.
</p></div></div><div class="top"><p class="src"><a name="v:initDs" class="def">initDs</a> ::  <a href="HscTypes.html#t:HscEnv">HscEnv</a> -&gt; <a href="Module.html#t:Module">Module</a> -&gt; <a href="RdrName.html#t:GlobalRdrEnv">GlobalRdrEnv</a> -&gt; <a href="HscTypes.html#t:TypeEnv">TypeEnv</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a -&gt; <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> (<a href="ErrUtils.html#t:Messages">Messages</a>, <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</p></div><div class="top"><p class="src"><a name="v:initDsTc" class="def">initDsTc</a> ::  <a href="DsMonad.html#t:DsM">DsM</a> a -&gt; <a href="TcRnTypes.html#t:TcM">TcM</a> a</p></div><div class="top"><p class="src"><a name="v:fixDs" class="def">fixDs</a> ::  (a -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a) -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a</p></div><div class="top"><p class="src"><a name="v:foldlM" class="def">foldlM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (a -&gt; b -&gt; m a) -&gt; a -&gt; [b] -&gt; m a</p><div class="doc"><p>Monadic version of foldl
</p></div></div><div class="top"><p class="src"><a name="v:foldrM" class="def">foldrM</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (b -&gt; a -&gt; m a) -&gt; a -&gt; [b] -&gt; m a</p><div class="doc"><p>Monadic version of foldr
</p></div></div><div class="top"><p class="src"><a name="v:ifDOptM" class="def">ifDOptM</a> ::  <a href="DynFlags.html#t:DynFlag">DynFlag</a> -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl () -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl ()</p><div class="doc"><p>Do it flag is true
</p></div></div><div class="top"><p class="src"><a name="v:unsetDOptM" class="def">unsetDOptM</a> ::  <a href="DynFlags.html#t:DynFlag">DynFlag</a> -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl a -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl a</p></div><div class="top"><p class="src"><a name="v:unsetWOptM" class="def">unsetWOptM</a> ::  <a href="DynFlags.html#t:WarningFlag">WarningFlag</a> -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl a -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl a</p></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="../base-4.5.1.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; <a name="t:Applicative" class="def">Applicative</a> f  <span class="keyword">where</span><a href="../base-4.5.1.0/src/Control-Applicative.html#Applicative" class="link">Source</a></p><div class="doc"><p>A functor with application, providing operations to
</p><ul><li> embed pure expressions (<code><a href="DsMonad.html#v:pure">pure</a></code>), and
</li><li> sequence computations and combine their results (<code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code>).
</li></ul><p>A minimal complete definition must include implementations of these
 functions satisfying the following laws:
</p><dl><dt><em>identity</em></dt><dd>
      <code><code><a href="DsMonad.html#v:pure">pure</a></code> <code><a href="../base-4.5.1.0/Control-Category.html#v:id">id</a></code> <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> v = v</code>
</dd><dt><em>composition</em></dt><dd>
      <code><code><a href="DsMonad.html#v:pure">pure</a></code> (.) <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> u <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> v <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> w = u <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> (v <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> w)</code>
</dd><dt><em>homomorphism</em></dt><dd>
      <code><code><a href="DsMonad.html#v:pure">pure</a></code> f <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> <code><a href="DsMonad.html#v:pure">pure</a></code> x = <code><a href="DsMonad.html#v:pure">pure</a></code> (f x)</code>
</dd><dt><em>interchange</em></dt><dd>
      <code>u <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> <code><a href="DsMonad.html#v:pure">pure</a></code> y = <code><a href="DsMonad.html#v:pure">pure</a></code> (<code><a href="../base-4.5.1.0/Prelude.html#v:-36-">$</a></code> y) <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> u</code>
</dd></dl><p>The other methods have the following default definitions, which may
 be overridden with equivalent specialized implementations:
</p><pre>
      u <code><a href="DsMonad.html#v:-42--62-">*&gt;</a></code> v = <code><a href="DsMonad.html#v:pure">pure</a></code> (<code><a href="../base-4.5.1.0/Prelude.html#v:const">const</a></code> <code><a href="../base-4.5.1.0/Control-Category.html#v:id">id</a></code>) <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> u <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> v
      u <code><a href="DsMonad.html#v:-60--42-">&lt;*</a></code> v = <code><a href="DsMonad.html#v:pure">pure</a></code> <code><a href="../base-4.5.1.0/Prelude.html#v:const">const</a></code> <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> u <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> v
</pre><p>As a consequence of these laws, the <code><a href="../base-4.5.1.0/Control-Monad.html#t:Functor">Functor</a></code> instance for <code>f</code> will satisfy
</p><pre>
      <code><a href="../base-4.5.1.0/Control-Monad.html#v:fmap">fmap</a></code> f x = <code><a href="DsMonad.html#v:pure">pure</a></code> f <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> x
</pre><p>If <code>f</code> is also a <code><a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a></code>, it should satisfy <code><code><a href="DsMonad.html#v:pure">pure</a></code> = <code><a href="../base-4.5.1.0/Control-Monad.html#v:return">return</a></code></code> and
 <code>(<code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code>) = <code><a href="../base-4.5.1.0/Control-Monad.html#v:ap">ap</a></code></code> (which implies that <code><a href="DsMonad.html#v:pure">pure</a></code> and <code><a href="DsMonad.html#v:-60--42--62-">&lt;*&gt;</a></code> satisfy the
 applicative functor laws).
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:pure" class="def">pure</a> ::  a -&gt; f a<a href="../base-4.5.1.0/src/Control-Applicative.html#pure" class="link">Source</a></p><div class="doc"><p>Lift a value.
</p></div><p class="src"><a name="v:-60--42--62-" class="def">(&lt;*&gt;)</a> ::  f (a -&gt; b) -&gt; f a -&gt; f b<a href="../base-4.5.1.0/src/Control-Applicative.html#%3C%2A%3E" class="link">Source</a></p><div class="doc"><p>Sequential application.
</p></div><p class="src"><a name="v:-42--62-" class="def">(*&gt;)</a> ::  f a -&gt; f b -&gt; f b<a href="../base-4.5.1.0/src/Control-Applicative.html#%2A%3E" class="link">Source</a></p><div class="doc"><p>Sequence actions, discarding the value of the first argument.
</p></div><p class="src"><a name="v:-60--42-" class="def">(&lt;*)</a> ::  f a -&gt; f b -&gt; f a<a href="../base-4.5.1.0/src/Control-Applicative.html#%3C%2A" class="link">Source</a></p><div class="doc"><p>Sequence actions, discarding the value of the second argument.
</p></div></div><div class="subs instances"><p id="control.i:Applicative" class="caption collapser" onclick="toggleSection('i:Applicative')">Instances</p><div id="section.i:Applicative" class="show"><table><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> []</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> <a href="../template-haskell-2.7.0.0/Language-Haskell-TH-Syntax.html#t:Q">Q</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> Id</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> <a href="../base-4.5.1.0/Control-Applicative.html#t:ZipList">ZipList</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> <a href="../base-4.5.1.0/GHC-Conc.html#t:STM">STM</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> Id</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> <a href="UniqSupply.html#t:UniqSM">UniqSM</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> <a href="Pair.html#t:Pair">Pair</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> <a href="Vectorise-Monad-Base.html#t:VM">VM</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> <a href="CoreMonad.html#t:CoreM">CoreM</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> ((-&gt;) a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> (<a href="../base-4.5.1.0/Data-Either.html#t:Either">Either</a> e)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Monoid.html#t:Monoid">Monoid</a> a =&gt; <a href="DsMonad.html#t:Applicative">Applicative</a> ((,) a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Safe.html#t:ST">ST</a> s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> (StateL s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> (StateR s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Monoid.html#t:Monoid">Monoid</a> m =&gt; <a href="DsMonad.html#t:Applicative">Applicative</a> (<a href="../base-4.5.1.0/Control-Applicative.html#t:Const">Const</a> m)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="DsMonad.html#t:Applicative">Applicative</a> (<a href="../base-4.5.1.0/Control-Applicative.html#t:WrappedMonad">WrappedMonad</a> m)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> (<a href="../base-4.5.1.0/Control-Monad-ST-Lazy-Safe.html#t:ST">ST</a> s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> (State s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> (<a href="State.html#t:State">State</a> s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="DsMonad.html#t:Applicative">Applicative</a> (<a href="IOEnv.html#t:IOEnv">IOEnv</a> m)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Control-Arrow.html#t:Arrow">Arrow</a> a =&gt; <a href="DsMonad.html#t:Applicative">Applicative</a> (<a href="../base-4.5.1.0/Control-Applicative.html#t:WrappedArrow">WrappedArrow</a> a b)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:-60--36--62-" class="def">(&lt;$&gt;)</a> :: <a href="../base-4.5.1.0/Control-Monad.html#t:Functor">Functor</a> f =&gt; (a -&gt; b) -&gt; f a -&gt; f b<a href="../base-4.5.1.0/src/Data-Functor.html#%3C%24%3E" class="link">Source</a></p><div class="doc"><p>An infix synonym for <code><a href="../base-4.5.1.0/Control-Monad.html#v:fmap">fmap</a></code>.
</p></div></div><div class="top"><p class="src"><a name="v:newLocalName" class="def">newLocalName</a> ::  <a href="Name.html#t:Name">Name</a> -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl <a href="Name.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:duplicateLocalDs" class="def">duplicateLocalDs</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Var.html#t:Id">Id</a></p></div><div class="top"><p class="src"><a name="v:newSysLocalDs" class="def">newSysLocalDs</a> :: <a href="Type.html#t:Type">Type</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Var.html#t:Id">Id</a></p></div><div class="top"><p class="src"><a name="v:newSysLocalsDs" class="def">newSysLocalsDs</a> :: [<a href="Type.html#t:Type">Type</a>] -&gt; <a href="DsMonad.html#t:DsM">DsM</a> [<a href="Var.html#t:Id">Id</a>]</p></div><div class="top"><p class="src"><a name="v:newUniqueId" class="def">newUniqueId</a> :: <a href="Var.html#t:Id">Id</a> -&gt; <a href="Type.html#t:Type">Type</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Var.html#t:Id">Id</a></p></div><div class="top"><p class="src"><a name="v:newFailLocalDs" class="def">newFailLocalDs</a> :: <a href="Type.html#t:Type">Type</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Var.html#t:Id">Id</a></p></div><div class="top"><p class="src"><a name="v:newPredVarDs" class="def">newPredVarDs</a> :: <a href="Type.html#t:PredType">PredType</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Var.html#t:Var">Var</a></p></div><div class="top"><p class="src"><a name="v:getSrcSpanDs" class="def">getSrcSpanDs</a> :: <a href="DsMonad.html#t:DsM">DsM</a> <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a></p></div><div class="top"><p class="src"><a name="v:putSrcSpanDs" class="def">putSrcSpanDs</a> ::  <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a</p></div><div class="top"><p class="src"><a name="v:getModuleDs" class="def">getModuleDs</a> :: <a href="DsMonad.html#t:DsM">DsM</a> <a href="Module.html#t:Module">Module</a></p></div><div class="top"><p class="src"><a name="v:mkPrintUnqualifiedDs" class="def">mkPrintUnqualifiedDs</a> :: <a href="DsMonad.html#t:DsM">DsM</a> <a href="Outputable.html#t:PrintUnqualified">PrintUnqualified</a></p></div><div class="top"><p class="src"><a name="v:newUnique" class="def">newUnique</a> ::  <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl <a href="Unique.html#t:Unique">Unique</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:UniqSupply" class="def">UniqSupply</a>  </p><div class="doc"><p>A value of type <code><a href="DsMonad.html#t:UniqSupply">UniqSupply</a></code> is unique, and it can
 supply <em>one</em> distinct <code><a href="Unique.html#t:Unique">Unique</a></code>.  Also, from the supply, one can
 also manufacture an arbitrary number of further <code>UniqueSupply</code> values,
 which will be distinct from the first and from all others.
</p></div></div><div class="top"><p class="src"><a name="v:newUniqueSupply" class="def">newUniqueSupply</a> ::  <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl <a href="DsMonad.html#t:UniqSupply">UniqSupply</a></p></div><div class="top"><p class="src"><a name="v:getDOptsDs" class="def">getDOptsDs</a> :: <a href="DsMonad.html#t:DsM">DsM</a> <a href="DynFlags.html#t:DynFlags">DynFlags</a></p></div><div class="top"><p class="src"><a name="v:getGhcModeDs" class="def">getGhcModeDs</a> :: <a href="DsMonad.html#t:DsM">DsM</a> <a href="DynFlags.html#t:GhcMode">GhcMode</a></p></div><div class="top"><p class="src"><a name="v:doptDs" class="def">doptDs</a> ::  <a href="DynFlags.html#t:DynFlag">DynFlag</a> -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:woptDs" class="def">woptDs</a> ::  <a href="DynFlags.html#t:WarningFlag">WarningFlag</a> -&gt; <a href="TcRnTypes.html#t:TcRnIf">TcRnIf</a> gbl lcl <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:dsLookupGlobal" class="def">dsLookupGlobal</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Type.html#t:TyThing">TyThing</a></p></div><div class="top"><p class="src"><a name="v:dsLookupGlobalId" class="def">dsLookupGlobalId</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Var.html#t:Id">Id</a></p></div><div class="top"><p class="src"><a name="v:dsDPHBuiltin" class="def">dsDPHBuiltin</a> ::  (<a href="DsMonad.html#t:PArrBuiltin">PArrBuiltin</a> -&gt; a) -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a</p><div class="doc"><p>Get a name from <a href="Data-Array-Parallel.html">Data.Array.Parallel</a> for the desugarer, from the <code>ds_parr_bi</code> component of the
 global desugerar environment.
</p></div></div><div class="top"><p class="src"><a name="v:dsLookupTyCon" class="def">dsLookupTyCon</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="TyCon.html#t:TyCon">TyCon</a></p></div><div class="top"><p class="src"><a name="v:dsLookupDataCon" class="def">dsLookupDataCon</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="DataCon.html#t:DataCon">DataCon</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:PArrBuiltin" class="def">PArrBuiltin</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:PArrBuiltin" class="def">PArrBuiltin</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:lengthPVar" class="def">lengthPVar</a> :: <a href="Var.html#t:Var">Var</a></dt><dd class="doc"><p>lengthP
</p></dd><dt class="src"><a name="v:replicatePVar" class="def">replicatePVar</a> :: <a href="Var.html#t:Var">Var</a></dt><dd class="doc"><p>replicateP
</p></dd><dt class="src"><a name="v:singletonPVar" class="def">singletonPVar</a> :: <a href="Var.html#t:Var">Var</a></dt><dd class="doc"><p>singletonP
</p></dd><dt class="src"><a name="v:mapPVar" class="def">mapPVar</a> :: <a href="Var.html#t:Var">Var</a></dt><dd class="doc"><p>mapP
</p></dd><dt class="src"><a name="v:filterPVar" class="def">filterPVar</a> :: <a href="Var.html#t:Var">Var</a></dt><dd class="doc"><p>filterP
</p></dd><dt class="src"><a name="v:zipPVar" class="def">zipPVar</a> :: <a href="Var.html#t:Var">Var</a></dt><dd class="doc"><p>zipP
</p></dd><dt class="src"><a name="v:crossMapPVar" class="def">crossMapPVar</a> :: <a href="Var.html#t:Var">Var</a></dt><dd class="doc"><p>crossMapP
</p></dd><dt class="src"><a name="v:indexPVar" class="def">indexPVar</a> :: <a href="Var.html#t:Var">Var</a></dt><dd class="doc"><p>(!:)
</p></dd><dt class="src"><a name="v:emptyPVar" class="def">emptyPVar</a> :: <a href="Var.html#t:Var">Var</a></dt><dd class="doc"><p>emptyP
</p></dd><dt class="src"><a name="v:appPVar" class="def">appPVar</a> :: <a href="Var.html#t:Var">Var</a></dt><dd class="doc"><p>(+:+)
</p></dd><dt class="src"><a name="v:enumFromToPVar" class="def">enumFromToPVar</a> :: <a href="Var.html#t:Var">Var</a></dt><dd class="doc"><p>enumFromToP
</p></dd><dt class="src"><a name="v:enumFromThenToPVar" class="def">enumFromThenToPVar</a> :: <a href="Var.html#t:Var">Var</a></dt><dd class="doc"><p>enumFromThenToP
</p></dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><a name="v:dsLookupDPHRdrEnv" class="def">dsLookupDPHRdrEnv</a> :: <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="Name.html#t:Name">Name</a></p><div class="doc"><p>Lookup a name exported by <code><a href="Data-Array-Parallel.html#t:Prim">Prim</a></code> or <code><a href="Data-Array-Parallel.html#t:Prim">Prim</a></code>.
  Panic if there isn't one, or if it is defined multiple times.
</p></div></div><div class="top"><p class="src"><a name="v:dsLookupDPHRdrEnv_maybe" class="def">dsLookupDPHRdrEnv_maybe</a> :: <a href="OccName.html#t:OccName">OccName</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Name.html#t:Name">Name</a>)</p><div class="doc"><p>Lookup a name exported by <code><a href="Data-Array-Parallel.html#t:Prim">Prim</a></code> or <code><a href="Data-Array-Parallel.html#t:Prim">Prim</a></code>,
  returning <code><a href="../base-4.5.1.0/Data-Maybe.html#v:Nothing">Nothing</a></code> if it's not defined. Panic if it's defined multiple times.
</p></div></div><div class="top"><p class="src"><a name="v:dsInitPArrBuiltin" class="def">dsInitPArrBuiltin</a> ::  <a href="DsMonad.html#t:DsM">DsM</a> a -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DsMetaEnv" class="def">DsMetaEnv</a> = <a href="NameEnv.html#t:NameEnv">NameEnv</a> <a href="DsMonad.html#t:DsMetaVal">DsMetaVal</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:DsMetaVal" class="def">DsMetaVal</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Bound" class="def">Bound</a> <a href="Var.html#t:Id">Id</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Splice" class="def">Splice</a> (<a href="HsExpr.html#t:HsExpr">HsExpr</a> <a href="Var.html#t:Id">Id</a>)</td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:dsLookupMetaEnv" class="def">dsLookupMetaEnv</a> :: <a href="Name.html#t:Name">Name</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="DsMonad.html#t:DsMetaVal">DsMetaVal</a>)</p></div><div class="top"><p class="src"><a name="v:dsExtendMetaEnv" class="def">dsExtendMetaEnv</a> ::  <a href="DsMonad.html#t:DsMetaEnv">DsMetaEnv</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DsWarning" class="def">DsWarning</a> = (<a href="SrcLoc.html#t:SrcSpan">SrcSpan</a>, <a href="Outputable.html#t:SDoc">SDoc</a>)</p></div><div class="top"><p class="src"><a name="v:warnDs" class="def">warnDs</a> :: <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> ()</p></div><div class="top"><p class="src"><a name="v:failWithDs" class="def">failWithDs</a> ::  <a href="Outputable.html#t:SDoc">SDoc</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> a</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:DsMatchContext" class="def">DsMatchContext</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:DsMatchContext" class="def">DsMatchContext</a> (<a href="HsExpr.html#t:HsMatchContext">HsMatchContext</a> <a href="Name.html#t:Name">Name</a>) <a href="SrcLoc.html#t:SrcSpan">SrcSpan</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:EquationInfo" class="def">EquationInfo</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:EqnInfo" class="def">EqnInfo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:eqn_pats" class="def">eqn_pats</a> :: [<a href="HsPat.html#t:Pat">Pat</a> <a href="Var.html#t:Id">Id</a>]</dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:eqn_rhs" class="def">eqn_rhs</a> :: <a href="DsMonad.html#t:MatchResult">MatchResult</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:EquationInfo" class="caption collapser" onclick="toggleSection('i:EquationInfo')">Instances</p><div id="section.i:EquationInfo" class="show"><table><tr><td class="src"><a href="Outputable.html#t:Outputable">Outputable</a> <a href="DsMonad.html#t:EquationInfo">EquationInfo</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:MatchResult" class="def">MatchResult</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:MatchResult" class="def">MatchResult</a> <a href="DsMonad.html#t:CanItFail">CanItFail</a> (<a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="DsMonad.html#t:DsM">DsM</a> <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a>)</td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DsWrapper" class="def">DsWrapper</a> = <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a> -&gt; <a href="CoreSyn.html#t:CoreExpr">CoreExpr</a></p></div><div class="top"><p class="src"><a name="v:idDsWrapper" class="def">idDsWrapper</a> :: <a href="DsMonad.html#t:DsWrapper">DsWrapper</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CanItFail" class="def">CanItFail</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CanFail" class="def">CanFail</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:CantFail" class="def">CantFail</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:orFail" class="def">orFail</a> :: <a href="DsMonad.html#t:CanItFail">CanItFail</a> -&gt; <a href="DsMonad.html#t:CanItFail">CanItFail</a> -&gt; <a href="DsMonad.html#t:CanItFail">CanItFail</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>