This file is indexed.

/usr/share/doc/libghc-monadlib-doc/html/MonadLib.html is in libghc-monadlib-doc 3.7.3-3build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!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>MonadLib</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_MonadLib.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/MonadLib.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">monadLib-3.7.3: A collection of monad transformers.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Trustworthy</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">MonadLib</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Types</a></li><li><a href="#g:2">Lifting</a></li><li><a href="#g:3">Effect Classes</a></li><li><a href="#g:4">Execution</a><ul><li><a href="#g:5">Eliminating Effects</a></li><li><a href="#g:6">Nested Execution</a></li></ul></li><li><a href="#g:7">Utility functions</a></li><li><a href="#g:8">Miscellaneous</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This library provides a collection of monad transformers that
    can be combined to produce various monads.</p></div></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">data</span> <a href="#t:Id">Id</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:Lift">Lift</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:IdT">IdT</a> m a</li><li class="src short"><span class="keyword">data</span> <a href="#t:ReaderT">ReaderT</a> i m a</li><li class="src short"><span class="keyword">data</span> <a href="#t:WriterT">WriterT</a> i m a</li><li class="src short"><span class="keyword">data</span> <a href="#t:StateT">StateT</a> i m a</li><li class="src short"><span class="keyword">data</span> <a href="#t:ExceptionT">ExceptionT</a> i m a</li><li class="src short"><span class="keyword">data</span> <a href="#t:ChoiceT">ChoiceT</a> m a</li><li class="src short"><span class="keyword">data</span> <a href="#t:ContT">ContT</a> i m a</li><li class="src short"><span class="keyword">class</span> <a href="#t:MonadT">MonadT</a> t <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> n) =&gt; <a href="#t:BaseM">BaseM</a> m n | m -&gt; n <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="#t:ReaderM">ReaderM</a> m i | m -&gt; i <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="#t:WriterM">WriterM</a> m i | m -&gt; i <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="#t:StateM">StateM</a> m i | m -&gt; i <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="#t:ExceptionM">ExceptionM</a> m i | m -&gt; i <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="#t:ContM">ContM</a> m <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="#t:AbortM">AbortM</a> m i <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">data</span> <a href="#t:Label">Label</a> m</li><li class="src short"><a href="#v:labelCC">labelCC</a> :: <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; a -&gt; m (a, a -&gt; <a href="MonadLib.html#t:Label">Label</a> m)</li><li class="src short"><a href="#v:labelCC_">labelCC_</a> :: <span class="keyword">forall</span> m. <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; m (<a href="MonadLib.html#t:Label">Label</a> m)</li><li class="src short"><a href="#v:jump">jump</a> :: <a href="MonadLib.html#t:Label">Label</a> m -&gt; m a</li><li class="src short"><a href="#v:labelC">labelC</a> :: (<span class="keyword">forall</span> b. m b) -&gt; <a href="MonadLib.html#t:Label">Label</a> m</li><li class="src short"><a href="#v:callCC">callCC</a> :: <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; ((a -&gt; m b) -&gt; m a) -&gt; m a</li><li class="src short"><a href="#v:runId">runId</a> :: <a href="MonadLib.html#t:Id">Id</a> a -&gt; a</li><li class="src short"><a href="#v:runLift">runLift</a> :: <a href="MonadLib.html#t:Lift">Lift</a> a -&gt; a</li><li class="src short"><a href="#v:runIdT">runIdT</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; m a</li><li class="src short"><a href="#v:runReaderT">runReaderT</a> :: i -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; m a</li><li class="src short"><a href="#v:runWriterT">runWriterT</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; m (a, i)</li><li class="src short"><a href="#v:runStateT">runStateT</a> :: i -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; m (a, i)</li><li class="src short"><a href="#v:runExceptionT">runExceptionT</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a)</li><li class="src short"><a href="#v:runContT">runContT</a> :: (a -&gt; m i) -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; m i</li><li class="src short"><a href="#v:runChoiceT">runChoiceT</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (a, <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a))</li><li class="src short"><a href="#v:findOne">findOne</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:findAll">findAll</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; m [a]</li><li class="src short"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="#t:RunM">RunM</a> m a r | m a -&gt; r <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> m i =&gt; <a href="#t:RunReaderM">RunReaderM</a> m i | m -&gt; i <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="MonadLib.html#t:WriterM">WriterM</a> m i =&gt; <a href="#t:RunWriterM">RunWriterM</a> m i | m -&gt; i <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m i =&gt; <a href="#t:RunExceptionM">RunExceptionM</a> m i | m -&gt; i <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:asks">asks</a> :: <a href="MonadLib.html#t:ReaderM">ReaderM</a> m r =&gt; (r -&gt; a) -&gt; m a</li><li class="src short"><a href="#v:puts">puts</a> :: <a href="MonadLib.html#t:WriterM">WriterM</a> m w =&gt; (a, w) -&gt; m a</li><li class="src short"><a href="#v:sets">sets</a> :: <a href="MonadLib.html#t:StateM">StateM</a> m s =&gt; (s -&gt; (a, s)) -&gt; m a</li><li class="src short"><a href="#v:sets_">sets_</a> :: <a href="MonadLib.html#t:StateM">StateM</a> m s =&gt; (s -&gt; s) -&gt; m ()</li><li class="src short"><a href="#v:raises">raises</a> :: <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m x =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> x a -&gt; m a</li><li class="src short"><a href="#v:mapReader">mapReader</a> :: <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> m r =&gt; (r -&gt; r) -&gt; m a -&gt; m a</li><li class="src short"><a href="#v:mapWriter">mapWriter</a> :: <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> m w =&gt; (w -&gt; w) -&gt; m a -&gt; m a</li><li class="src short"><a href="#v:mapException">mapException</a> :: <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> m x =&gt; (x -&gt; x) -&gt; m a -&gt; m a</li><li class="src short"><a href="#v:handle">handle</a> :: <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> m x =&gt; m a -&gt; (x -&gt; m a) -&gt; m a</li><li class="src short"><a href="#v:version">version</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a>)</li><li class="src short">module <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html">Control.Monad</a></li></ul></div><div id="interface"><h1 id="g:1">Types</h1><div class="doc"><p>The following types define the representations of the
 computation types supported by the library.
 Each type adds support for a different effect.</p></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Id" class="def">Id</a> a <a href="src/MonadLib.html#Id" class="link">Source</a> <a href="#t:Id" class="selflink">#</a></p><div class="doc"><p>Computations with no effects.</p></div><div class="subs instances"><p id="control.i:Id" class="caption collapser" onclick="toggleSection('i:Id')">Instances</p><div id="section.i:Id" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Id:Monad:1" class="instance expander" onclick="toggleSection('i:id:Id:Monad:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> <a href="MonadLib.html#t:Id">Id</a></span> <a href="src/MonadLib.html#line-309" class="link">Source</a> <a href="#t:Id" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Id:Monad:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="MonadLib.html#t:Id">Id</a> a -&gt; (a -&gt; <a href="MonadLib.html#t:Id">Id</a> b) -&gt; <a href="MonadLib.html#t:Id">Id</a> b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="MonadLib.html#t:Id">Id</a> a -&gt; <a href="MonadLib.html#t:Id">Id</a> b -&gt; <a href="MonadLib.html#t:Id">Id</a> b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="MonadLib.html#t:Id">Id</a> a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="MonadLib.html#t:Id">Id</a> a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Id:Functor:2" class="instance expander" onclick="toggleSection('i:id:Id:Functor:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> <a href="MonadLib.html#t:Id">Id</a></span> <a href="src/MonadLib.html#line-368" class="link">Source</a> <a href="#t:Id" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Id:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="MonadLib.html#t:Id">Id</a> a -&gt; <a href="MonadLib.html#t:Id">Id</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="MonadLib.html#t:Id">Id</a> b -&gt; <a href="MonadLib.html#t:Id">Id</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Id:MonadFix:3" class="instance expander" onclick="toggleSection('i:id:Id:MonadFix:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> <a href="MonadLib.html#t:Id">Id</a></span> <a href="src/MonadLib.html#line-420" class="link">Source</a> <a href="#t:Id" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Id:MonadFix:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mfix">mfix</a> :: (a -&gt; <a href="MonadLib.html#t:Id">Id</a> a) -&gt; <a href="MonadLib.html#t:Id">Id</a> a <a href="#v:mfix" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Id:Applicative:4" class="instance expander" onclick="toggleSection('i:id:Id:Applicative:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="MonadLib.html#t:Id">Id</a></span> <a href="src/MonadLib.html#line-383" class="link">Source</a> <a href="#t:Id" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Id:Applicative:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="MonadLib.html#t:Id">Id</a> a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="MonadLib.html#t:Id">Id</a> (a -&gt; b) -&gt; <a href="MonadLib.html#t:Id">Id</a> a -&gt; <a href="MonadLib.html#t:Id">Id</a> b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="MonadLib.html#t:Id">Id</a> a -&gt; <a href="MonadLib.html#t:Id">Id</a> b -&gt; <a href="MonadLib.html#t:Id">Id</a> b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="MonadLib.html#t:Id">Id</a> a -&gt; <a href="MonadLib.html#t:Id">Id</a> b -&gt; <a href="MonadLib.html#t:Id">Id</a> a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Id:BaseM:5" class="instance expander" onclick="toggleSection('i:id:Id:BaseM:5')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> <a href="MonadLib.html#t:Id">Id</a> <a href="MonadLib.html#t:Id">Id</a></span> <a href="src/MonadLib.html#line-294" class="link">Source</a> <a href="#t:Id" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Id:BaseM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: <a href="MonadLib.html#t:Id">Id</a> a -&gt; <a href="MonadLib.html#t:Id">Id</a> a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Id:RunM:6" class="instance expander" onclick="toggleSection('i:id:Id:RunM:6')"></span> <a href="MonadLib.html#t:RunM">RunM</a> <a href="MonadLib.html#t:Id">Id</a> a a</span> <a href="src/MonadLib.html#line-194" class="link">Source</a> <a href="#t:Id" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Id:RunM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:Id">Id</a> a -&gt; a <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Lift" class="def">Lift</a> a <a href="src/MonadLib.html#Lift" class="link">Source</a> <a href="#t:Lift" class="selflink">#</a></p><div class="doc"><p>Computation with no effects (strict).</p></div><div class="subs instances"><p id="control.i:Lift" class="caption collapser" onclick="toggleSection('i:Lift')">Instances</p><div id="section.i:Lift" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Lift:Monad:1" class="instance expander" onclick="toggleSection('i:id:Lift:Monad:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> <a href="MonadLib.html#t:Lift">Lift</a></span> <a href="src/MonadLib.html#line-314" class="link">Source</a> <a href="#t:Lift" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Lift:Monad:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="MonadLib.html#t:Lift">Lift</a> a -&gt; (a -&gt; <a href="MonadLib.html#t:Lift">Lift</a> b) -&gt; <a href="MonadLib.html#t:Lift">Lift</a> b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="MonadLib.html#t:Lift">Lift</a> a -&gt; <a href="MonadLib.html#t:Lift">Lift</a> b -&gt; <a href="MonadLib.html#t:Lift">Lift</a> b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="MonadLib.html#t:Lift">Lift</a> a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="MonadLib.html#t:Lift">Lift</a> a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Lift:Functor:2" class="instance expander" onclick="toggleSection('i:id:Lift:Functor:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> <a href="MonadLib.html#t:Lift">Lift</a></span> <a href="src/MonadLib.html#line-369" class="link">Source</a> <a href="#t:Lift" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Lift:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="MonadLib.html#t:Lift">Lift</a> a -&gt; <a href="MonadLib.html#t:Lift">Lift</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="MonadLib.html#t:Lift">Lift</a> b -&gt; <a href="MonadLib.html#t:Lift">Lift</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Lift:MonadFix:3" class="instance expander" onclick="toggleSection('i:id:Lift:MonadFix:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> <a href="MonadLib.html#t:Lift">Lift</a></span> <a href="src/MonadLib.html#line-423" class="link">Source</a> <a href="#t:Lift" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Lift:MonadFix:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mfix">mfix</a> :: (a -&gt; <a href="MonadLib.html#t:Lift">Lift</a> a) -&gt; <a href="MonadLib.html#t:Lift">Lift</a> a <a href="#v:mfix" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Lift:Applicative:4" class="instance expander" onclick="toggleSection('i:id:Lift:Applicative:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="MonadLib.html#t:Lift">Lift</a></span> <a href="src/MonadLib.html#line-384" class="link">Source</a> <a href="#t:Lift" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Lift:Applicative:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="MonadLib.html#t:Lift">Lift</a> a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="MonadLib.html#t:Lift">Lift</a> (a -&gt; b) -&gt; <a href="MonadLib.html#t:Lift">Lift</a> a -&gt; <a href="MonadLib.html#t:Lift">Lift</a> b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="MonadLib.html#t:Lift">Lift</a> a -&gt; <a href="MonadLib.html#t:Lift">Lift</a> b -&gt; <a href="MonadLib.html#t:Lift">Lift</a> b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="MonadLib.html#t:Lift">Lift</a> a -&gt; <a href="MonadLib.html#t:Lift">Lift</a> b -&gt; <a href="MonadLib.html#t:Lift">Lift</a> a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Lift:BaseM:5" class="instance expander" onclick="toggleSection('i:id:Lift:BaseM:5')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> <a href="MonadLib.html#t:Lift">Lift</a> <a href="MonadLib.html#t:Lift">Lift</a></span> <a href="src/MonadLib.html#line-295" class="link">Source</a> <a href="#t:Lift" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Lift:BaseM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: <a href="MonadLib.html#t:Lift">Lift</a> a -&gt; <a href="MonadLib.html#t:Lift">Lift</a> a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Lift:RunM:6" class="instance expander" onclick="toggleSection('i:id:Lift:RunM:6')"></span> <a href="MonadLib.html#t:RunM">RunM</a> <a href="MonadLib.html#t:Lift">Lift</a> a a</span> <a href="src/MonadLib.html#line-197" class="link">Source</a> <a href="#t:Lift" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Lift:RunM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:Lift">Lift</a> a -&gt; a <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:IdT" class="def">IdT</a> m a <a href="src/MonadLib.html#IdT" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></p><div class="doc"><p>Adds no new features.  Useful as a placeholder.</p></div><div class="subs instances"><p id="control.i:IdT" class="caption collapser" onclick="toggleSection('i:IdT')">Instances</p><div id="section.i:IdT" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:MonadT:1" class="instance expander" onclick="toggleSection('i:id:IdT:MonadT:1')"></span> <a href="MonadLib.html#t:MonadT">MonadT</a> <a href="MonadLib.html#t:IdT">IdT</a></span> <a href="src/MonadLib.html#line-243" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:MonadT:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:Monad:2" class="instance expander" onclick="toggleSection('i:id:IdT:Monad:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> (<a href="MonadLib.html#t:IdT">IdT</a> m)</span> <a href="src/MonadLib.html#line-324" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:Monad:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; (a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m b) -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m b -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:Functor:3" class="instance expander" onclick="toggleSection('i:id:IdT:Functor:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> (<a href="MonadLib.html#t:IdT">IdT</a> m)</span> <a href="src/MonadLib.html#line-370" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:Functor:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m b -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:MonadFix:4" class="instance expander" onclick="toggleSection('i:id:IdT:MonadFix:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> (<a href="MonadLib.html#t:IdT">IdT</a> m)</span> <a href="src/MonadLib.html#line-426" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:MonadFix:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mfix">mfix</a> :: (a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a) -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="#v:mfix" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:Applicative:5" class="instance expander" onclick="toggleSection('i:id:IdT:Applicative:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="MonadLib.html#t:IdT">IdT</a> m)</span> <a href="src/MonadLib.html#line-385" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:Applicative:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m (a -&gt; b) -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m b -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m b -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:Alternative:6" class="instance expander" onclick="toggleSection('i:id:IdT:Alternative:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Alternative">Alternative</a> (<a href="MonadLib.html#t:IdT">IdT</a> m)</span> <a href="src/MonadLib.html#line-395" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:Alternative:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:empty">empty</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="#v:empty" class="selflink">#</a></p><p class="src"><a href="#v:-60--124--62-">(&lt;|&gt;)</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="#v:-60--124--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m [a] <a href="#v:many" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:MonadPlus:7" class="instance expander" onclick="toggleSection('i:id:IdT:MonadPlus:7')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> (<a href="MonadLib.html#t:IdT">IdT</a> m)</span> <a href="src/MonadLib.html#line-448" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:MonadPlus:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mzero">mzero</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="#v:mzero" class="selflink">#</a></p><p class="src"><a href="#v:mplus">mplus</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="#v:mplus" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:ContM:8" class="instance expander" onclick="toggleSection('i:id:IdT:ContM:8')"></span> <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m)</span> <a href="src/MonadLib.html#line-587" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:ContM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:IdT">IdT</a> m)) -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a) -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:AbortM:9" class="instance expander" onclick="toggleSection('i:id:IdT:AbortM:9')"></span> <a href="MonadLib.html#t:AbortM">AbortM</a> m i =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) i</span> <a href="src/MonadLib.html#line-723" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:AbortM:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:RunExceptionM:10" class="instance expander" onclick="toggleSection('i:id:IdT:RunExceptionM:10')"></span> <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> m i =&gt; <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) i</span> <a href="src/MonadLib.html#line-697" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:RunExceptionM:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:try">try</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:RunWriterM:11" class="instance expander" onclick="toggleSection('i:id:IdT:RunWriterM:11')"></span> <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> m j =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) j</span> <a href="src/MonadLib.html#line-649" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:RunWriterM:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m (a, j) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:RunReaderM:12" class="instance expander" onclick="toggleSection('i:id:IdT:RunReaderM:12')"></span> <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> m j =&gt; <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) j</span> <a href="src/MonadLib.html#line-628" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:RunReaderM:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: j -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:ExceptionM:13" class="instance expander" onclick="toggleSection('i:id:IdT:ExceptionM:13')"></span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m j =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) j</span> <a href="src/MonadLib.html#line-556" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:ExceptionM:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: j -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:StateM:14" class="instance expander" onclick="toggleSection('i:id:IdT:StateM:14')"></span> <a href="MonadLib.html#t:StateM">StateM</a> m j =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) j</span> <a href="src/MonadLib.html#line-527" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:StateM:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m j <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: j -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:WriterM:15" class="instance expander" onclick="toggleSection('i:id:IdT:WriterM:15')"></span> <a href="MonadLib.html#t:WriterM">WriterM</a> m j =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) j</span> <a href="src/MonadLib.html#line-509" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:WriterM:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: j -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:ReaderM:16" class="instance expander" onclick="toggleSection('i:id:IdT:ReaderM:16')"></span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> m j =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) j</span> <a href="src/MonadLib.html#line-492" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:ReaderM:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m j <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:BaseM:17" class="instance expander" onclick="toggleSection('i:id:IdT:BaseM:17')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> m n =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) n</span> <a href="src/MonadLib.html#line-299" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:BaseM:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:IdT:RunM:18" class="instance expander" onclick="toggleSection('i:id:IdT:RunM:18')"></span> <a href="MonadLib.html#t:RunM">RunM</a> m a r =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) a r</span> <a href="src/MonadLib.html#line-203" class="link">Source</a> <a href="#t:IdT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:IdT:RunM:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ReaderT" class="def">ReaderT</a> i m a <a href="src/MonadLib.html#ReaderT" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></p><div class="doc"><p>Add support for propagating a context of type <code>i</code>.</p></div><div class="subs instances"><p id="control.i:ReaderT" class="caption collapser" onclick="toggleSection('i:ReaderT')">Instances</p><div id="section.i:ReaderT" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:MonadT:1" class="instance expander" onclick="toggleSection('i:id:ReaderT:MonadT:1')"></span> <a href="MonadLib.html#t:MonadT">MonadT</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i)</span> <a href="src/MonadLib.html#line-244" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:MonadT:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:Monad:2" class="instance expander" onclick="toggleSection('i:id:ReaderT:Monad:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m)</span> <a href="src/MonadLib.html#line-329" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:Monad:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; (a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m b) -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m b -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:Functor:3" class="instance expander" onclick="toggleSection('i:id:ReaderT:Functor:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m)</span> <a href="src/MonadLib.html#line-371" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:Functor:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m b -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:MonadFix:4" class="instance expander" onclick="toggleSection('i:id:ReaderT:MonadFix:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m)</span> <a href="src/MonadLib.html#line-429" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:MonadFix:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mfix">mfix</a> :: (a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a) -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="#v:mfix" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:Applicative:5" class="instance expander" onclick="toggleSection('i:id:ReaderT:Applicative:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m)</span> <a href="src/MonadLib.html#line-386" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:Applicative:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m (a -&gt; b) -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m b -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m b -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:Alternative:6" class="instance expander" onclick="toggleSection('i:id:ReaderT:Alternative:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Alternative">Alternative</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m)</span> <a href="src/MonadLib.html#line-397" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:Alternative:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:empty">empty</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="#v:empty" class="selflink">#</a></p><p class="src"><a href="#v:-60--124--62-">(&lt;|&gt;)</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="#v:-60--124--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m [a] <a href="#v:many" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:MonadPlus:7" class="instance expander" onclick="toggleSection('i:id:ReaderT:MonadPlus:7')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m)</span> <a href="src/MonadLib.html#line-452" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:MonadPlus:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mzero">mzero</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="#v:mzero" class="selflink">#</a></p><p class="src"><a href="#v:mplus">mplus</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="#v:mplus" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:ContM:8" class="instance expander" onclick="toggleSection('i:id:ReaderT:ContM:8')"></span> <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m)</span> <a href="src/MonadLib.html#line-590" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:ContM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m)) -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a) -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:AbortM:9" class="instance expander" onclick="toggleSection('i:id:ReaderT:AbortM:9')"></span> <a href="MonadLib.html#t:AbortM">AbortM</a> m i =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> j m) i</span> <a href="src/MonadLib.html#line-724" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:AbortM:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> j m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:RunExceptionM:10" class="instance expander" onclick="toggleSection('i:id:ReaderT:RunExceptionM:10')"></span> <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> m i =&gt; <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> j m) i</span> <a href="src/MonadLib.html#line-699" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:RunExceptionM:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:try">try</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> j m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> j m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:RunWriterM:11" class="instance expander" onclick="toggleSection('i:id:ReaderT:RunWriterM:11')"></span> <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> m j =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) j</span> <a href="src/MonadLib.html#line-651" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:RunWriterM:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m (a, j) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:RunReaderM:12" class="instance expander" onclick="toggleSection('i:id:ReaderT:RunReaderM:12')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) i</span> <a href="src/MonadLib.html#line-625" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:RunReaderM:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: i -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:ExceptionM:13" class="instance expander" onclick="toggleSection('i:id:ReaderT:ExceptionM:13')"></span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m j =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) j</span> <a href="src/MonadLib.html#line-558" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:ExceptionM:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: j -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:StateM:14" class="instance expander" onclick="toggleSection('i:id:ReaderT:StateM:14')"></span> <a href="MonadLib.html#t:StateM">StateM</a> m j =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) j</span> <a href="src/MonadLib.html#line-529" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:StateM:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m j <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: j -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:WriterM:15" class="instance expander" onclick="toggleSection('i:id:ReaderT:WriterM:15')"></span> <a href="MonadLib.html#t:WriterM">WriterM</a> m j =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) j</span> <a href="src/MonadLib.html#line-510" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:WriterM:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: j -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:ReaderM:16" class="instance expander" onclick="toggleSection('i:id:ReaderT:ReaderM:16')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) i</span> <a href="src/MonadLib.html#line-489" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:ReaderM:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m i <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:BaseM:17" class="instance expander" onclick="toggleSection('i:id:ReaderT:BaseM:17')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> m n =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) n</span> <a href="src/MonadLib.html#line-300" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:BaseM:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ReaderT:RunM:18" class="instance expander" onclick="toggleSection('i:id:ReaderT:RunM:18')"></span> <a href="MonadLib.html#t:RunM">RunM</a> m a r =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) a (i -&gt; r)</span> <a href="src/MonadLib.html#line-206" class="link">Source</a> <a href="#t:ReaderT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ReaderT:RunM:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; i -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:WriterT" class="def">WriterT</a> i m a <a href="src/MonadLib.html#WriterT" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></p><div class="doc"><p>Add support for collecting values of type <code>i</code>.
 The type <code>i</code> should be a monoid, whose unit is used to represent
 a lack of a value, and whose binary operation is used to combine
 multiple values.
 This transformer is strict in its output component.</p></div><div class="subs instances"><p id="control.i:WriterT" class="caption collapser" onclick="toggleSection('i:WriterT')">Instances</p><div id="section.i:WriterT" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:MonadT:1" class="instance expander" onclick="toggleSection('i:id:WriterT:MonadT:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i =&gt; <a href="MonadLib.html#t:MonadT">MonadT</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i)</span> <a href="src/MonadLib.html#line-246" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:MonadT:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:Monad:2" class="instance expander" onclick="toggleSection('i:id:WriterT:Monad:2')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m)</span> <a href="src/MonadLib.html#line-339" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:Monad:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; (a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m b) -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m b -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:Functor:3" class="instance expander" onclick="toggleSection('i:id:WriterT:Functor:3')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m)</span> <a href="src/MonadLib.html#line-373" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:Functor:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m b -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:MonadFix:4" class="instance expander" onclick="toggleSection('i:id:WriterT:MonadFix:4')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m)</span> <a href="src/MonadLib.html#line-435" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:MonadFix:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mfix">mfix</a> :: (a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a) -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="#v:mfix" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:Applicative:5" class="instance expander" onclick="toggleSection('i:id:WriterT:Applicative:5')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m)</span> <a href="src/MonadLib.html#line-388" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:Applicative:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m (a -&gt; b) -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m b -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m b -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:Alternative:6" class="instance expander" onclick="toggleSection('i:id:WriterT:Alternative:6')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Alternative">Alternative</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m)</span> <a href="src/MonadLib.html#line-401" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:Alternative:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:empty">empty</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="#v:empty" class="selflink">#</a></p><p class="src"><a href="#v:-60--124--62-">(&lt;|&gt;)</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="#v:-60--124--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m [a] <a href="#v:many" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:MonadPlus:7" class="instance expander" onclick="toggleSection('i:id:WriterT:MonadPlus:7')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m)</span> <a href="src/MonadLib.html#line-460" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:MonadPlus:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mzero">mzero</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="#v:mzero" class="selflink">#</a></p><p class="src"><a href="#v:mplus">mplus</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="#v:mplus" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:ContM:8" class="instance expander" onclick="toggleSection('i:id:WriterT:ContM:8')"></span> (<a href="MonadLib.html#t:ContM">ContM</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m)</span> <a href="src/MonadLib.html#line-597" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:ContM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m)) -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a) -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:AbortM:9" class="instance expander" onclick="toggleSection('i:id:WriterT:AbortM:9')"></span> (<a href="MonadLib.html#t:AbortM">AbortM</a> m i, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> j) =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> j m) i</span> <a href="src/MonadLib.html#line-725" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:AbortM:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> j m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:RunExceptionM:10" class="instance expander" onclick="toggleSection('i:id:WriterT:RunExceptionM:10')"></span> (<a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> m i, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> j) =&gt; <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> j m) i</span> <a href="src/MonadLib.html#line-701" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:RunExceptionM:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:try">try</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> j m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> j m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:RunWriterM:11" class="instance expander" onclick="toggleSection('i:id:WriterT:RunWriterM:11')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) i</span> <a href="src/MonadLib.html#line-646" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:RunWriterM:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m (a, i) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:RunReaderM:12" class="instance expander" onclick="toggleSection('i:id:WriterT:RunReaderM:12')"></span> (<a href="MonadLib.html#t:RunReaderM">RunReaderM</a> m j, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) j</span> <a href="src/MonadLib.html#line-630" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:RunReaderM:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: j -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:ExceptionM:13" class="instance expander" onclick="toggleSection('i:id:WriterT:ExceptionM:13')"></span> (<a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m j, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) j</span> <a href="src/MonadLib.html#line-560" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:ExceptionM:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: j -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:StateM:14" class="instance expander" onclick="toggleSection('i:id:WriterT:StateM:14')"></span> (<a href="MonadLib.html#t:StateM">StateM</a> m j, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) j</span> <a href="src/MonadLib.html#line-531" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:StateM:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m j <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: j -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:WriterM:15" class="instance expander" onclick="toggleSection('i:id:WriterT:WriterM:15')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) i</span> <a href="src/MonadLib.html#line-506" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:WriterM:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: i -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:ReaderM:16" class="instance expander" onclick="toggleSection('i:id:WriterT:ReaderM:16')"></span> (<a href="MonadLib.html#t:ReaderM">ReaderM</a> m j, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) j</span> <a href="src/MonadLib.html#line-493" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:ReaderM:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m j <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:BaseM:17" class="instance expander" onclick="toggleSection('i:id:WriterT:BaseM:17')"></span> (<a href="MonadLib.html#t:BaseM">BaseM</a> m n, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) n</span> <a href="src/MonadLib.html#line-302" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:BaseM:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:WriterT:RunM:18" class="instance expander" onclick="toggleSection('i:id:WriterT:RunM:18')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i, <a href="MonadLib.html#t:RunM">RunM</a> m (a, i) r) =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) a r</span> <a href="src/MonadLib.html#line-209" class="link">Source</a> <a href="#t:WriterT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:WriterT:RunM:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:StateT" class="def">StateT</a> i m a <a href="src/MonadLib.html#StateT" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></p><div class="doc"><p>Add support for threading state of type <code>i</code>.</p></div><div class="subs instances"><p id="control.i:StateT" class="caption collapser" onclick="toggleSection('i:StateT')">Instances</p><div id="section.i:StateT" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:MonadT:1" class="instance expander" onclick="toggleSection('i:id:StateT:MonadT:1')"></span> <a href="MonadLib.html#t:MonadT">MonadT</a> (<a href="MonadLib.html#t:StateT">StateT</a> i)</span> <a href="src/MonadLib.html#line-245" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:MonadT:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:Monad:2" class="instance expander" onclick="toggleSection('i:id:StateT:Monad:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m)</span> <a href="src/MonadLib.html#line-334" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:Monad:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; (a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m b) -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m b -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:Functor:3" class="instance expander" onclick="toggleSection('i:id:StateT:Functor:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m)</span> <a href="src/MonadLib.html#line-372" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:Functor:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m b -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:MonadFix:4" class="instance expander" onclick="toggleSection('i:id:StateT:MonadFix:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m)</span> <a href="src/MonadLib.html#line-432" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:MonadFix:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mfix">mfix</a> :: (a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a) -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="#v:mfix" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:Applicative:5" class="instance expander" onclick="toggleSection('i:id:StateT:Applicative:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m)</span> <a href="src/MonadLib.html#line-387" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:Applicative:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m (a -&gt; b) -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m b -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m b -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:Alternative:6" class="instance expander" onclick="toggleSection('i:id:StateT:Alternative:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Alternative">Alternative</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m)</span> <a href="src/MonadLib.html#line-399" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:Alternative:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:empty">empty</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="#v:empty" class="selflink">#</a></p><p class="src"><a href="#v:-60--124--62-">(&lt;|&gt;)</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="#v:-60--124--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m [a] <a href="#v:many" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:MonadPlus:7" class="instance expander" onclick="toggleSection('i:id:StateT:MonadPlus:7')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m)</span> <a href="src/MonadLib.html#line-456" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:MonadPlus:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mzero">mzero</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="#v:mzero" class="selflink">#</a></p><p class="src"><a href="#v:mplus">mplus</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="#v:mplus" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:ContM:8" class="instance expander" onclick="toggleSection('i:id:StateT:ContM:8')"></span> <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m)</span> <a href="src/MonadLib.html#line-593" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:ContM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m)) -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a) -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:AbortM:9" class="instance expander" onclick="toggleSection('i:id:StateT:AbortM:9')"></span> <a href="MonadLib.html#t:AbortM">AbortM</a> m i =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:StateT">StateT</a> j m) i</span> <a href="src/MonadLib.html#line-727" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:AbortM:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:StateT">StateT</a> j m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:RunExceptionM:10" class="instance expander" onclick="toggleSection('i:id:StateT:RunExceptionM:10')"></span> <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> m i =&gt; <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> (<a href="MonadLib.html#t:StateT">StateT</a> j m) i</span> <a href="src/MonadLib.html#line-705" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:RunExceptionM:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:try">try</a> :: <a href="MonadLib.html#t:StateT">StateT</a> j m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> j m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:RunWriterM:11" class="instance expander" onclick="toggleSection('i:id:StateT:RunWriterM:11')"></span> <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> m j =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) j</span> <a href="src/MonadLib.html#line-653" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:RunWriterM:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m (a, j) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:RunReaderM:12" class="instance expander" onclick="toggleSection('i:id:StateT:RunReaderM:12')"></span> <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> m j =&gt; <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) j</span> <a href="src/MonadLib.html#line-632" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:RunReaderM:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: j -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:ExceptionM:13" class="instance expander" onclick="toggleSection('i:id:StateT:ExceptionM:13')"></span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m j =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) j</span> <a href="src/MonadLib.html#line-562" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:ExceptionM:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: j -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:StateM:14" class="instance expander" onclick="toggleSection('i:id:StateT:StateM:14')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) i</span> <a href="src/MonadLib.html#line-523" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:StateM:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m i <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: i -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:WriterM:15" class="instance expander" onclick="toggleSection('i:id:StateT:WriterM:15')"></span> <a href="MonadLib.html#t:WriterM">WriterM</a> m j =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) j</span> <a href="src/MonadLib.html#line-511" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:WriterM:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: j -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:ReaderM:16" class="instance expander" onclick="toggleSection('i:id:StateT:ReaderM:16')"></span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> m j =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) j</span> <a href="src/MonadLib.html#line-495" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:ReaderM:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m j <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:BaseM:17" class="instance expander" onclick="toggleSection('i:id:StateT:BaseM:17')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> m n =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) n</span> <a href="src/MonadLib.html#line-301" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:BaseM:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:StateT:RunM:18" class="instance expander" onclick="toggleSection('i:id:StateT:RunM:18')"></span> <a href="MonadLib.html#t:RunM">RunM</a> m (a, i) r =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) a (i -&gt; r)</span> <a href="src/MonadLib.html#line-212" class="link">Source</a> <a href="#t:StateT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:StateT:RunM:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; i -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ExceptionT" class="def">ExceptionT</a> i m a <a href="src/MonadLib.html#ExceptionT" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></p><div class="doc"><p>Add support for exceptions of type <code>i</code>.</p></div><div class="subs instances"><p id="control.i:ExceptionT" class="caption collapser" onclick="toggleSection('i:ExceptionT')">Instances</p><div id="section.i:ExceptionT" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:MonadT:1" class="instance expander" onclick="toggleSection('i:id:ExceptionT:MonadT:1')"></span> <a href="MonadLib.html#t:MonadT">MonadT</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i)</span> <a href="src/MonadLib.html#line-248" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:MonadT:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:Monad:2" class="instance expander" onclick="toggleSection('i:id:ExceptionT:Monad:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m)</span> <a href="src/MonadLib.html#line-346" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:Monad:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; (a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m b) -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m b -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:Functor:3" class="instance expander" onclick="toggleSection('i:id:ExceptionT:Functor:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m)</span> <a href="src/MonadLib.html#line-374" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:Functor:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m b -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:MonadFix:4" class="instance expander" onclick="toggleSection('i:id:ExceptionT:MonadFix:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m)</span> <a href="src/MonadLib.html#line-441" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:MonadFix:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mfix">mfix</a> :: (a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a) -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="#v:mfix" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:Applicative:5" class="instance expander" onclick="toggleSection('i:id:ExceptionT:Applicative:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m)</span> <a href="src/MonadLib.html#line-390" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:Applicative:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m (a -&gt; b) -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m b -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m b -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:Alternative:6" class="instance expander" onclick="toggleSection('i:id:ExceptionT:Alternative:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Alternative">Alternative</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m)</span> <a href="src/MonadLib.html#line-403" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:Alternative:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:empty">empty</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="#v:empty" class="selflink">#</a></p><p class="src"><a href="#v:-60--124--62-">(&lt;|&gt;)</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="#v:-60--124--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m [a] <a href="#v:many" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:MonadPlus:7" class="instance expander" onclick="toggleSection('i:id:ExceptionT:MonadPlus:7')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m)</span> <a href="src/MonadLib.html#line-464" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:MonadPlus:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mzero">mzero</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="#v:mzero" class="selflink">#</a></p><p class="src"><a href="#v:mplus">mplus</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="#v:mplus" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:ContM:8" class="instance expander" onclick="toggleSection('i:id:ExceptionT:ContM:8')"></span> <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m)</span> <a href="src/MonadLib.html#line-600" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:ContM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m)) -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a) -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:AbortM:9" class="instance expander" onclick="toggleSection('i:id:ExceptionT:AbortM:9')"></span> <a href="MonadLib.html#t:AbortM">AbortM</a> m i =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> j m) i</span> <a href="src/MonadLib.html#line-728" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:AbortM:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> j m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:RunExceptionM:10" class="instance expander" onclick="toggleSection('i:id:ExceptionT:RunExceptionM:10')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) i</span> <a href="src/MonadLib.html#line-694" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:RunExceptionM:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:try">try</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:RunWriterM:11" class="instance expander" onclick="toggleSection('i:id:ExceptionT:RunWriterM:11')"></span> <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> m j =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) j</span> <a href="src/MonadLib.html#line-656" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:RunWriterM:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m (a, j) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:RunReaderM:12" class="instance expander" onclick="toggleSection('i:id:ExceptionT:RunReaderM:12')"></span> <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> m j =&gt; <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) j</span> <a href="src/MonadLib.html#line-634" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:RunReaderM:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: j -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:ExceptionM:13" class="instance expander" onclick="toggleSection('i:id:ExceptionT:ExceptionM:13')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) i</span> <a href="src/MonadLib.html#line-553" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:ExceptionM:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: i -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:StateM:14" class="instance expander" onclick="toggleSection('i:id:ExceptionT:StateM:14')"></span> <a href="MonadLib.html#t:StateM">StateM</a> m j =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) j</span> <a href="src/MonadLib.html#line-533" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:StateM:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m j <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: j -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:WriterM:15" class="instance expander" onclick="toggleSection('i:id:ExceptionT:WriterM:15')"></span> <a href="MonadLib.html#t:WriterM">WriterM</a> m j =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) j</span> <a href="src/MonadLib.html#line-512" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:WriterM:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: j -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:ReaderM:16" class="instance expander" onclick="toggleSection('i:id:ExceptionT:ReaderM:16')"></span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> m j =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) j</span> <a href="src/MonadLib.html#line-496" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:ReaderM:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m j <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:BaseM:17" class="instance expander" onclick="toggleSection('i:id:ExceptionT:BaseM:17')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> m n =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) n</span> <a href="src/MonadLib.html#line-304" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:BaseM:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ExceptionT:RunM:18" class="instance expander" onclick="toggleSection('i:id:ExceptionT:RunM:18')"></span> <a href="MonadLib.html#t:RunM">RunM</a> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) r =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) a r</span> <a href="src/MonadLib.html#line-215" class="link">Source</a> <a href="#t:ExceptionT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ExceptionT:RunM:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="doc"><p>About the <code><a href="MonadLib.html#t:WriterM">WriterM</a></code> instance:
 If an exception is risen while we are collecting output,
 then the output is lost.  If the output is important,
 then use <code><a href="MonadLib.html#v:try">try</a></code> to ensure that no exception may occur.
 Example:</p><pre>do (r,w) &lt;- collect (try m)
   case r of
     Left err -&gt; ...do something...
     Right a  -&gt; ...do something...</pre></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ChoiceT" class="def">ChoiceT</a> m a <a href="src/MonadLib.html#ChoiceT" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></p><div class="doc"><p>Add support for multiple answers.</p></div><div class="subs instances"><p id="control.i:ChoiceT" class="caption collapser" onclick="toggleSection('i:ChoiceT')">Instances</p><div id="section.i:ChoiceT" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:MonadT:1" class="instance expander" onclick="toggleSection('i:id:ChoiceT:MonadT:1')"></span> <a href="MonadLib.html#t:MonadT">MonadT</a> <a href="MonadLib.html#t:ChoiceT">ChoiceT</a></span> <a href="src/MonadLib.html#line-249" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:MonadT:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:Monad:2" class="instance expander" onclick="toggleSection('i:id:ChoiceT:Monad:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m)</span> <a href="src/MonadLib.html#line-354" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:Monad:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; (a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m b) -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m b -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:Functor:3" class="instance expander" onclick="toggleSection('i:id:ChoiceT:Functor:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m)</span> <a href="src/MonadLib.html#line-375" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:Functor:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m b -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:Applicative:4" class="instance expander" onclick="toggleSection('i:id:ChoiceT:Applicative:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m)</span> <a href="src/MonadLib.html#line-392" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:Applicative:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m (a -&gt; b) -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m b -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m b -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:Alternative:5" class="instance expander" onclick="toggleSection('i:id:ChoiceT:Alternative:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Alternative">Alternative</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m)</span> <a href="src/MonadLib.html#line-405" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:Alternative:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:empty">empty</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="#v:empty" class="selflink">#</a></p><p class="src"><a href="#v:-60--124--62-">(&lt;|&gt;)</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="#v:-60--124--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m [a] <a href="#v:many" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:MonadPlus:6" class="instance expander" onclick="toggleSection('i:id:ChoiceT:MonadPlus:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m)</span> <a href="src/MonadLib.html#line-468" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:MonadPlus:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mzero">mzero</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="#v:mzero" class="selflink">#</a></p><p class="src"><a href="#v:mplus">mplus</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="#v:mplus" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:ContM:7" class="instance expander" onclick="toggleSection('i:id:ChoiceT:ContM:7')"></span> <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m)</span> <a href="src/MonadLib.html#line-603" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:ContM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m)) -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a) -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:AbortM:8" class="instance expander" onclick="toggleSection('i:id:ChoiceT:AbortM:8')"></span> <a href="MonadLib.html#t:AbortM">AbortM</a> m i =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) i</span> <a href="src/MonadLib.html#line-729" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:AbortM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:ExceptionM:9" class="instance expander" onclick="toggleSection('i:id:ChoiceT:ExceptionM:9')"></span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m j =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) j</span> <a href="src/MonadLib.html#line-564" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:ExceptionM:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: j -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:StateM:10" class="instance expander" onclick="toggleSection('i:id:ChoiceT:StateM:10')"></span> <a href="MonadLib.html#t:StateM">StateM</a> m j =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) j</span> <a href="src/MonadLib.html#line-535" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:StateM:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m j <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: j -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:WriterM:11" class="instance expander" onclick="toggleSection('i:id:ChoiceT:WriterM:11')"></span> <a href="MonadLib.html#t:WriterM">WriterM</a> m j =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) j</span> <a href="src/MonadLib.html#line-513" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:WriterM:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: j -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:ReaderM:12" class="instance expander" onclick="toggleSection('i:id:ChoiceT:ReaderM:12')"></span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> m j =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) j</span> <a href="src/MonadLib.html#line-497" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:ReaderM:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m j <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:BaseM:13" class="instance expander" onclick="toggleSection('i:id:ChoiceT:BaseM:13')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> m n =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) n</span> <a href="src/MonadLib.html#line-305" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:BaseM:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ChoiceT:RunM:14" class="instance expander" onclick="toggleSection('i:id:ChoiceT:RunM:14')"></span> <a href="MonadLib.html#t:RunM">RunM</a> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (a, <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a)) r =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) a r</span> <a href="src/MonadLib.html#line-221" class="link">Source</a> <a href="#t:ChoiceT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ChoiceT:RunM:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:ContT" class="def">ContT</a> i m a <a href="src/MonadLib.html#ContT" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></p><div class="doc"><p>Add support for continuations within a prompt of type <code>i</code>.</p></div><div class="subs instances"><p id="control.i:ContT" class="caption collapser" onclick="toggleSection('i:ContT')">Instances</p><div id="section.i:ContT" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:MonadT:1" class="instance expander" onclick="toggleSection('i:id:ContT:MonadT:1')"></span> <a href="MonadLib.html#t:MonadT">MonadT</a> (<a href="MonadLib.html#t:ContT">ContT</a> i)</span> <a href="src/MonadLib.html#line-250" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:MonadT:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:Monad:2" class="instance expander" onclick="toggleSection('i:id:ContT:Monad:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m)</span> <a href="src/MonadLib.html#line-363" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:Monad:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; (a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m b) -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m b -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:Functor:3" class="instance expander" onclick="toggleSection('i:id:ContT:Functor:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m)</span> <a href="src/MonadLib.html#line-376" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:Functor:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m b -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:Applicative:4" class="instance expander" onclick="toggleSection('i:id:ContT:Applicative:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m)</span> <a href="src/MonadLib.html#line-393" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:Applicative:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m (a -&gt; b) -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m b -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m b -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:Alternative:5" class="instance expander" onclick="toggleSection('i:id:ContT:Alternative:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Alternative">Alternative</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m)</span> <a href="src/MonadLib.html#line-407" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:Alternative:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:empty">empty</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="#v:empty" class="selflink">#</a></p><p class="src"><a href="#v:-60--124--62-">(&lt;|&gt;)</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="#v:-60--124--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m [a] <a href="#v:many" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:MonadPlus:6" class="instance expander" onclick="toggleSection('i:id:ContT:MonadPlus:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m)</span> <a href="src/MonadLib.html#line-473" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:MonadPlus:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mzero">mzero</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="#v:mzero" class="selflink">#</a></p><p class="src"><a href="#v:mplus">mplus</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="#v:mplus" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:ContM:7" class="instance expander" onclick="toggleSection('i:id:ContT:ContM:7')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m)</span> <a href="src/MonadLib.html#line-607" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:ContM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m)) -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a) -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:AbortM:8" class="instance expander" onclick="toggleSection('i:id:ContT:AbortM:8')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) i</span> <a href="src/MonadLib.html#line-717" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:AbortM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:RunWriterM:9" class="instance expander" onclick="toggleSection('i:id:ContT:RunWriterM:9')"></span> (<a href="MonadLib.html#t:RunWriterM">RunWriterM</a> m j, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> m) =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) j</span> <a href="src/MonadLib.html#line-660" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:RunWriterM:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m (a, j) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:RunReaderM:10" class="instance expander" onclick="toggleSection('i:id:ContT:RunReaderM:10')"></span> <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> m j =&gt; <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) j</span> <a href="src/MonadLib.html#line-637" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:RunReaderM:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: j -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:ExceptionM:11" class="instance expander" onclick="toggleSection('i:id:ContT:ExceptionM:11')"></span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m j =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) j</span> <a href="src/MonadLib.html#line-566" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:ExceptionM:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: j -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:StateM:12" class="instance expander" onclick="toggleSection('i:id:ContT:StateM:12')"></span> <a href="MonadLib.html#t:StateM">StateM</a> m j =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) j</span> <a href="src/MonadLib.html#line-537" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:StateM:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m j <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: j -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:WriterM:13" class="instance expander" onclick="toggleSection('i:id:ContT:WriterM:13')"></span> <a href="MonadLib.html#t:WriterM">WriterM</a> m j =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) j</span> <a href="src/MonadLib.html#line-514" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:WriterM:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: j -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:ReaderM:14" class="instance expander" onclick="toggleSection('i:id:ContT:ReaderM:14')"></span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> m j =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) j</span> <a href="src/MonadLib.html#line-498" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:ReaderM:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m j <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:BaseM:15" class="instance expander" onclick="toggleSection('i:id:ContT:BaseM:15')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> m n =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) n</span> <a href="src/MonadLib.html#line-306" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:BaseM:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:ContT:RunM:16" class="instance expander" onclick="toggleSection('i:id:ContT:RunM:16')"></span> <a href="MonadLib.html#t:RunM">RunM</a> m i r =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) a ((a -&gt; m i) -&gt; r)</span> <a href="src/MonadLib.html#line-218" class="link">Source</a> <a href="#t:ContT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:ContT:RunM:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; (a -&gt; m i) -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h1 id="g:2">Lifting</h1><div class="doc"><p>The following operations allow us to promote computations
 in the underlying monad to computations that support an extra
 effect.  Computations defined in this way do not make use of
 the new effect but can be combined with other operations that
 utilize the effect.</p></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:MonadT" class="def">MonadT</a> t <span class="keyword">where</span> <a href="src/MonadLib.html#MonadT" class="link">Source</a> <a href="#t:MonadT" class="selflink">#</a></p><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="MonadLib.html#v:lift">lift</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:lift" class="def">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; t m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p><div class="doc"><p>Promote a computation from the underlying monad.</p></div></div><div class="subs instances"><p id="control.i:MonadT" class="caption collapser" onclick="toggleSection('i:MonadT')">Instances</p><div id="section.i:MonadT" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadT:MonadT:1" class="instance expander" onclick="toggleSection('i:ic:MonadT:MonadT:1')"></span> <a href="MonadLib.html#t:MonadT">MonadT</a> <a href="MonadLib.html#t:ChoiceT">ChoiceT</a></span> <a href="src/MonadLib.html#line-249" class="link">Source</a> <a href="#t:MonadT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:MonadT:MonadT:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadT:MonadT:2" class="instance expander" onclick="toggleSection('i:ic:MonadT:MonadT:2')"></span> <a href="MonadLib.html#t:MonadT">MonadT</a> <a href="MonadLib.html#t:IdT">IdT</a></span> <a href="src/MonadLib.html#line-243" class="link">Source</a> <a href="#t:MonadT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:MonadT:MonadT:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadT:MonadT:3" class="instance expander" onclick="toggleSection('i:ic:MonadT:MonadT:3')"></span> <a href="MonadLib.html#t:MonadT">MonadT</a> (<a href="MonadLib.html#t:ContT">ContT</a> i)</span> <a href="src/MonadLib.html#line-250" class="link">Source</a> <a href="#t:MonadT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:MonadT:MonadT:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadT:MonadT:4" class="instance expander" onclick="toggleSection('i:ic:MonadT:MonadT:4')"></span> <a href="MonadLib.html#t:MonadT">MonadT</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i)</span> <a href="src/MonadLib.html#line-248" class="link">Source</a> <a href="#t:MonadT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:MonadT:MonadT:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadT:MonadT:5" class="instance expander" onclick="toggleSection('i:ic:MonadT:MonadT:5')"></span> <a href="MonadLib.html#t:MonadT">MonadT</a> (<a href="MonadLib.html#t:StateT">StateT</a> i)</span> <a href="src/MonadLib.html#line-245" class="link">Source</a> <a href="#t:MonadT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:MonadT:MonadT:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadT:MonadT:6" class="instance expander" onclick="toggleSection('i:ic:MonadT:MonadT:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i =&gt; <a href="MonadLib.html#t:MonadT">MonadT</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i)</span> <a href="src/MonadLib.html#line-246" class="link">Source</a> <a href="#t:MonadT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:MonadT:MonadT:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:MonadT:MonadT:7" class="instance expander" onclick="toggleSection('i:ic:MonadT:MonadT:7')"></span> <a href="MonadLib.html#t:MonadT">MonadT</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i)</span> <a href="src/MonadLib.html#line-244" class="link">Source</a> <a href="#t:MonadT" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:MonadT:MonadT:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lift">lift</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="src/MonadLib.html#lift" class="link">Source</a> <a href="#v:lift" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> n) =&gt; <a id="t:BaseM" class="def">BaseM</a> m n | m -&gt; n <span class="keyword">where</span> <a href="src/MonadLib.html#BaseM" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></p><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="MonadLib.html#v:inBase">inBase</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:inBase" class="def">inBase</a> :: n a -&gt; m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p><div class="doc"><p>Promote a computation from the base monad.</p></div></div><div class="subs instances"><p id="control.i:BaseM" class="caption collapser" onclick="toggleSection('i:BaseM')">Instances</p><div id="section.i:BaseM" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:1" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:1')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> [] []</span> <a href="src/MonadLib.html#line-293" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: [a] -&gt; [a] <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:2" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:2')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a></span> <a href="src/MonadLib.html#line-292" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:3" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:3')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a></span> <a href="src/MonadLib.html#line-291" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:4" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:4')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> <a href="MonadLib.html#t:Lift">Lift</a> <a href="MonadLib.html#t:Lift">Lift</a></span> <a href="src/MonadLib.html#line-295" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: <a href="MonadLib.html#t:Lift">Lift</a> a -&gt; <a href="MonadLib.html#t:Lift">Lift</a> a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:5" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:5')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> <a href="MonadLib.html#t:Id">Id</a> <a href="MonadLib.html#t:Id">Id</a></span> <a href="src/MonadLib.html#line-294" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: <a href="MonadLib.html#t:Id">Id</a> a -&gt; <a href="MonadLib.html#t:Id">Id</a> a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:6" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:6')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> m n =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) n</span> <a href="src/MonadLib.html#line-305" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:7" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:7')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> m n =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) n</span> <a href="src/MonadLib.html#line-299" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:8" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:8')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-ST.html#t:ST">ST</a> s) (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-ST.html#t:ST">ST</a> s)</span> <a href="src/MonadLib.html#line-296" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-ST.html#t:ST">ST</a> s a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-ST.html#t:ST">ST</a> s a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:9" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:9')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib-Monads.html#t:Cont">Cont</a> i) (<a href="MonadLib-Monads.html#t:Cont">Cont</a> i)</span> <a href="src/MonadLib.html#line-44" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: <a href="MonadLib-Monads.html#t:Cont">Cont</a> i a -&gt; <a href="MonadLib-Monads.html#t:Cont">Cont</a> i a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:10" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:10')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib-Monads.html#t:Exception">Exception</a> i) (<a href="MonadLib-Monads.html#t:Exception">Exception</a> i)</span> <a href="src/MonadLib.html#line-43" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: <a href="MonadLib-Monads.html#t:Exception">Exception</a> i a -&gt; <a href="MonadLib-Monads.html#t:Exception">Exception</a> i a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:11" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:11')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib-Monads.html#t:State">State</a> i) (<a href="MonadLib-Monads.html#t:State">State</a> i)</span> <a href="src/MonadLib.html#line-42" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: <a href="MonadLib-Monads.html#t:State">State</a> i a -&gt; <a href="MonadLib-Monads.html#t:State">State</a> i a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:12" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:12')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib-Monads.html#t:Writer">Writer</a> i) (<a href="MonadLib-Monads.html#t:Writer">Writer</a> i)</span> <a href="src/MonadLib.html#line-41" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: <a href="MonadLib-Monads.html#t:Writer">Writer</a> i a -&gt; <a href="MonadLib-Monads.html#t:Writer">Writer</a> i a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:13" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:13')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib-Monads.html#t:Reader">Reader</a> i) (<a href="MonadLib-Monads.html#t:Reader">Reader</a> i)</span> <a href="src/MonadLib.html#line-40" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: <a href="MonadLib-Monads.html#t:Reader">Reader</a> i a -&gt; <a href="MonadLib-Monads.html#t:Reader">Reader</a> i a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:14" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:14')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> m n =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) n</span> <a href="src/MonadLib.html#line-306" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:15" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:15')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> m n =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) n</span> <a href="src/MonadLib.html#line-304" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:15" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:16" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:16')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> m n =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) n</span> <a href="src/MonadLib.html#line-301" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:16" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:17" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:17')"></span> (<a href="MonadLib.html#t:BaseM">BaseM</a> m n, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) n</span> <a href="src/MonadLib.html#line-302" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:17" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:BaseM:BaseM:18" class="instance expander" onclick="toggleSection('i:ic:BaseM:BaseM:18')"></span> <a href="MonadLib.html#t:BaseM">BaseM</a> m n =&gt; <a href="MonadLib.html#t:BaseM">BaseM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) n</span> <a href="src/MonadLib.html#line-300" class="link">Source</a> <a href="#t:BaseM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:BaseM:BaseM:18" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:inBase">inBase</a> :: n a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="src/MonadLib.html#inBase" class="link">Source</a> <a href="#v:inBase" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h1 id="g:3">Effect Classes</h1><div class="doc"><p>The following classes define overloaded operations
 that can be used to define effectful computations.</p></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a id="t:ReaderM" class="def">ReaderM</a> m i | m -&gt; i <span class="keyword">where</span> <a href="src/MonadLib.html#ReaderM" class="link">Source</a> <a href="#t:ReaderM" class="selflink">#</a></p><div class="doc"><p>Classifies monads that provide access to a context of type <code>i</code>.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="MonadLib.html#v:ask">ask</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:ask" class="def">ask</a> :: m i <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p><div class="doc"><p>Get the context.</p></div></div><div class="subs instances"><p id="control.i:ReaderM" class="caption collapser" onclick="toggleSection('i:ReaderM')">Instances</p><div id="section.i:ReaderM" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ReaderM:ReaderM:1" class="instance expander" onclick="toggleSection('i:ic:ReaderM:ReaderM:1')"></span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> m j =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) j</span> <a href="src/MonadLib.html#line-497" class="link">Source</a> <a href="#t:ReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ReaderM:ReaderM:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m j <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ReaderM:ReaderM:2" class="instance expander" onclick="toggleSection('i:ic:ReaderM:ReaderM:2')"></span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> m j =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) j</span> <a href="src/MonadLib.html#line-492" class="link">Source</a> <a href="#t:ReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ReaderM:ReaderM:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m j <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ReaderM:ReaderM:3" class="instance expander" onclick="toggleSection('i:ic:ReaderM:ReaderM:3')"></span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib-Monads.html#t:Reader">Reader</a> i) i</span> <a href="src/MonadLib.html#line-88" class="link">Source</a> <a href="#t:ReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ReaderM:ReaderM:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib-Monads.html#t:Reader">Reader</a> i i <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ReaderM:ReaderM:4" class="instance expander" onclick="toggleSection('i:ic:ReaderM:ReaderM:4')"></span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> m j =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) j</span> <a href="src/MonadLib.html#line-498" class="link">Source</a> <a href="#t:ReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ReaderM:ReaderM:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m j <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ReaderM:ReaderM:5" class="instance expander" onclick="toggleSection('i:ic:ReaderM:ReaderM:5')"></span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> m j =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) j</span> <a href="src/MonadLib.html#line-496" class="link">Source</a> <a href="#t:ReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ReaderM:ReaderM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m j <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ReaderM:ReaderM:6" class="instance expander" onclick="toggleSection('i:ic:ReaderM:ReaderM:6')"></span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> m j =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) j</span> <a href="src/MonadLib.html#line-495" class="link">Source</a> <a href="#t:ReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ReaderM:ReaderM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m j <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ReaderM:ReaderM:7" class="instance expander" onclick="toggleSection('i:ic:ReaderM:ReaderM:7')"></span> (<a href="MonadLib.html#t:ReaderM">ReaderM</a> m j, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) j</span> <a href="src/MonadLib.html#line-493" class="link">Source</a> <a href="#t:ReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ReaderM:ReaderM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m j <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ReaderM:ReaderM:8" class="instance expander" onclick="toggleSection('i:ic:ReaderM:ReaderM:8')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:ReaderM">ReaderM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) i</span> <a href="src/MonadLib.html#line-489" class="link">Source</a> <a href="#t:ReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ReaderM:ReaderM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ask">ask</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m i <a href="src/MonadLib.html#ask" class="link">Source</a> <a href="#v:ask" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a id="t:WriterM" class="def">WriterM</a> m i | m -&gt; i <span class="keyword">where</span> <a href="src/MonadLib.html#WriterM" class="link">Source</a> <a href="#t:WriterM" class="selflink">#</a></p><div class="doc"><p>Classifies monads that can collect values of type <code>i</code>.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="MonadLib.html#v:put">put</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:put" class="def">put</a> :: i -&gt; m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p><div class="doc"><p>Add a value to the collection.</p></div></div><div class="subs instances"><p id="control.i:WriterM" class="caption collapser" onclick="toggleSection('i:WriterM')">Instances</p><div id="section.i:WriterM" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:WriterM:WriterM:1" class="instance expander" onclick="toggleSection('i:ic:WriterM:WriterM:1')"></span> <a href="MonadLib.html#t:WriterM">WriterM</a> m j =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) j</span> <a href="src/MonadLib.html#line-513" class="link">Source</a> <a href="#t:WriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:WriterM:WriterM:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: j -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:WriterM:WriterM:2" class="instance expander" onclick="toggleSection('i:ic:WriterM:WriterM:2')"></span> <a href="MonadLib.html#t:WriterM">WriterM</a> m j =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) j</span> <a href="src/MonadLib.html#line-509" class="link">Source</a> <a href="#t:WriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:WriterM:WriterM:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: j -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:WriterM:WriterM:3" class="instance expander" onclick="toggleSection('i:ic:WriterM:WriterM:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib-Monads.html#t:Writer">Writer</a> i) i</span> <a href="src/MonadLib.html#line-89" class="link">Source</a> <a href="#t:WriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:WriterM:WriterM:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: i -&gt; <a href="MonadLib-Monads.html#t:Writer">Writer</a> i () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:WriterM:WriterM:4" class="instance expander" onclick="toggleSection('i:ic:WriterM:WriterM:4')"></span> <a href="MonadLib.html#t:WriterM">WriterM</a> m j =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) j</span> <a href="src/MonadLib.html#line-514" class="link">Source</a> <a href="#t:WriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:WriterM:WriterM:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: j -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:WriterM:WriterM:5" class="instance expander" onclick="toggleSection('i:ic:WriterM:WriterM:5')"></span> <a href="MonadLib.html#t:WriterM">WriterM</a> m j =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) j</span> <a href="src/MonadLib.html#line-512" class="link">Source</a> <a href="#t:WriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:WriterM:WriterM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: j -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:WriterM:WriterM:6" class="instance expander" onclick="toggleSection('i:ic:WriterM:WriterM:6')"></span> <a href="MonadLib.html#t:WriterM">WriterM</a> m j =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) j</span> <a href="src/MonadLib.html#line-511" class="link">Source</a> <a href="#t:WriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:WriterM:WriterM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: j -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:WriterM:WriterM:7" class="instance expander" onclick="toggleSection('i:ic:WriterM:WriterM:7')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) i</span> <a href="src/MonadLib.html#line-506" class="link">Source</a> <a href="#t:WriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:WriterM:WriterM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: i -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:WriterM:WriterM:8" class="instance expander" onclick="toggleSection('i:ic:WriterM:WriterM:8')"></span> <a href="MonadLib.html#t:WriterM">WriterM</a> m j =&gt; <a href="MonadLib.html#t:WriterM">WriterM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) j</span> <a href="src/MonadLib.html#line-510" class="link">Source</a> <a href="#t:WriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:WriterM:WriterM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:put">put</a> :: j -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m () <a href="src/MonadLib.html#put" class="link">Source</a> <a href="#v:put" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a id="t:StateM" class="def">StateM</a> m i | m -&gt; i <span class="keyword">where</span> <a href="src/MonadLib.html#StateM" class="link">Source</a> <a href="#t:StateM" class="selflink">#</a></p><div class="doc"><p>Classifies monads that propagate a state component of type <code>i</code>.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="MonadLib.html#v:get">get</a>, <a href="MonadLib.html#v:set">set</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:get" class="def">get</a> :: m i <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><div class="doc"><p>Get the state.</p></div><p class="src"><a id="v:set" class="def">set</a> :: i -&gt; m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p><div class="doc"><p>Set the state.</p></div></div><div class="subs instances"><p id="control.i:StateM" class="caption collapser" onclick="toggleSection('i:StateM')">Instances</p><div id="section.i:StateM" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:StateM:StateM:1" class="instance expander" onclick="toggleSection('i:ic:StateM:StateM:1')"></span> <a href="MonadLib.html#t:StateM">StateM</a> m j =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) j</span> <a href="src/MonadLib.html#line-535" class="link">Source</a> <a href="#t:StateM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:StateM:StateM:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m j <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: j -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:StateM:StateM:2" class="instance expander" onclick="toggleSection('i:ic:StateM:StateM:2')"></span> <a href="MonadLib.html#t:StateM">StateM</a> m j =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) j</span> <a href="src/MonadLib.html#line-527" class="link">Source</a> <a href="#t:StateM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:StateM:StateM:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m j <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: j -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:StateM:StateM:3" class="instance expander" onclick="toggleSection('i:ic:StateM:StateM:3')"></span> <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib-Monads.html#t:State">State</a> i) i</span> <a href="src/MonadLib.html#line-90" class="link">Source</a> <a href="#t:StateM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:StateM:StateM:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib-Monads.html#t:State">State</a> i i <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: i -&gt; <a href="MonadLib-Monads.html#t:State">State</a> i () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:StateM:StateM:4" class="instance expander" onclick="toggleSection('i:ic:StateM:StateM:4')"></span> <a href="MonadLib.html#t:StateM">StateM</a> m j =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) j</span> <a href="src/MonadLib.html#line-537" class="link">Source</a> <a href="#t:StateM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:StateM:StateM:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m j <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: j -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:StateM:StateM:5" class="instance expander" onclick="toggleSection('i:ic:StateM:StateM:5')"></span> <a href="MonadLib.html#t:StateM">StateM</a> m j =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) j</span> <a href="src/MonadLib.html#line-533" class="link">Source</a> <a href="#t:StateM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:StateM:StateM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m j <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: j -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:StateM:StateM:6" class="instance expander" onclick="toggleSection('i:ic:StateM:StateM:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) i</span> <a href="src/MonadLib.html#line-523" class="link">Source</a> <a href="#t:StateM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:StateM:StateM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m i <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: i -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:StateM:StateM:7" class="instance expander" onclick="toggleSection('i:ic:StateM:StateM:7')"></span> (<a href="MonadLib.html#t:StateM">StateM</a> m j, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) j</span> <a href="src/MonadLib.html#line-531" class="link">Source</a> <a href="#t:StateM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:StateM:StateM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m j <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: j -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:StateM:StateM:8" class="instance expander" onclick="toggleSection('i:ic:StateM:StateM:8')"></span> <a href="MonadLib.html#t:StateM">StateM</a> m j =&gt; <a href="MonadLib.html#t:StateM">StateM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) j</span> <a href="src/MonadLib.html#line-529" class="link">Source</a> <a href="#t:StateM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:StateM:StateM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:get">get</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m j <a href="src/MonadLib.html#get" class="link">Source</a> <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:set">set</a> :: j -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m () <a href="src/MonadLib.html#set" class="link">Source</a> <a href="#v:set" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a id="t:ExceptionM" class="def">ExceptionM</a> m i | m -&gt; i <span class="keyword">where</span> <a href="src/MonadLib.html#ExceptionM" class="link">Source</a> <a href="#t:ExceptionM" class="selflink">#</a></p><div class="doc"><p>Classifies monads that support raising exceptions of type <code>i</code>.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="MonadLib.html#v:raise">raise</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:raise" class="def">raise</a> :: i -&gt; m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p><div class="doc"><p>Raise an exception.</p></div></div><div class="subs instances"><p id="control.i:ExceptionM" class="caption collapser" onclick="toggleSection('i:ExceptionM')">Instances</p><div id="section.i:ExceptionM" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ExceptionM:ExceptionM:1" class="instance expander" onclick="toggleSection('i:ic:ExceptionM:ExceptionM:1')"></span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/MonadLib.html#line-549" class="link">Source</a> <a href="#t:ExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ExceptionM:ExceptionM:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ExceptionM:ExceptionM:2" class="instance expander" onclick="toggleSection('i:ic:ExceptionM:ExceptionM:2')"></span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m j =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) j</span> <a href="src/MonadLib.html#line-564" class="link">Source</a> <a href="#t:ExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ExceptionM:ExceptionM:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: j -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ExceptionM:ExceptionM:3" class="instance expander" onclick="toggleSection('i:ic:ExceptionM:ExceptionM:3')"></span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m j =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) j</span> <a href="src/MonadLib.html#line-556" class="link">Source</a> <a href="#t:ExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ExceptionM:ExceptionM:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: j -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ExceptionM:ExceptionM:4" class="instance expander" onclick="toggleSection('i:ic:ExceptionM:ExceptionM:4')"></span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib-Monads.html#t:Exception">Exception</a> i) i</span> <a href="src/MonadLib.html#line-91" class="link">Source</a> <a href="#t:ExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ExceptionM:ExceptionM:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: i -&gt; <a href="MonadLib-Monads.html#t:Exception">Exception</a> i a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ExceptionM:ExceptionM:5" class="instance expander" onclick="toggleSection('i:ic:ExceptionM:ExceptionM:5')"></span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m j =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) j</span> <a href="src/MonadLib.html#line-566" class="link">Source</a> <a href="#t:ExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ExceptionM:ExceptionM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: j -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ExceptionM:ExceptionM:6" class="instance expander" onclick="toggleSection('i:ic:ExceptionM:ExceptionM:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) i</span> <a href="src/MonadLib.html#line-553" class="link">Source</a> <a href="#t:ExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ExceptionM:ExceptionM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: i -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ExceptionM:ExceptionM:7" class="instance expander" onclick="toggleSection('i:ic:ExceptionM:ExceptionM:7')"></span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m j =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) j</span> <a href="src/MonadLib.html#line-562" class="link">Source</a> <a href="#t:ExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ExceptionM:ExceptionM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: j -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ExceptionM:ExceptionM:8" class="instance expander" onclick="toggleSection('i:ic:ExceptionM:ExceptionM:8')"></span> (<a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m j, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) j</span> <a href="src/MonadLib.html#line-560" class="link">Source</a> <a href="#t:ExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ExceptionM:ExceptionM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: j -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ExceptionM:ExceptionM:9" class="instance expander" onclick="toggleSection('i:ic:ExceptionM:ExceptionM:9')"></span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m j =&gt; <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) j</span> <a href="src/MonadLib.html#line-558" class="link">Source</a> <a href="#t:ExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ExceptionM:ExceptionM:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:raise">raise</a> :: j -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="src/MonadLib.html#raise" class="link">Source</a> <a href="#v:raise" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a id="t:ContM" class="def">ContM</a> m <span class="keyword">where</span> <a href="src/MonadLib.html#ContM" class="link">Source</a> <a href="#t:ContM" class="selflink">#</a></p><div class="doc"><p>Classifies monads that provide access to a computation's continuation.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="MonadLib.html#v:callWithCC">callWithCC</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:callWithCC" class="def">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> m) -&gt; m a) -&gt; m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p><div class="doc"><p>Capture the current continuation.</p></div></div><div class="subs instances"><p id="control.i:ContM" class="caption collapser" onclick="toggleSection('i:ContM')">Instances</p><div id="section.i:ContM" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ContM:ContM:1" class="instance expander" onclick="toggleSection('i:ic:ContM:ContM:1')"></span> <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m)</span> <a href="src/MonadLib.html#line-603" class="link">Source</a> <a href="#t:ContM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ContM:ContM:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m)) -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a) -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ContM:ContM:2" class="instance expander" onclick="toggleSection('i:ic:ContM:ContM:2')"></span> <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m)</span> <a href="src/MonadLib.html#line-587" class="link">Source</a> <a href="#t:ContM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ContM:ContM:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:IdT">IdT</a> m)) -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a) -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ContM:ContM:3" class="instance expander" onclick="toggleSection('i:ic:ContM:ContM:3')"></span> <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib-Monads.html#t:Cont">Cont</a> i)</span> <a href="src/MonadLib.html#line-92" class="link">Source</a> <a href="#t:ContM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ContM:ContM:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib-Monads.html#t:Cont">Cont</a> i)) -&gt; <a href="MonadLib-Monads.html#t:Cont">Cont</a> i a) -&gt; <a href="MonadLib-Monads.html#t:Cont">Cont</a> i a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ContM:ContM:4" class="instance expander" onclick="toggleSection('i:ic:ContM:ContM:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m)</span> <a href="src/MonadLib.html#line-607" class="link">Source</a> <a href="#t:ContM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ContM:ContM:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m)) -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a) -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ContM:ContM:5" class="instance expander" onclick="toggleSection('i:ic:ContM:ContM:5')"></span> <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m)</span> <a href="src/MonadLib.html#line-600" class="link">Source</a> <a href="#t:ContM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ContM:ContM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m)) -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a) -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ContM:ContM:6" class="instance expander" onclick="toggleSection('i:ic:ContM:ContM:6')"></span> <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m)</span> <a href="src/MonadLib.html#line-593" class="link">Source</a> <a href="#t:ContM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ContM:ContM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m)) -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a) -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ContM:ContM:7" class="instance expander" onclick="toggleSection('i:ic:ContM:ContM:7')"></span> (<a href="MonadLib.html#t:ContM">ContM</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m)</span> <a href="src/MonadLib.html#line-597" class="link">Source</a> <a href="#t:ContM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ContM:ContM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m)) -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a) -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:ContM:ContM:8" class="instance expander" onclick="toggleSection('i:ic:ContM:ContM:8')"></span> <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; <a href="MonadLib.html#t:ContM">ContM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m)</span> <a href="src/MonadLib.html#line-590" class="link">Source</a> <a href="#t:ContM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:ContM:ContM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:callWithCC">callWithCC</a> :: ((a -&gt; <a href="MonadLib.html#t:Label">Label</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m)) -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a) -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="src/MonadLib.html#callWithCC" class="link">Source</a> <a href="#v:callWithCC" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a id="t:AbortM" class="def">AbortM</a> m i <span class="keyword">where</span> <a href="src/MonadLib.html#AbortM" class="link">Source</a> <a href="#t:AbortM" class="selflink">#</a></p><div class="doc"><p>Classifies monads that support aborting the program and returning
 a given final result of type <code>i</code>.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="MonadLib.html#v:abort">abort</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:abort" class="def">abort</a> :: i -&gt; m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p><div class="doc"><p>Abort the program with the given value as final result.</p></div></div><div class="subs instances"><p id="control.i:AbortM" class="caption collapser" onclick="toggleSection('i:AbortM')">Instances</p><div id="section.i:AbortM" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AbortM:AbortM:1" class="instance expander" onclick="toggleSection('i:ic:AbortM:AbortM:1')"></span> <a href="MonadLib.html#t:AbortM">AbortM</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-Exit.html#t:ExitCode">ExitCode</a></span> <a href="src/MonadLib.html#line-720" class="link">Source</a> <a href="#t:AbortM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:AbortM:AbortM:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-Exit.html#t:ExitCode">ExitCode</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AbortM:AbortM:2" class="instance expander" onclick="toggleSection('i:ic:AbortM:AbortM:2')"></span> <a href="MonadLib.html#t:AbortM">AbortM</a> m i =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) i</span> <a href="src/MonadLib.html#line-729" class="link">Source</a> <a href="#t:AbortM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:AbortM:AbortM:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AbortM:AbortM:3" class="instance expander" onclick="toggleSection('i:ic:AbortM:AbortM:3')"></span> <a href="MonadLib.html#t:AbortM">AbortM</a> m i =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) i</span> <a href="src/MonadLib.html#line-723" class="link">Source</a> <a href="#t:AbortM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:AbortM:AbortM:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AbortM:AbortM:4" class="instance expander" onclick="toggleSection('i:ic:AbortM:AbortM:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) i</span> <a href="src/MonadLib.html#line-717" class="link">Source</a> <a href="#t:AbortM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:AbortM:AbortM:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AbortM:AbortM:5" class="instance expander" onclick="toggleSection('i:ic:AbortM:AbortM:5')"></span> <a href="MonadLib.html#t:AbortM">AbortM</a> m i =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> j m) i</span> <a href="src/MonadLib.html#line-728" class="link">Source</a> <a href="#t:AbortM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:AbortM:AbortM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> j m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AbortM:AbortM:6" class="instance expander" onclick="toggleSection('i:ic:AbortM:AbortM:6')"></span> <a href="MonadLib.html#t:AbortM">AbortM</a> m i =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:StateT">StateT</a> j m) i</span> <a href="src/MonadLib.html#line-727" class="link">Source</a> <a href="#t:AbortM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:AbortM:AbortM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:StateT">StateT</a> j m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AbortM:AbortM:7" class="instance expander" onclick="toggleSection('i:ic:AbortM:AbortM:7')"></span> (<a href="MonadLib.html#t:AbortM">AbortM</a> m i, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> j) =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> j m) i</span> <a href="src/MonadLib.html#line-725" class="link">Source</a> <a href="#t:AbortM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:AbortM:AbortM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> j m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:AbortM:AbortM:8" class="instance expander" onclick="toggleSection('i:ic:AbortM:AbortM:8')"></span> <a href="MonadLib.html#t:AbortM">AbortM</a> m i =&gt; <a href="MonadLib.html#t:AbortM">AbortM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> j m) i</span> <a href="src/MonadLib.html#line-724" class="link">Source</a> <a href="#t:AbortM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:AbortM:AbortM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:abort">abort</a> :: i -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> j m a <a href="src/MonadLib.html#abort" class="link">Source</a> <a href="#v:abort" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Label" class="def">Label</a> m <a href="src/MonadLib.html#Label" class="link">Source</a> <a href="#t:Label" class="selflink">#</a></p><div class="doc"><p>An explicit representation for monadic continuations.</p></div></div><div class="top"><p class="src"><a id="v:labelCC" class="def">labelCC</a> :: <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; a -&gt; m (a, a -&gt; <a href="MonadLib.html#t:Label">Label</a> m) <a href="src/MonadLib.html#labelCC" class="link">Source</a> <a href="#v:labelCC" class="selflink">#</a></p><div class="doc"><p>Capture the current continuation.
 This function is like <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#v:return">return</a></code>, except that it also captures
 the current continuation.  Later, we can use <code><a href="MonadLib.html#v:jump">jump</a></code> to repeat the
 computation from this point onwards but with a possibly different value.</p></div></div><div class="top"><p class="src"><a id="v:labelCC_" class="def">labelCC_</a> :: <span class="keyword">forall</span> m. <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; m (<a href="MonadLib.html#t:Label">Label</a> m) <a href="src/MonadLib.html#labelCC_" class="link">Source</a> <a href="#v:labelCC_" class="selflink">#</a></p><div class="doc"><p>Capture the current continuation.
 Later we can use <code><a href="MonadLib.html#v:jump">jump</a></code> to restart the program from this point.</p></div></div><div class="top"><p class="src"><a id="v:jump" class="def">jump</a> :: <a href="MonadLib.html#t:Label">Label</a> m -&gt; m a <a href="src/MonadLib.html#jump" class="link">Source</a> <a href="#v:jump" class="selflink">#</a></p><div class="doc"><p>Restart a previously captured computation.</p></div></div><div class="top"><p class="src"><a id="v:labelC" class="def">labelC</a> :: (<span class="keyword">forall</span> b. m b) -&gt; <a href="MonadLib.html#t:Label">Label</a> m <a href="src/MonadLib.html#labelC" class="link">Source</a> <a href="#v:labelC" class="selflink">#</a></p><div class="doc"><p>Label a given continuation.</p></div></div><div class="top"><p class="src"><a id="v:callCC" class="def">callCC</a> :: <a href="MonadLib.html#t:ContM">ContM</a> m =&gt; ((a -&gt; m b) -&gt; m a) -&gt; m a <a href="src/MonadLib.html#callCC" class="link">Source</a> <a href="#v:callCC" class="selflink">#</a></p><div class="doc"><p>A version of <code><a href="MonadLib.html#v:callWithCC">callWithCC</a></code> that avoids the need for an explicit
 use of the <code><a href="MonadLib.html#v:jump">jump</a></code> function.</p></div></div><h1 id="g:4">Execution</h1><h2 id="g:5">Eliminating Effects</h2><div class="doc"><p>The following functions eliminate the outermost effect
 of a computation by translating a computation into an
 equivalent computation in the underlying monad.
 (The exceptions are <code><a href="MonadLib.html#t:Id">Id</a></code> and <code><a href="MonadLib.html#t:Lift">Lift</a></code> which are not transformers
 but ordinary monads and so, their run operations simply
 eliminate the monad.)</p></div><div class="top"><p class="src"><a id="v:runId" class="def">runId</a> :: <a href="MonadLib.html#t:Id">Id</a> a -&gt; a <a href="src/MonadLib.html#runId" class="link">Source</a> <a href="#v:runId" class="selflink">#</a></p><div class="doc"><p>Get the result of a pure computation.</p></div></div><div class="top"><p class="src"><a id="v:runLift" class="def">runLift</a> :: <a href="MonadLib.html#t:Lift">Lift</a> a -&gt; a <a href="src/MonadLib.html#runLift" class="link">Source</a> <a href="#v:runLift" class="selflink">#</a></p><div class="doc"><p>Get the result of a pure strict computation.</p></div></div><div class="top"><p class="src"><a id="v:runIdT" class="def">runIdT</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; m a <a href="src/MonadLib.html#runIdT" class="link">Source</a> <a href="#v:runIdT" class="selflink">#</a></p><div class="doc"><p>Remove an identity layer.</p></div></div><div class="top"><p class="src"><a id="v:runReaderT" class="def">runReaderT</a> :: i -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; m a <a href="src/MonadLib.html#runReaderT" class="link">Source</a> <a href="#v:runReaderT" class="selflink">#</a></p><div class="doc"><p>Execute a reader computation in the given context.</p></div></div><div class="top"><p class="src"><a id="v:runWriterT" class="def">runWriterT</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; m (a, i) <a href="src/MonadLib.html#runWriterT" class="link">Source</a> <a href="#v:runWriterT" class="selflink">#</a></p><div class="doc"><p>Execute a writer computation.
 Returns the result and the collected output.</p></div></div><div class="top"><p class="src"><a id="v:runStateT" class="def">runStateT</a> :: i -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; m (a, i) <a href="src/MonadLib.html#runStateT" class="link">Source</a> <a href="#v:runStateT" class="selflink">#</a></p><div class="doc"><p>Execute a stateful computation in the given initial state.
 The second component of the result is the final state.</p></div></div><div class="top"><p class="src"><a id="v:runExceptionT" class="def">runExceptionT</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#runExceptionT" class="link">Source</a> <a href="#v:runExceptionT" class="selflink">#</a></p><div class="doc"><p>Execute a computation with exceptions.
 Successful results are tagged with <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#v:Right">Right</a></code>,
 exceptional results are tagged with <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#v:Left">Left</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:runContT" class="def">runContT</a> :: (a -&gt; m i) -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; m i <a href="src/MonadLib.html#runContT" class="link">Source</a> <a href="#v:runContT" class="selflink">#</a></p><div class="doc"><p>Execute a computation with the given continuation.</p></div></div><div class="top"><p class="src"><a id="v:runChoiceT" class="def">runChoiceT</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (a, <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a)) <a href="src/MonadLib.html#runChoiceT" class="link">Source</a> <a href="#v:runChoiceT" class="selflink">#</a></p><div class="doc"><p>Execute a computation that may return multiple answers.
 The resulting computation returns <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#v:Nothing">Nothing</a></code>
 if no answers were found, or <code>Just (answer,new_comp)</code>,
 where <code>answer</code> is an answer, and <code>new_comp</code> is a computation
 that may produce more answers.
 The search is depth-first and left-biased with respect to the
 <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#v:mplus">mplus</a></code> operation.</p></div></div><div class="top"><p class="src"><a id="v:findOne" class="def">findOne</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a) <a href="src/MonadLib.html#findOne" class="link">Source</a> <a href="#v:findOne" class="selflink">#</a></p><div class="doc"><p>Execute a computation that may return multiple answers,
 returning at most one answer.</p></div></div><div class="top"><p class="src"><a id="v:findAll" class="def">findAll</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; m [a] <a href="src/MonadLib.html#findAll" class="link">Source</a> <a href="#v:findAll" class="selflink">#</a></p><div class="doc"><p>Execute a computation that may return multiple answers,
 collecting all possible answers.</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a id="t:RunM" class="def">RunM</a> m a r | m a -&gt; r <span class="keyword">where</span> <a href="src/MonadLib.html#RunM" class="link">Source</a> <a href="#t:RunM" class="selflink">#</a></p><div class="doc"><p>Generalized running.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="MonadLib.html#v:runM">runM</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:runM" class="def">runM</a> :: m a -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:RunM" class="caption collapser" onclick="toggleSection('i:RunM')">Instances</p><div id="section.i:RunM" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunM:RunM:1" class="instance expander" onclick="toggleSection('i:ic:RunM:RunM:1')"></span> <a href="MonadLib.html#t:RunM">RunM</a> <a href="MonadLib.html#t:Lift">Lift</a> a a</span> <a href="src/MonadLib.html#line-197" class="link">Source</a> <a href="#t:RunM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunM:RunM:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:Lift">Lift</a> a -&gt; a <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunM:RunM:2" class="instance expander" onclick="toggleSection('i:ic:RunM:RunM:2')"></span> <a href="MonadLib.html#t:RunM">RunM</a> <a href="MonadLib.html#t:Id">Id</a> a a</span> <a href="src/MonadLib.html#line-194" class="link">Source</a> <a href="#t:RunM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunM:RunM:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:Id">Id</a> a -&gt; a <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunM:RunM:3" class="instance expander" onclick="toggleSection('i:ic:RunM:RunM:3')"></span> <a href="MonadLib.html#t:RunM">RunM</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a)</span> <a href="src/MonadLib.html#line-200" class="link">Source</a> <a href="#t:RunM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunM:RunM:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunM:RunM:4" class="instance expander" onclick="toggleSection('i:ic:RunM:RunM:4')"></span> <a href="MonadLib.html#t:RunM">RunM</a> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (a, <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a)) r =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m) a r</span> <a href="src/MonadLib.html#line-221" class="link">Source</a> <a href="#t:RunM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunM:RunM:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:ChoiceT">ChoiceT</a> m a -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunM:RunM:5" class="instance expander" onclick="toggleSection('i:ic:RunM:RunM:5')"></span> <a href="MonadLib.html#t:RunM">RunM</a> m a r =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) a r</span> <a href="src/MonadLib.html#line-203" class="link">Source</a> <a href="#t:RunM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunM:RunM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunM:RunM:6" class="instance expander" onclick="toggleSection('i:ic:RunM:RunM:6')"></span> <a href="MonadLib.html#t:RunM">RunM</a> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) r =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) a r</span> <a href="src/MonadLib.html#line-215" class="link">Source</a> <a href="#t:RunM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunM:RunM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunM:RunM:7" class="instance expander" onclick="toggleSection('i:ic:RunM:RunM:7')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i, <a href="MonadLib.html#t:RunM">RunM</a> m (a, i) r) =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) a r</span> <a href="src/MonadLib.html#line-209" class="link">Source</a> <a href="#t:RunM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunM:RunM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunM:RunM:8" class="instance expander" onclick="toggleSection('i:ic:RunM:RunM:8')"></span> <a href="MonadLib.html#t:RunM">RunM</a> m i r =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) a ((a -&gt; m i) -&gt; r)</span> <a href="src/MonadLib.html#line-218" class="link">Source</a> <a href="#t:RunM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunM:RunM:8" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; (a -&gt; m i) -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunM:RunM:9" class="instance expander" onclick="toggleSection('i:ic:RunM:RunM:9')"></span> <a href="MonadLib.html#t:RunM">RunM</a> m (a, i) r =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) a (i -&gt; r)</span> <a href="src/MonadLib.html#line-212" class="link">Source</a> <a href="#t:RunM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunM:RunM:9" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; i -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunM:RunM:10" class="instance expander" onclick="toggleSection('i:ic:RunM:RunM:10')"></span> <a href="MonadLib.html#t:RunM">RunM</a> m a r =&gt; <a href="MonadLib.html#t:RunM">RunM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) a (i -&gt; r)</span> <a href="src/MonadLib.html#line-206" class="link">Source</a> <a href="#t:RunM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunM:RunM:10" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:runM">runM</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; i -&gt; r <a href="src/MonadLib.html#runM" class="link">Source</a> <a href="#v:runM" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h2 id="g:6">Nested Execution</h2><div class="doc"><p>The following classes define operations that are overloaded
 versions of the <code>run</code> operations.   Unlike the <code>run</code> operations,
 these functions do not change the type of the computation (i.e., they
 do not remove a layer).  Instead, they perform the effects in
 a ``separate effect thread''.</p></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="MonadLib.html#t:ReaderM">ReaderM</a> m i =&gt; <a id="t:RunReaderM" class="def">RunReaderM</a> m i | m -&gt; i <span class="keyword">where</span> <a href="src/MonadLib.html#RunReaderM" class="link">Source</a> <a href="#t:RunReaderM" class="selflink">#</a></p><div class="doc"><p>Classifies monads that support changing the context for a
 sub-computation.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="MonadLib.html#v:local">local</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:local" class="def">local</a> :: i -&gt; m a -&gt; m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p><div class="doc"><p>Change the context for the duration of a sub-computation.</p></div></div><div class="subs instances"><p id="control.i:RunReaderM" class="caption collapser" onclick="toggleSection('i:RunReaderM')">Instances</p><div id="section.i:RunReaderM" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunReaderM:RunReaderM:1" class="instance expander" onclick="toggleSection('i:ic:RunReaderM:RunReaderM:1')"></span> <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> m j =&gt; <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) j</span> <a href="src/MonadLib.html#line-628" class="link">Source</a> <a href="#t:RunReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunReaderM:RunReaderM:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: j -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunReaderM:RunReaderM:2" class="instance expander" onclick="toggleSection('i:ic:RunReaderM:RunReaderM:2')"></span> <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib-Monads.html#t:Reader">Reader</a> i) i</span> <a href="src/MonadLib.html#line-106" class="link">Source</a> <a href="#t:RunReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunReaderM:RunReaderM:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: i -&gt; <a href="MonadLib-Monads.html#t:Reader">Reader</a> i a -&gt; <a href="MonadLib-Monads.html#t:Reader">Reader</a> i a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunReaderM:RunReaderM:3" class="instance expander" onclick="toggleSection('i:ic:RunReaderM:RunReaderM:3')"></span> <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> m j =&gt; <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) j</span> <a href="src/MonadLib.html#line-637" class="link">Source</a> <a href="#t:RunReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunReaderM:RunReaderM:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: j -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunReaderM:RunReaderM:4" class="instance expander" onclick="toggleSection('i:ic:RunReaderM:RunReaderM:4')"></span> <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> m j =&gt; <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) j</span> <a href="src/MonadLib.html#line-634" class="link">Source</a> <a href="#t:RunReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunReaderM:RunReaderM:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: j -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunReaderM:RunReaderM:5" class="instance expander" onclick="toggleSection('i:ic:RunReaderM:RunReaderM:5')"></span> <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> m j =&gt; <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) j</span> <a href="src/MonadLib.html#line-632" class="link">Source</a> <a href="#t:RunReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunReaderM:RunReaderM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: j -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunReaderM:RunReaderM:6" class="instance expander" onclick="toggleSection('i:ic:RunReaderM:RunReaderM:6')"></span> (<a href="MonadLib.html#t:RunReaderM">RunReaderM</a> m j, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) j</span> <a href="src/MonadLib.html#line-630" class="link">Source</a> <a href="#t:RunReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunReaderM:RunReaderM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: j -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunReaderM:RunReaderM:7" class="instance expander" onclick="toggleSection('i:ic:RunReaderM:RunReaderM:7')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) i</span> <a href="src/MonadLib.html#line-625" class="link">Source</a> <a href="#t:RunReaderM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunReaderM:RunReaderM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:local">local</a> :: i -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a <a href="src/MonadLib.html#local" class="link">Source</a> <a href="#v:local" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="MonadLib.html#t:WriterM">WriterM</a> m i =&gt; <a id="t:RunWriterM" class="def">RunWriterM</a> m i | m -&gt; i <span class="keyword">where</span> <a href="src/MonadLib.html#RunWriterM" class="link">Source</a> <a href="#t:RunWriterM" class="selflink">#</a></p><div class="doc"><p>Classifies monads that support collecting the output of
 a sub-computation.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="MonadLib.html#v:collect">collect</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:collect" class="def">collect</a> :: m a -&gt; m (a, i) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p><div class="doc"><p>Collect the output from a sub-computation.</p></div></div><div class="subs instances"><p id="control.i:RunWriterM" class="caption collapser" onclick="toggleSection('i:RunWriterM')">Instances</p><div id="section.i:RunWriterM" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunWriterM:RunWriterM:1" class="instance expander" onclick="toggleSection('i:ic:RunWriterM:RunWriterM:1')"></span> <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> m j =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) j</span> <a href="src/MonadLib.html#line-649" class="link">Source</a> <a href="#t:RunWriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunWriterM:RunWriterM:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m (a, j) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunWriterM:RunWriterM:2" class="instance expander" onclick="toggleSection('i:ic:RunWriterM:RunWriterM:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib-Monads.html#t:Writer">Writer</a> i) i</span> <a href="src/MonadLib.html#line-109" class="link">Source</a> <a href="#t:RunWriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunWriterM:RunWriterM:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib-Monads.html#t:Writer">Writer</a> i a -&gt; <a href="MonadLib-Monads.html#t:Writer">Writer</a> i (a, i) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunWriterM:RunWriterM:3" class="instance expander" onclick="toggleSection('i:ic:RunWriterM:RunWriterM:3')"></span> (<a href="MonadLib.html#t:RunWriterM">RunWriterM</a> m j, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad-Fix.html#t:MonadFix">MonadFix</a> m) =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib.html#t:ContT">ContT</a> i m) j</span> <a href="src/MonadLib.html#line-660" class="link">Source</a> <a href="#t:RunWriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunWriterM:RunWriterM:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib.html#t:ContT">ContT</a> i m a -&gt; <a href="MonadLib.html#t:ContT">ContT</a> i m (a, j) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunWriterM:RunWriterM:4" class="instance expander" onclick="toggleSection('i:ic:RunWriterM:RunWriterM:4')"></span> <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> m j =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) j</span> <a href="src/MonadLib.html#line-656" class="link">Source</a> <a href="#t:RunWriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunWriterM:RunWriterM:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m (a, j) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunWriterM:RunWriterM:5" class="instance expander" onclick="toggleSection('i:ic:RunWriterM:RunWriterM:5')"></span> <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> m j =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib.html#t:StateT">StateT</a> i m) j</span> <a href="src/MonadLib.html#line-653" class="link">Source</a> <a href="#t:RunWriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunWriterM:RunWriterM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib.html#t:StateT">StateT</a> i m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> i m (a, j) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunWriterM:RunWriterM:6" class="instance expander" onclick="toggleSection('i:ic:RunWriterM:RunWriterM:6')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> i) =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> i m) i</span> <a href="src/MonadLib.html#line-646" class="link">Source</a> <a href="#t:RunWriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunWriterM:RunWriterM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> i m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> i m (a, i) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunWriterM:RunWriterM:7" class="instance expander" onclick="toggleSection('i:ic:RunWriterM:RunWriterM:7')"></span> <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> m j =&gt; <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> i m) j</span> <a href="src/MonadLib.html#line-651" class="link">Source</a> <a href="#t:RunWriterM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunWriterM:RunWriterM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:collect">collect</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> i m (a, j) <a href="src/MonadLib.html#collect" class="link">Source</a> <a href="#v:collect" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m i =&gt; <a id="t:RunExceptionM" class="def">RunExceptionM</a> m i | m -&gt; i <span class="keyword">where</span> <a href="src/MonadLib.html#RunExceptionM" class="link">Source</a> <a href="#t:RunExceptionM" class="selflink">#</a></p><div class="doc"><p>Classifies monads that support handling of exceptions.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="MonadLib.html#v:try">try</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:try" class="def">try</a> :: m a -&gt; m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p><div class="doc"><p>Convert computations that may raise an exception
 into computations that do not raise exception but instead,
 yield a tagged results.  Exceptions are tagged with <a href="Left.html">Left</a>,
 successful computations are tagged with <a href="Right.html">Right</a>.</p></div></div><div class="subs instances"><p id="control.i:RunExceptionM" class="caption collapser" onclick="toggleSection('i:RunExceptionM')">Instances</p><div id="section.i:RunExceptionM" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunExceptionM:RunExceptionM:1" class="instance expander" onclick="toggleSection('i:ic:RunExceptionM:RunExceptionM:1')"></span> <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a></span> <a href="src/MonadLib.html#line-690" class="link">Source</a> <a href="#t:RunExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunExceptionM:RunExceptionM:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:try">try</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Exception-Base.html#t:SomeException">SomeException</a> a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunExceptionM:RunExceptionM:2" class="instance expander" onclick="toggleSection('i:ic:RunExceptionM:RunExceptionM:2')"></span> <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> m i =&gt; <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> (<a href="MonadLib.html#t:IdT">IdT</a> m) i</span> <a href="src/MonadLib.html#line-697" class="link">Source</a> <a href="#t:RunExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunExceptionM:RunExceptionM:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:try">try</a> :: <a href="MonadLib.html#t:IdT">IdT</a> m a -&gt; <a href="MonadLib.html#t:IdT">IdT</a> m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunExceptionM:RunExceptionM:3" class="instance expander" onclick="toggleSection('i:ic:RunExceptionM:RunExceptionM:3')"></span> <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> (<a href="MonadLib-Monads.html#t:Exception">Exception</a> i) i</span> <a href="src/MonadLib.html#line-112" class="link">Source</a> <a href="#t:RunExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunExceptionM:RunExceptionM:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:try">try</a> :: <a href="MonadLib-Monads.html#t:Exception">Exception</a> i a -&gt; <a href="MonadLib-Monads.html#t:Exception">Exception</a> i (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunExceptionM:RunExceptionM:4" class="instance expander" onclick="toggleSection('i:ic:RunExceptionM:RunExceptionM:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> (<a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m) i</span> <a href="src/MonadLib.html#line-694" class="link">Source</a> <a href="#t:RunExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunExceptionM:RunExceptionM:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:try">try</a> :: <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m a -&gt; <a href="MonadLib.html#t:ExceptionT">ExceptionT</a> i m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunExceptionM:RunExceptionM:5" class="instance expander" onclick="toggleSection('i:ic:RunExceptionM:RunExceptionM:5')"></span> <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> m i =&gt; <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> (<a href="MonadLib.html#t:StateT">StateT</a> j m) i</span> <a href="src/MonadLib.html#line-705" class="link">Source</a> <a href="#t:RunExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunExceptionM:RunExceptionM:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:try">try</a> :: <a href="MonadLib.html#t:StateT">StateT</a> j m a -&gt; <a href="MonadLib.html#t:StateT">StateT</a> j m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunExceptionM:RunExceptionM:6" class="instance expander" onclick="toggleSection('i:ic:RunExceptionM:RunExceptionM:6')"></span> (<a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> m i, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Monoid.html#t:Monoid">Monoid</a> j) =&gt; <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> (<a href="MonadLib.html#t:WriterT">WriterT</a> j m) i</span> <a href="src/MonadLib.html#line-701" class="link">Source</a> <a href="#t:RunExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunExceptionM:RunExceptionM:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:try">try</a> :: <a href="MonadLib.html#t:WriterT">WriterT</a> j m a -&gt; <a href="MonadLib.html#t:WriterT">WriterT</a> j m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:RunExceptionM:RunExceptionM:7" class="instance expander" onclick="toggleSection('i:ic:RunExceptionM:RunExceptionM:7')"></span> <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> m i =&gt; <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> (<a href="MonadLib.html#t:ReaderT">ReaderT</a> j m) i</span> <a href="src/MonadLib.html#line-699" class="link">Source</a> <a href="#t:RunExceptionM" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:RunExceptionM:RunExceptionM:7" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:try">try</a> :: <a href="MonadLib.html#t:ReaderT">ReaderT</a> j m a -&gt; <a href="MonadLib.html#t:ReaderT">ReaderT</a> j m (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> i a) <a href="src/MonadLib.html#try" class="link">Source</a> <a href="#v:try" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h1 id="g:7">Utility functions</h1><div class="top"><p class="src"><a id="v:asks" class="def">asks</a> :: <a href="MonadLib.html#t:ReaderM">ReaderM</a> m r =&gt; (r -&gt; a) -&gt; m a <a href="src/MonadLib.html#asks" class="link">Source</a> <a href="#v:asks" class="selflink">#</a></p><div class="doc"><p>Apply a function to the environment.
 Useful for accessing environmnt components.</p></div></div><div class="top"><p class="src"><a id="v:puts" class="def">puts</a> :: <a href="MonadLib.html#t:WriterM">WriterM</a> m w =&gt; (a, w) -&gt; m a <a href="src/MonadLib.html#puts" class="link">Source</a> <a href="#v:puts" class="selflink">#</a></p><div class="doc"><p>Add content the output and return a result.</p></div></div><div class="top"><p class="src"><a id="v:sets" class="def">sets</a> :: <a href="MonadLib.html#t:StateM">StateM</a> m s =&gt; (s -&gt; (a, s)) -&gt; m a <a href="src/MonadLib.html#sets" class="link">Source</a> <a href="#v:sets" class="selflink">#</a></p><div class="doc"><p>Update the state and return a result.</p></div></div><div class="top"><p class="src"><a id="v:sets_" class="def">sets_</a> :: <a href="MonadLib.html#t:StateM">StateM</a> m s =&gt; (s -&gt; s) -&gt; m () <a href="src/MonadLib.html#sets_" class="link">Source</a> <a href="#v:sets_" class="selflink">#</a></p><div class="doc"><p>Updates the state with the given function.</p></div></div><div class="top"><p class="src"><a id="v:raises" class="def">raises</a> :: <a href="MonadLib.html#t:ExceptionM">ExceptionM</a> m x =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> x a -&gt; m a <a href="src/MonadLib.html#raises" class="link">Source</a> <a href="#v:raises" class="selflink">#</a></p><div class="doc"><p>Either raise an exception or return a value.
 <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#v:Left">Left</a></code> values signify the we should raise an exception,
 <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#v:Right">Right</a></code> values indicate success.</p></div></div><div class="top"><p class="src"><a id="v:mapReader" class="def">mapReader</a> :: <a href="MonadLib.html#t:RunReaderM">RunReaderM</a> m r =&gt; (r -&gt; r) -&gt; m a -&gt; m a <a href="src/MonadLib.html#mapReader" class="link">Source</a> <a href="#v:mapReader" class="selflink">#</a></p><div class="doc"><p>Modify the environment for the duration of a computation.</p></div></div><div class="top"><p class="src"><a id="v:mapWriter" class="def">mapWriter</a> :: <a href="MonadLib.html#t:RunWriterM">RunWriterM</a> m w =&gt; (w -&gt; w) -&gt; m a -&gt; m a <a href="src/MonadLib.html#mapWriter" class="link">Source</a> <a href="#v:mapWriter" class="selflink">#</a></p><div class="doc"><p>Modify the output of a computation.</p></div></div><div class="top"><p class="src"><a id="v:mapException" class="def">mapException</a> :: <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> m x =&gt; (x -&gt; x) -&gt; m a -&gt; m a <a href="src/MonadLib.html#mapException" class="link">Source</a> <a href="#v:mapException" class="selflink">#</a></p><div class="doc"><p>Modify the exception that was risen by a computation.</p></div></div><div class="top"><p class="src"><a id="v:handle" class="def">handle</a> :: <a href="MonadLib.html#t:RunExceptionM">RunExceptionM</a> m x =&gt; m a -&gt; (x -&gt; m a) -&gt; m a <a href="src/MonadLib.html#handle" class="link">Source</a> <a href="#v:handle" class="selflink">#</a></p><div class="doc"><p>Apply the given exception handler, if a computation raises an exception.</p></div></div><h1 id="g:8">Miscellaneous</h1><div class="top"><p class="src"><a id="v:version" class="def">version</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a>) <a href="src/MonadLib.html#version" class="link">Source</a> <a href="#v:version" class="selflink">#</a></p><div class="doc"><p>The current version of the library.</p></div></div><div class="top"><p class="src">module <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html">Control.Monad</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.3</p></div></body></html>