This file is indexed.

/usr/share/doc/libghc-pipes-doc/html/Pipes-Internal.html is in libghc-pipes-doc 4.1.9-3.

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
<!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>Pipes.Internal</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_Pipes-Internal.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Pipes-Internal.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">pipes-4.1.9: Compositional pipelines</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>Haskell2010</td></tr></table><p class="caption">Pipes.Internal</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Internal</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This is an internal module, meaning that it is unsafe to import unless you
    understand the risks.</p><p>This module provides a fast implementation by weakening the monad
    transformer laws.  These laws do not hold if you can pattern match on the
    constructors, as the following counter-example illustrates:</p><pre><code><a href="file:///usr/share/doc/libghc-mmorph-doc/html/Control-Monad-Morph.html#v:lift">lift</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Function.html#v:.">.</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#v:return">return</a></code> = <code><a href="Pipes-Internal.html#v:M">M</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Function.html#v:.">.</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#v:return">return</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Function.html#v:.">.</a></code> <code><a href="Pipes-Internal.html#v:Pure">Pure</a></code>

<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#v:return">return</a></code> = <code><a href="Pipes-Internal.html#v:Pure">Pure</a></code>

<code><a href="file:///usr/share/doc/libghc-mmorph-doc/html/Control-Monad-Morph.html#v:lift">lift</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Function.html#v:.">.</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#v:return">return</a></code> /= <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#v:return">return</a></code>
</pre><p>You do not need to worry about this if you do not import this module, since
    the other modules in this library do not export the constructors or export
    any functions which can violate the monad transformer laws.</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:Proxy">Proxy</a> a' a b' b m r<ul class="subs"><li>= <a href="#v:Request">Request</a> a' (a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r)</li><li>| <a href="#v:Respond">Respond</a> b (b' -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r)</li><li>| <a href="#v:M">M</a> (m (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r))</li><li>| <a href="#v:Pure">Pure</a> r</li></ul></li><li class="src short"><a href="#v:unsafeHoist">unsafeHoist</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (<span class="keyword">forall</span> x. m x -&gt; n x) -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b n r</li><li class="src short"><a href="#v:observe">observe</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r</li><li class="src short"><span class="keyword">data</span> <a href="#t:X">X</a></li><li class="src short"><a href="#v:closed">closed</a> :: <a href="Pipes-Internal.html#t:X">X</a> -&gt; a</li></ul></div><div id="interface"><h1 id="g:1">Internal</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Proxy" class="def">Proxy</a> a' a b' b m r <a href="src/Pipes-Internal.html#Proxy" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></p><div class="doc"><p>A <code><a href="Pipes-Internal.html#t:Proxy">Proxy</a></code> is a monad transformer that receives and sends information on both
    an upstream and downstream interface.</p><p>The type variables signify:</p><ul><li><code>a'</code> and <code>a</code> - The upstream interface, where <code>(a')</code>s go out and <code>(a)</code>s
      come in</li><li><code>b'</code> and <code>b</code> - The downstream interface, where <code>(b)</code>s go out and <code>(b')</code>s
      come in</li><li><code>m </code> - The base monad</li><li><code>r </code> - The return value</li></ul></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Request" class="def">Request</a> a' (a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Respond" class="def">Respond</a> b (b' -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:M" class="def">M</a> (m (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r))</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Pure" class="def">Pure</a> r</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Proxy" class="caption collapser" onclick="toggleSection('i:Proxy')">Instances</p><div id="section.i:Proxy" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Proxy:MonadError:1" class="instance expander" onclick="toggleSection('i:id:Proxy:MonadError:1')"></span> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e m =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Error-Class.html#t:MonadError">MonadError</a> e (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m)</span> <a href="src/Pipes-Internal.html#line-206" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:MonadError:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:throwError">throwError</a> :: e -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a <a href="#v:throwError" class="selflink">#</a></p><p class="src"><a href="#v:catchError">catchError</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; (e -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a) -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a <a href="#v:catchError" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Proxy:MonadReader:2" class="instance expander" onclick="toggleSection('i:id:Proxy:MonadReader:2')"></span> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> r m =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Reader-Class.html#t:MonadReader">MonadReader</a> r (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m)</span> <a href="src/Pipes-Internal.html#line-167" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:MonadReader: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="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r <a href="#v:ask" class="selflink">#</a></p><p class="src"><a href="#v:local">local</a> :: (r -&gt; r) -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a <a href="#v:local" class="selflink">#</a></p><p class="src"><a href="#v:reader">reader</a> :: (r -&gt; a) -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a <a href="#v:reader" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Proxy:MonadState:3" class="instance expander" onclick="toggleSection('i:id:Proxy:MonadState:3')"></span> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s m =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-State-Class.html#t:MonadState">MonadState</a> s (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m)</span> <a href="src/Pipes-Internal.html#line-178" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:MonadState: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="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m s <a href="#v:get" class="selflink">#</a></p><p class="src"><a href="#v:put">put</a> :: s -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m () <a href="#v:put" class="selflink">#</a></p><p class="src"><a href="#v:state">state</a> :: (s -&gt; (a, s)) -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a <a href="#v:state" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Proxy:MonadWriter:4" class="instance expander" onclick="toggleSection('i:id:Proxy:MonadWriter:4')"></span> <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w m =&gt; <a href="file:///usr/share/doc/libghc-mtl-doc/html/Control-Monad-Writer-Class.html#t:MonadWriter">MonadWriter</a> w (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m)</span> <a href="src/Pipes-Internal.html#line-183" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:MonadWriter:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:writer">writer</a> :: (a, w) -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a <a href="#v:writer" class="selflink">#</a></p><p class="src"><a href="#v:tell">tell</a> :: w -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m () <a href="#v:tell" class="selflink">#</a></p><p class="src"><a href="#v:listen">listen</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m (a, w) <a href="#v:listen" class="selflink">#</a></p><p class="src"><a href="#v:pass">pass</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m (a, w -&gt; w) -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a <a href="#v:pass" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Proxy:MFunctor:5" class="instance expander" onclick="toggleSection('i:id:Proxy:MFunctor:5')"></span> <a href="file:///usr/share/doc/libghc-mmorph-doc/html/Control-Monad-Morph.html#t:MFunctor">MFunctor</a> (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b)</span> <a href="src/Pipes-Internal.html#line-146" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:MFunctor:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:hoist">hoist</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (<span class="keyword">forall</span> c. m c -&gt; n c) -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m b -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b n b <a href="#v:hoist" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Proxy:MMonad:6" class="instance expander" onclick="toggleSection('i:id:Proxy:MMonad:6')"></span> <a href="file:///usr/share/doc/libghc-mmorph-doc/html/Control-Monad-Morph.html#t:MMonad">MMonad</a> (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b)</span> <a href="src/Pipes-Internal.html#line-155" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:MMonad:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:embed">embed</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> n =&gt; (<span class="keyword">forall</span> c. m c -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b n c) -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m b -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b n b <a href="#v:embed" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Proxy:MonadTrans:7" class="instance expander" onclick="toggleSection('i:id:Proxy:MonadTrans:7')"></span> <a href="file:///usr/share/doc/libghc-mmorph-doc/html/Control-Monad-Morph.html#t:MonadTrans">MonadTrans</a> (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b)</span> <a href="src/Pipes-Internal.html#line-125" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:MonadTrans: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.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m 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:Proxy:Monad:8" class="instance expander" onclick="toggleSection('i:id:Proxy:Monad:8')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m)</span> <a href="src/Pipes-Internal.html#line-89" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:Monad:8" 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="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; (a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m b) -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b 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="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m b -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b 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.0.0/Data-String.html#t:String">String</a> -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b 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:Proxy:Functor:9" class="instance expander" onclick="toggleSection('i:id:Proxy:Functor:9')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m)</span> <a href="src/Pipes-Internal.html#line-71" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:Functor:9" 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="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m b -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b 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:Proxy:Applicative:10" class="instance expander" onclick="toggleSection('i:id:Proxy:Applicative:10')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m)</span> <a href="src/Pipes-Internal.html#line-79" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:Applicative:10" 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="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m (a -&gt; b) -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m b -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m b -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b 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:Proxy:MonadIO:11" class="instance expander" onclick="toggleSection('i:id:Proxy:MonadIO:11')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad-IO-Class.html#t:MonadIO">MonadIO</a> (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m)</span> <a href="src/Pipes-Internal.html#line-164" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:MonadIO:11" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:liftIO">liftIO</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a <a href="#v:liftIO" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Proxy:Alternative:12" class="instance expander" onclick="toggleSection('i:id:Proxy:Alternative:12')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Applicative.html#t:Alternative">Alternative</a> (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m)</span> <a href="src/Pipes-Internal.html#line-218" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:Alternative:12" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:empty">empty</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a <a href="#v:empty" class="selflink">#</a></p><p class="src"><a href="#v:-60--124--62-">(&lt;|&gt;)</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a <a href="#v:-60--124--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b 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:Proxy:MonadPlus:13" class="instance expander" onclick="toggleSection('i:id:Proxy:MonadPlus:13')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m)</span> <a href="src/Pipes-Internal.html#line-222" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:MonadPlus:13" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mzero">mzero</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a <a href="#v:mzero" class="selflink">#</a></p><p class="src"><a href="#v:mplus">mplus</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m a -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b 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:Proxy:Monoid:14" class="instance expander" onclick="toggleSection('i:id:Proxy:Monoid:14')"></span> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> r) =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Monoid.html#t:Monoid">Monoid</a> (<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r)</span> <a href="src/Pipes-Internal.html#line-116" class="link">Source</a> <a href="#t:Proxy" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Proxy:Monoid:14" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:mempty">mempty</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r <a href="#v:mempty" class="selflink">#</a></p><p class="src"><a href="#v:mappend">mappend</a> :: <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r <a href="#v:mappend" class="selflink">#</a></p><p class="src"><a href="#v:mconcat">mconcat</a> :: [<a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r] -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r <a href="#v:mconcat" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:unsafeHoist" class="def">unsafeHoist</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; (<span class="keyword">forall</span> x. m x -&gt; n x) -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b n r <a href="src/Pipes-Internal.html#unsafeHoist" class="link">Source</a> <a href="#v:unsafeHoist" class="selflink">#</a></p><div class="doc"><p><code><a href="Pipes-Internal.html#v:unsafeHoist">unsafeHoist</a></code> is like <code><a href="file:///usr/share/doc/libghc-mmorph-doc/html/Control-Monad-Morph.html#v:hoist">hoist</a></code>, but faster.</p><p>This is labeled as unsafe because you will break the monad transformer laws
    if you do not pass a monad morphism as the first argument.  This function is
    safe if you pass a monad morphism as the first argument.</p></div></div><div class="top"><p class="src"><a id="v:observe" class="def">observe</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> m =&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r -&gt; <a href="Pipes-Internal.html#t:Proxy">Proxy</a> a' a b' b m r <a href="src/Pipes-Internal.html#observe" class="link">Source</a> <a href="#v:observe" class="selflink">#</a></p><div class="doc"><p>The monad transformer laws are correct when viewed through the <code><a href="Pipes-Internal.html#v:observe">observe</a></code>
    function:</p><pre><code><a href="Pipes-Internal.html#v:observe">observe</a></code> (<code><a href="file:///usr/share/doc/libghc-mmorph-doc/html/Control-Monad-Morph.html#v:lift">lift</a></code> (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#v:return">return</a></code> r)) = <code><a href="Pipes-Internal.html#v:observe">observe</a></code> (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#v:return">return</a></code> r)

<code><a href="Pipes-Internal.html#v:observe">observe</a></code> (<code><a href="file:///usr/share/doc/libghc-mmorph-doc/html/Control-Monad-Morph.html#v:lift">lift</a></code> (m <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#v:-62--62--61-">&gt;&gt;=</a></code> f)) = <code><a href="Pipes-Internal.html#v:observe">observe</a></code> (<code><a href="file:///usr/share/doc/libghc-mmorph-doc/html/Control-Monad-Morph.html#v:lift">lift</a></code> m <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#v:-62--62--61-">&gt;&gt;=</a></code> <code><a href="file:///usr/share/doc/libghc-mmorph-doc/html/Control-Monad-Morph.html#v:lift">lift</a></code> <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Function.html#v:.">.</a></code> f)
</pre><p>This correctness comes at a small cost to performance, so use this function
    sparingly.</p><p>This function is a convenience for low-level <code>pipes</code> implementers.  You do
    not need to use <code><a href="Pipes-Internal.html#v:observe">observe</a></code> if you stick to the safe API.</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:X" class="def">X</a> <a href="src/Pipes-Internal.html#X" class="link">Source</a> <a href="#t:X" class="selflink">#</a></p><div class="doc"><p>The empty type, used to close output ends</p><p>When <code>Data.Void</code> is merged into <code>base</code>, this will change to:</p><pre>type X = Void</pre></div></div><div class="top"><p class="src"><a id="v:closed" class="def">closed</a> :: <a href="Pipes-Internal.html#t:X">X</a> -&gt; a <a href="src/Pipes-Internal.html#closed" class="link">Source</a> <a href="#v:closed" class="selflink">#</a></p><div class="doc"><p>Use <code><a href="Pipes-Internal.html#v:closed">closed</a></code> to &quot;handle&quot; impossible outputs</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.2</p></div></body></html>