This file is indexed.

/usr/share/doc/libghc-io-streams-doc/html/System-IO-Streams.html is in libghc-io-streams-doc 1.3.5.0-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
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<!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>System.IO.Streams</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_System-IO-Streams.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/System-IO-Streams.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">io-streams-1.3.5.0: Simple, composable, and easy-to-use stream I/O</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">System.IO.Streams</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Stream types</a><ul><li><a href="#g:2">A note about resource acquisition/release semantics</a></li></ul></li><li><a href="#g:3">Creating streams</a></li><li><a href="#g:4">Primitive stream operations</a></li><li><a href="#g:5">Connecting streams together</a></li><li><a href="#g:6">Thread safety / concurrency</a></li><li><a href="#g:7">Utility streams</a></li><li><a href="#g:8">Generator monad</a></li><li><a href="#g:9">Batteries included</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module is a top-level convenience module which re-exports most of the
 <code>io-streams</code> library.</p><p>It is recommended to import this module qualified, as follows:</p><pre>import           <a href="System-IO-Streams.html">System.IO.Streams</a> (<code><a href="System-IO-Streams.html#t:Generator">Generator</a></code>, <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>, <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code>)
import qualified <a href="System-IO-Streams.html">System.IO.Streams</a> as Streams
</pre><p>For an in-depth tutorial on how to use <code>io-streams</code>, please see the
 <a href="System-IO-Streams-Tutorial.html">System.IO.Streams.Tutorial</a> module.</p><p>Is there a function missing from this library? Interested in contributing?
 Send a pull request to <a href="http://github.com/snapframework/io-streams">http://github.com/snapframework/io-streams</a>.</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:InputStream">InputStream</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:OutputStream">OutputStream</a> a</li><li class="src short"><a href="#v:makeInputStream">makeInputStream</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> a)</li><li class="src short"><a href="#v:makeOutputStream">makeOutputStream</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a)</li><li class="src short"><a href="#v:read">read</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:unRead">unRead</a> :: a -&gt; <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:peek">peek</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:write">write</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -&gt; <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:atEOF">atEOF</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:connect">connect</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:connectTo">connectTo</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -&gt; <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:supply">supply</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:supplyTo">supplyTo</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -&gt; <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> ()</li><li class="src short"><a href="#v:appendInputStream">appendInputStream</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> a)</li><li class="src short"><a href="#v:concatInputStreams">concatInputStreams</a> :: [<a href="System-IO-Streams.html#t:InputStream">InputStream</a> a] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> a)</li><li class="src short"><a href="#v:lockingInputStream">lockingInputStream</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> a)</li><li class="src short"><a href="#v:lockingOutputStream">lockingOutputStream</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a)</li><li class="src short"><a href="#v:nullInput">nullInput</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> a)</li><li class="src short"><a href="#v:nullOutput">nullOutput</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a)</li><li class="src short"><span class="keyword">data</span> <a href="#t:Generator">Generator</a> r a</li><li class="src short"><a href="#v:fromGenerator">fromGenerator</a> :: <a href="System-IO-Streams.html#t:Generator">Generator</a> r a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> r)</li><li class="src short"><a href="#v:yield">yield</a> :: r -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r ()</li><li class="src short">module <a href="System-IO-Streams-Builder.html">System.IO.Streams.Builder</a></li><li class="src short">module <a href="System-IO-Streams-ByteString.html">System.IO.Streams.ByteString</a></li><li class="src short">module <a href="System-IO-Streams-Combinators.html">System.IO.Streams.Combinators</a></li><li class="src short">module <a href="System-IO-Streams-Handle.html">System.IO.Streams.Handle</a></li><li class="src short">module <a href="System-IO-Streams-File.html">System.IO.Streams.File</a></li><li class="src short">module <a href="System-IO-Streams-List.html">System.IO.Streams.List</a></li><li class="src short">module <a href="System-IO-Streams-Network.html">System.IO.Streams.Network</a></li><li class="src short">module <a href="System-IO-Streams-Process.html">System.IO.Streams.Process</a></li><li class="src short">module <a href="System-IO-Streams-Text.html">System.IO.Streams.Text</a></li><li class="src short">module <a href="System-IO-Streams-Vector.html">System.IO.Streams.Vector</a></li><li class="src short">module <a href="System-IO-Streams-Zlib.html">System.IO.Streams.Zlib</a></li></ul></div><div id="interface"><h1 id="g:1">Stream types</h1><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:InputStream" class="def">InputStream</a> a <a href="src/System-IO-Streams-Internal.html#InputStream" class="link">Source</a> <a href="#t:InputStream" class="selflink">#</a></p><div class="doc"><p>An <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> generates values of type <code>c</code> in the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a></code> monad.</p><p>Two primitive operations are defined on <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>:</p><ul><li><code><code><a href="System-IO-Streams.html#v:read">read</a></code> :: <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> c -&gt; <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a></code> (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a></code> c)</code> reads a value from the stream,
 where &quot;end of stream&quot; is signaled by <code><a href="System-IO-Streams.html#v:read">read</a></code> returning <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Nothing">Nothing</a></code>.</li><li><code><code><a href="System-IO-Streams.html#v:unRead">unRead</a></code> :: c -&gt; <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> c -&gt; <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a></code> ()</code> &quot;pushes back&quot; a value to the
 stream.</li></ul><p>It is intended that <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>s obey the following law:</p><pre><code><a href="System-IO-Streams.html#v:unRead">unRead</a></code> c stream &gt;&gt; <code><a href="System-IO-Streams.html#v:read">read</a></code> stream === <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-Maybe.html#v:Just">Just</a></code> c)</pre></div><div class="subs instances"><p id="control.i:InputStream" class="caption collapser" onclick="toggleSection('i:InputStream')">Instances</p><div id="section.i:InputStream" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InputStream:BufferedIO:1" class="instance expander" onclick="toggleSection('i:id:InputStream:BufferedIO:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-BufferedIO.html#t:BufferedIO">BufferedIO</a> (<a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)</span> <a href="src/System-IO-Streams-Internal.html#line-506" class="link">Source</a> <a href="#t:InputStream" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:InputStream:BufferedIO:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:newBuffer">newBuffer</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:BufferState">BufferState</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:newBuffer" class="selflink">#</a></p><p class="src"><a href="#v:fillReadBuffer">fillReadBuffer</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:fillReadBuffer" class="selflink">#</a></p><p class="src"><a href="#v:fillReadBuffer0">fillReadBuffer0</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:fillReadBuffer0" class="selflink">#</a></p><p class="src"><a href="#v:emptyWriteBuffer">emptyWriteBuffer</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:emptyWriteBuffer" class="selflink">#</a></p><p class="src"><a href="#v:flushWriteBuffer">flushWriteBuffer</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:flushWriteBuffer" class="selflink">#</a></p><p class="src"><a href="#v:flushWriteBuffer0">flushWriteBuffer0</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:flushWriteBuffer0" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InputStream:BufferedIO:2" class="instance expander" onclick="toggleSection('i:id:InputStream:BufferedIO:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-BufferedIO.html#t:BufferedIO">BufferedIO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)</span> <a href="src/System-IO-Streams-Internal.html#line-497" class="link">Source</a> <a href="#t:InputStream" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:InputStream:BufferedIO:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:newBuffer">newBuffer</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:BufferState">BufferState</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:newBuffer" class="selflink">#</a></p><p class="src"><a href="#v:fillReadBuffer">fillReadBuffer</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:fillReadBuffer" class="selflink">#</a></p><p class="src"><a href="#v:fillReadBuffer0">fillReadBuffer0</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:fillReadBuffer0" class="selflink">#</a></p><p class="src"><a href="#v:emptyWriteBuffer">emptyWriteBuffer</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:emptyWriteBuffer" class="selflink">#</a></p><p class="src"><a href="#v:flushWriteBuffer">flushWriteBuffer</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:flushWriteBuffer" class="selflink">#</a></p><p class="src"><a href="#v:flushWriteBuffer0">flushWriteBuffer0</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:flushWriteBuffer0" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InputStream:RawIO:3" class="instance expander" onclick="toggleSection('i:id:InputStream:RawIO:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:RawIO">RawIO</a> (<a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)</span> <a href="src/System-IO-Streams-Internal.html#line-471" class="link">Source</a> <a href="#t:InputStream" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:InputStream:RawIO:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:read">read</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:read" class="selflink">#</a></p><p class="src"><a href="#v:readNonBlocking">readNonBlocking</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>) <a href="#v:readNonBlocking" class="selflink">#</a></p><p class="src"><a href="#v:write">write</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:write" class="selflink">#</a></p><p class="src"><a href="#v:writeNonBlocking">writeNonBlocking</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:writeNonBlocking" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InputStream:RawIO:4" class="instance expander" onclick="toggleSection('i:id:InputStream:RawIO:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:RawIO">RawIO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)</span> <a href="src/System-IO-Streams-Internal.html#line-445" class="link">Source</a> <a href="#t:InputStream" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:InputStream:RawIO:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:read">read</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:read" class="selflink">#</a></p><p class="src"><a href="#v:readNonBlocking">readNonBlocking</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>) <a href="#v:readNonBlocking" class="selflink">#</a></p><p class="src"><a href="#v:write">write</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:write" class="selflink">#</a></p><p class="src"><a href="#v:writeNonBlocking">writeNonBlocking</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:writeNonBlocking" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InputStream:IODevice:5" class="instance expander" onclick="toggleSection('i:id:InputStream:IODevice:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:IODevice">IODevice</a> (<a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)</span> <a href="src/System-IO-Streams-Internal.html#line-529" class="link">Source</a> <a href="#t:InputStream" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:InputStream:IODevice:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ready">ready</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:ready" class="selflink">#</a></p><p class="src"><a href="#v:close">close</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:close" class="selflink">#</a></p><p class="src"><a href="#v:isTerminal">isTerminal</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isTerminal" class="selflink">#</a></p><p class="src"><a href="#v:isSeekable">isSeekable</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isSeekable" class="selflink">#</a></p><p class="src"><a href="#v:seek">seek</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:SeekMode">SeekMode</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:seek" class="selflink">#</a></p><p class="src"><a href="#v:tell">tell</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> <a href="#v:tell" class="selflink">#</a></p><p class="src"><a href="#v:getSize">getSize</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> <a href="#v:getSize" class="selflink">#</a></p><p class="src"><a href="#v:setSize">setSize</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:setSize" class="selflink">#</a></p><p class="src"><a href="#v:setEcho">setEcho</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:setEcho" class="selflink">#</a></p><p class="src"><a href="#v:getEcho">getEcho</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:getEcho" class="selflink">#</a></p><p class="src"><a href="#v:setRaw">setRaw</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:setRaw" class="selflink">#</a></p><p class="src"><a href="#v:devType">devType</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:IODeviceType">IODeviceType</a> <a href="#v:devType" class="selflink">#</a></p><p class="src"><a href="#v:dup">dup</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>) <a href="#v:dup" class="selflink">#</a></p><p class="src"><a href="#v:dup2">dup2</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>) <a href="#v:dup2" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:InputStream:IODevice:6" class="instance expander" onclick="toggleSection('i:id:InputStream:IODevice:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:IODevice">IODevice</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)</span> <a href="src/System-IO-Streams-Internal.html#line-522" class="link">Source</a> <a href="#t:InputStream" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:InputStream:IODevice:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ready">ready</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:ready" class="selflink">#</a></p><p class="src"><a href="#v:close">close</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:close" class="selflink">#</a></p><p class="src"><a href="#v:isTerminal">isTerminal</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isTerminal" class="selflink">#</a></p><p class="src"><a href="#v:isSeekable">isSeekable</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isSeekable" class="selflink">#</a></p><p class="src"><a href="#v:seek">seek</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:SeekMode">SeekMode</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:seek" class="selflink">#</a></p><p class="src"><a href="#v:tell">tell</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> <a href="#v:tell" class="selflink">#</a></p><p class="src"><a href="#v:getSize">getSize</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> <a href="#v:getSize" class="selflink">#</a></p><p class="src"><a href="#v:setSize">setSize</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:setSize" class="selflink">#</a></p><p class="src"><a href="#v:setEcho">setEcho</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:setEcho" class="selflink">#</a></p><p class="src"><a href="#v:getEcho">getEcho</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:getEcho" class="selflink">#</a></p><p class="src"><a href="#v:setRaw">setRaw</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:setRaw" class="selflink">#</a></p><p class="src"><a href="#v:devType">devType</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:IODeviceType">IODeviceType</a> <a href="#v:devType" class="selflink">#</a></p><p class="src"><a href="#v:dup">dup</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>) <a href="#v:dup" class="selflink">#</a></p><p class="src"><a href="#v:dup2">dup2</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>) <a href="#v:dup2" 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:OutputStream" class="def">OutputStream</a> a <a href="src/System-IO-Streams-Internal.html#OutputStream" class="link">Source</a> <a href="#t:OutputStream" class="selflink">#</a></p><div class="doc"><p>An <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> consumes values of type <code>c</code> in the <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a></code> monad.
 The only primitive operation defined on <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> is:</p><ul><li><pre><code><a href="System-IO-Streams.html#v:write">write</a></code> :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a></code> c -&gt; <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> c -&gt; <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a></code> ()</pre></li></ul><p>Values of type <code>c</code> are written in an <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> by wrapping them in
 <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Just">Just</a></code>, and the end of the stream is indicated by supplying <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Nothing">Nothing</a></code>.</p><p>If you supply a value after a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Nothing">Nothing</a></code>, the behavior is defined by the
 implementer of the given <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code>. (All <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> definitions in
 this library will simply discard the extra input.)</p></div><div class="subs instances"><p id="control.i:OutputStream" class="caption collapser" onclick="toggleSection('i:OutputStream')">Instances</p><div id="section.i:OutputStream" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OutputStream:BufferedIO:1" class="instance expander" onclick="toggleSection('i:id:OutputStream:BufferedIO:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-BufferedIO.html#t:BufferedIO">BufferedIO</a> (<a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)</span> <a href="src/System-IO-Streams-Internal.html#line-506" class="link">Source</a> <a href="#t:OutputStream" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:OutputStream:BufferedIO:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:newBuffer">newBuffer</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:BufferState">BufferState</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:newBuffer" class="selflink">#</a></p><p class="src"><a href="#v:fillReadBuffer">fillReadBuffer</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:fillReadBuffer" class="selflink">#</a></p><p class="src"><a href="#v:fillReadBuffer0">fillReadBuffer0</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:fillReadBuffer0" class="selflink">#</a></p><p class="src"><a href="#v:emptyWriteBuffer">emptyWriteBuffer</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:emptyWriteBuffer" class="selflink">#</a></p><p class="src"><a href="#v:flushWriteBuffer">flushWriteBuffer</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:flushWriteBuffer" class="selflink">#</a></p><p class="src"><a href="#v:flushWriteBuffer0">flushWriteBuffer0</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:flushWriteBuffer0" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OutputStream:BufferedIO:2" class="instance expander" onclick="toggleSection('i:id:OutputStream:BufferedIO:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-BufferedIO.html#t:BufferedIO">BufferedIO</a> (<a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)</span> <a href="src/System-IO-Streams-Internal.html#line-479" class="link">Source</a> <a href="#t:OutputStream" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:OutputStream:BufferedIO:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:newBuffer">newBuffer</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:BufferState">BufferState</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:newBuffer" class="selflink">#</a></p><p class="src"><a href="#v:fillReadBuffer">fillReadBuffer</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:fillReadBuffer" class="selflink">#</a></p><p class="src"><a href="#v:fillReadBuffer0">fillReadBuffer0</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:fillReadBuffer0" class="selflink">#</a></p><p class="src"><a href="#v:emptyWriteBuffer">emptyWriteBuffer</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:emptyWriteBuffer" class="selflink">#</a></p><p class="src"><a href="#v:flushWriteBuffer">flushWriteBuffer</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:flushWriteBuffer" class="selflink">#</a></p><p class="src"><a href="#v:flushWriteBuffer0">flushWriteBuffer0</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:Buffer">Buffer</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a>) <a href="#v:flushWriteBuffer0" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OutputStream:RawIO:3" class="instance expander" onclick="toggleSection('i:id:OutputStream:RawIO:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:RawIO">RawIO</a> (<a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)</span> <a href="src/System-IO-Streams-Internal.html#line-471" class="link">Source</a> <a href="#t:OutputStream" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:OutputStream:RawIO:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:read">read</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:read" class="selflink">#</a></p><p class="src"><a href="#v:readNonBlocking">readNonBlocking</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>) <a href="#v:readNonBlocking" class="selflink">#</a></p><p class="src"><a href="#v:write">write</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:write" class="selflink">#</a></p><p class="src"><a href="#v:writeNonBlocking">writeNonBlocking</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:writeNonBlocking" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OutputStream:RawIO:4" class="instance expander" onclick="toggleSection('i:id:OutputStream:RawIO:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:RawIO">RawIO</a> (<a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)</span> <a href="src/System-IO-Streams-Internal.html#line-459" class="link">Source</a> <a href="#t:OutputStream" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:OutputStream:RawIO:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:read">read</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:read" class="selflink">#</a></p><p class="src"><a href="#v:readNonBlocking">readNonBlocking</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a>) <a href="#v:readNonBlocking" class="selflink">#</a></p><p class="src"><a href="#v:write">write</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:write" class="selflink">#</a></p><p class="src"><a href="#v:writeNonBlocking">writeNonBlocking</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Foreign-Ptr.html#t:Ptr">Ptr</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Word.html#t:Word8">Word8</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> <a href="#v:writeNonBlocking" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OutputStream:IODevice:5" class="instance expander" onclick="toggleSection('i:id:OutputStream:IODevice:5')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:IODevice">IODevice</a> (<a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)</span> <a href="src/System-IO-Streams-Internal.html#line-529" class="link">Source</a> <a href="#t:OutputStream" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:OutputStream:IODevice:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ready">ready</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:ready" class="selflink">#</a></p><p class="src"><a href="#v:close">close</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:close" class="selflink">#</a></p><p class="src"><a href="#v:isTerminal">isTerminal</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isTerminal" class="selflink">#</a></p><p class="src"><a href="#v:isSeekable">isSeekable</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isSeekable" class="selflink">#</a></p><p class="src"><a href="#v:seek">seek</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:SeekMode">SeekMode</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:seek" class="selflink">#</a></p><p class="src"><a href="#v:tell">tell</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> <a href="#v:tell" class="selflink">#</a></p><p class="src"><a href="#v:getSize">getSize</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> <a href="#v:getSize" class="selflink">#</a></p><p class="src"><a href="#v:setSize">setSize</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:setSize" class="selflink">#</a></p><p class="src"><a href="#v:setEcho">setEcho</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:setEcho" class="selflink">#</a></p><p class="src"><a href="#v:getEcho">getEcho</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:getEcho" class="selflink">#</a></p><p class="src"><a href="#v:setRaw">setRaw</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:setRaw" class="selflink">#</a></p><p class="src"><a href="#v:devType">devType</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:IODeviceType">IODeviceType</a> <a href="#v:devType" class="selflink">#</a></p><p class="src"><a href="#v:dup">dup</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>) <a href="#v:dup" class="selflink">#</a></p><p class="src"><a href="#v:dup2">dup2</a> :: <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams-Internal.html#t:StreamPair">StreamPair</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>) <a href="#v:dup2" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:OutputStream:IODevice:6" class="instance expander" onclick="toggleSection('i:id:OutputStream:IODevice:6')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:IODevice">IODevice</a> (<a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>)</span> <a href="src/System-IO-Streams-Internal.html#line-515" class="link">Source</a> <a href="#t:OutputStream" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:OutputStream:IODevice:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:ready">ready</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:ready" class="selflink">#</a></p><p class="src"><a href="#v:close">close</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:close" class="selflink">#</a></p><p class="src"><a href="#v:isTerminal">isTerminal</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isTerminal" class="selflink">#</a></p><p class="src"><a href="#v:isSeekable">isSeekable</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:isSeekable" class="selflink">#</a></p><p class="src"><a href="#v:seek">seek</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:SeekMode">SeekMode</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:seek" class="selflink">#</a></p><p class="src"><a href="#v:tell">tell</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> <a href="#v:tell" class="selflink">#</a></p><p class="src"><a href="#v:getSize">getSize</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> <a href="#v:getSize" class="selflink">#</a></p><p class="src"><a href="#v:setSize">setSize</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:setSize" class="selflink">#</a></p><p class="src"><a href="#v:setEcho">setEcho</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:setEcho" class="selflink">#</a></p><p class="src"><a href="#v:getEcho">getEcho</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="#v:getEcho" class="selflink">#</a></p><p class="src"><a href="#v:setRaw">setRaw</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="#v:setRaw" class="selflink">#</a></p><p class="src"><a href="#v:devType">devType</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:IODeviceType">IODeviceType</a> <a href="#v:devType" class="selflink">#</a></p><p class="src"><a href="#v:dup">dup</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>) <a href="#v:dup" class="selflink">#</a></p><p class="src"><a href="#v:dup2">dup2</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.8.1/Data-ByteString.html#t:ByteString">ByteString</a>) <a href="#v:dup2" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h2 id="g:2">A note about resource acquisition/release semantics</h2><div class="doc"><p><a id="resource"></a></p><p>In general, the convention within this library is that input and output
 streams do not deal with resource acquisition/release semantics, with rare
 exceptions like <code><a href="System-IO-Streams.html#v:withFileAsInput">withFileAsInput</a></code>. For example, sending
 &quot;end-of-stream&quot; to an <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> wrapped around a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#v:Handle">Handle</a></code>
 doesn't cause the handle to be closed. You can think of streams as little
 state machines that are attached to the underlying resources, and the
 finalization/release of these resources is up to you.</p><p>This means that you can use standard Haskell idioms like
 <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Exception.html#v:bracket">bracket</a></code> to handle resource acquisition and cleanup in an
 exception-safe way.</p></div><h1 id="g:3">Creating streams</h1><div class="top"><p class="src"><a id="v:makeInputStream" class="def">makeInputStream</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> a) <a href="src/System-IO-Streams-Internal.html#makeInputStream" class="link">Source</a> <a href="#v:makeInputStream" class="selflink">#</a></p><div class="doc"><p>Creates an <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> from a value-producing action.</p><p>(<code>makeInputStream m</code>) calls the action <code>m</code> each time you request a value
 from the <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>. The given action is extended with the default
 pushback mechanism (see <a href="System-IO-Streams-Internal.html#pushback">System.IO.Streams.Internal</a>).</p></div></div><div class="top"><p class="src"><a id="v:makeOutputStream" class="def">makeOutputStream</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> ()) -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a) <a href="src/System-IO-Streams-Internal.html#makeOutputStream" class="link">Source</a> <a href="#v:makeOutputStream" class="selflink">#</a></p><div class="doc"><p>Creates an <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> from a value-consuming action.</p><p>(<code>makeOutputStream f</code>) runs the computation <code>f</code> on each value fed to it.</p><p>Since version 1.2.0.0, <code><a href="System-IO-Streams.html#v:makeOutputStream">makeOutputStream</a></code> also ensures that output streams
 no longer receive data once EOF is received (i.e. you can now assume that
 makeOutputStream will feed your function <code>Nothing</code> at most once.)</p></div></div><h1 id="g:4">Primitive stream operations</h1><div class="top"><p class="src"><a id="v:read" class="def">read</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) <a href="src/System-IO-Streams-Internal.html#read" class="link">Source</a> <a href="#v:read" class="selflink">#</a></p><div class="doc"><p>Reads one value from an <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>.</p><p>Returns either a value wrapped in a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Just">Just</a></code>, or <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Nothing">Nothing</a></code> if the end of the
 stream is reached.</p></div></div><div class="top"><p class="src"><a id="v:unRead" class="def">unRead</a> :: a -&gt; <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="src/System-IO-Streams-Internal.html#unRead" class="link">Source</a> <a href="#v:unRead" class="selflink">#</a></p><div class="doc"><p>Pushes a value back onto an input stream. <code><a href="System-IO-Streams.html#v:read">read</a></code> and <code><a href="System-IO-Streams.html#v:unRead">unRead</a></code> should
 satisfy the following law, with the possible exception of side effects:</p><pre>Streams.<code><a href="System-IO-Streams.html#v:unRead">unRead</a></code> c stream &gt;&gt; Streams.<code><a href="System-IO-Streams.html#v:read">read</a></code> stream === <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-Maybe.html#v:Just">Just</a></code> c)
</pre><p>Note that this could be used to add values back to the stream that were not
 originally drawn from the stream.</p></div></div><div class="top"><p class="src"><a id="v:peek" class="def">peek</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a) <a href="src/System-IO-Streams-Internal.html#peek" class="link">Source</a> <a href="#v:peek" class="selflink">#</a></p><div class="doc"><p>Observes the first value from an <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> without consuming it.</p><p>Returns <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Nothing">Nothing</a></code> if the <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> is empty. <code><a href="System-IO-Streams.html#v:peek">peek</a></code> satisfies the
 following law:</p><pre>Streams.<code><a href="System-IO-Streams.html#v:peek">peek</a></code> stream &gt;&gt; Streams.<code><a href="System-IO-Streams.html#v:read">read</a></code> stream === Streams.<code><a href="System-IO-Streams.html#v:read">read</a></code> stream
</pre></div></div><div class="top"><p class="src"><a id="v:write" class="def">write</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#t:Maybe">Maybe</a> a -&gt; <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="src/System-IO-Streams-Internal.html#write" class="link">Source</a> <a href="#v:write" class="selflink">#</a></p><div class="doc"><p>Feeds a value to an <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code>. Values of type <code>c</code> are written in an
 <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> by wrapping them in <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Just">Just</a></code>, and the end of the stream is
 indicated by supplying <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Nothing">Nothing</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:atEOF" class="def">atEOF</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</a> <a href="src/System-IO-Streams-Internal.html#atEOF" class="link">Source</a> <a href="#v:atEOF" class="selflink">#</a></p><div class="doc"><p>Checks if an <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> is at end-of-stream.</p></div></div><h1 id="g:5">Connecting streams together</h1><div class="top"><p class="src"><a id="v:connect" class="def">connect</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="src/System-IO-Streams-Internal.html#connect" class="link">Source</a> <a href="#v:connect" class="selflink">#</a></p><div class="doc"><p>Connects an <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> and <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code>, supplying values from the
 <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> to the <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code>, and propagating the end-of-stream
 message from the <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> through to the <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code>.</p><p>The connection ends when the <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> yields a <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Nothing">Nothing</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:connectTo" class="def">connectTo</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -&gt; <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="src/System-IO-Streams-Internal.html#connectTo" class="link">Source</a> <a href="#v:connectTo" class="selflink">#</a></p><div class="doc"><p>The <code><a href="System-IO-Streams.html#v:connectTo">connectTo</a></code> function is just <code><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Function.html#v:flip">flip</a></code> <code><a href="System-IO-Streams.html#v:connect">connect</a></code></code>.</p><p>Useful for writing expressions like <code>fromList [1,2,3] &gt;&gt;= connectTo foo</code>.</p></div></div><div class="top"><p class="src"><a id="v:supply" class="def">supply</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="src/System-IO-Streams-Internal.html#supply" class="link">Source</a> <a href="#v:supply" class="selflink">#</a></p><div class="doc"><p>Connects an <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> to an <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> without passing the
 end-of-stream notification through to the <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code>.</p><p>Use this to supply an <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> with multiple <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>s and use
 <code><a href="System-IO-Streams.html#v:connect">connect</a></code> for the final <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> to finalize the <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code>, like
 so:</p><pre>do Streams.<code><a href="System-IO-Streams.html#v:supply">supply</a></code>  input1 output
   Streams.<code><a href="System-IO-Streams.html#v:supply">supply</a></code>  input2 output
   Streams.<code><a href="System-IO-Streams.html#v:connect">connect</a></code> input3 output
</pre></div></div><div class="top"><p class="src"><a id="v:supplyTo" class="def">supplyTo</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -&gt; <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> () <a href="src/System-IO-Streams-Internal.html#supplyTo" class="link">Source</a> <a href="#v:supplyTo" class="selflink">#</a></p><div class="doc"><p><code><a href="System-IO-Streams.html#v:supply">supply</a></code> with the arguments flipped.</p></div></div><div class="top"><p class="src"><a id="v:appendInputStream" class="def">appendInputStream</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> a) <a href="src/System-IO-Streams-Internal.html#appendInputStream" class="link">Source</a> <a href="#v:appendInputStream" class="selflink">#</a></p><div class="doc"><p><code><a href="System-IO-Streams.html#v:appendInputStream">appendInputStream</a></code> concatenates two <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>s, analogous to (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-OldList.html#v:-43--43-">++</a></code>)
 for lists.</p><p>The second <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> continues where the first <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> ends.</p><p>Note: values pushed back to <code><a href="System-IO-Streams.html#v:appendInputStream">appendInputStream</a></code> are not propagated to either
 wrapped <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:concatInputStreams" class="def">concatInputStreams</a> :: [<a href="System-IO-Streams.html#t:InputStream">InputStream</a> a] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> a) <a href="src/System-IO-Streams-Internal.html#concatInputStreams" class="link">Source</a> <a href="#v:concatInputStreams" class="selflink">#</a></p><div class="doc"><p><code><a href="System-IO-Streams.html#v:concatInputStreams">concatInputStreams</a></code> concatenates a list of <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>s, analogous to
 (<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-OldList.html#v:-43--43-">++</a></code>) for lists.</p><p>Subsequent <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>s continue where the previous one <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>
 ends.</p><p>Note: values pushed back to the <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> returned by
 <code><a href="System-IO-Streams.html#v:concatInputStreams">concatInputStreams</a></code> are not propagated to any of the source
 <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>s.</p></div></div><h1 id="g:6">Thread safety / concurrency</h1><div class="top"><p class="src"><a id="v:lockingInputStream" class="def">lockingInputStream</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> a) <a href="src/System-IO-Streams-Internal.html#lockingInputStream" class="link">Source</a> <a href="#v:lockingInputStream" class="selflink">#</a></p><div class="doc"><p>Converts an <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> into a thread-safe <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>, at a slight
 performance penalty.</p><p>For performance reasons, this library provides non-thread-safe streams by
 default. Use the <code>locking</code> functions to convert these streams into slightly
 slower, but thread-safe, equivalents.</p></div></div><div class="top"><p class="src"><a id="v:lockingOutputStream" class="def">lockingOutputStream</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a) <a href="src/System-IO-Streams-Internal.html#lockingOutputStream" class="link">Source</a> <a href="#v:lockingOutputStream" class="selflink">#</a></p><div class="doc"><p>Converts an <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> into a thread-safe <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code>, at a slight
 performance penalty.</p><p>For performance reasons, this library provides non-thread-safe streams by
 default. Use the <code>locking</code> functions to convert these streams into slightly
 slower, but thread-safe, equivalents.</p></div></div><h1 id="g:7">Utility streams</h1><div class="top"><p class="src"><a id="v:nullInput" class="def">nullInput</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> a) <a href="src/System-IO-Streams-Internal.html#nullInput" class="link">Source</a> <a href="#v:nullInput" class="selflink">#</a></p><div class="doc"><p>An empty <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> that yields <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Nothing">Nothing</a></code> immediately.</p></div></div><div class="top"><p class="src"><a id="v:nullOutput" class="def">nullOutput</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a) <a href="src/System-IO-Streams-Internal.html#nullOutput" class="link">Source</a> <a href="#v:nullOutput" class="selflink">#</a></p><div class="doc"><p>An empty <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> that discards any input fed to it.</p></div></div><h1 id="g:8">Generator monad</h1><div class="doc"><p><a id="generator"></a></p><p>The <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> monad makes it easier for you to define more complicated
 <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>s. Generators have a couple of basic features:</p><p><code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> is a <code>MonadIO</code>, so you can run IO actions from within it using
 <code>liftIO</code>:</p><pre>foo :: <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> r a
foo = <code>liftIO</code> fireTheMissiles
</pre><p><code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> has a <code><a href="System-IO-Streams.html#v:yield">yield</a></code> function:</p><pre><code><a href="System-IO-Streams.html#v:yield">yield</a></code> :: r -&gt; <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> r ()
</pre><p>A call to &quot;<code><a href="System-IO-Streams.html#v:yield">yield</a></code> <code>x</code>&quot; causes &quot;<code>Just</code> <code>x</code>&quot; to appear when reading the
 <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>. Finally, <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> comes with a function to turn a
 <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> into an <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>:</p><pre><code><a href="System-IO-Streams.html#v:fromGenerator">fromGenerator</a></code> :: <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> r a -&gt; <code>IO</code> (<code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> r)
</pre><p>Once the <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> action finishes, <code><a href="System-IO-Streams.html#v:fromGenerator">fromGenerator</a></code> will cause an
 end-of-stream <code>Nothing</code> marker to appear at the output. Example:</p><pre>ghci&gt; (Streams.<code><a href="System-IO-Streams.html#v:fromGenerator">fromGenerator</a></code> $ <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#v:sequence">sequence</a></code> $ <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#v:map">map</a></code> Streams.<code><a href="System-IO-Streams.html#v:yield">yield</a></code> [1..5::Int]) &gt;&gt;= Streams.<code><a href="System-IO-Streams-List.html#v:toList">toList</a></code>
[1,2,3,4,5]
</pre></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Generator" class="def">Generator</a> r a <a href="src/System-IO-Streams-Internal.html#Generator" class="link">Source</a> <a href="#t:Generator" class="selflink">#</a></p><div class="doc"><p>A <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> is a coroutine monad that can be used to define complex
 <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>s. You can cause a value of type <code>Just r</code> to appear when the
 <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> is read by calling <code><a href="System-IO-Streams.html#v:yield">yield</a></code>:</p><pre>g :: <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> Int ()
g = do
    Streams.<code><a href="System-IO-Streams.html#v:yield">yield</a></code> 1
    Streams.<code><a href="System-IO-Streams.html#v:yield">yield</a></code> 2
    Streams.<code><a href="System-IO-Streams.html#v:yield">yield</a></code> 3
</pre><p>A <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> can be turned into an <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> by calling
 <code><a href="System-IO-Streams.html#v:fromGenerator">fromGenerator</a></code>:</p><pre>m :: <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a></code> [<code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int">Int</a></code>]
m = Streams.<code><a href="System-IO-Streams.html#v:fromGenerator">fromGenerator</a></code> g &gt;&gt;= Streams.<code><a href="System-IO-Streams.html#v:toList">toList</a></code>     -- value returned is [1,2,3]
</pre><p>You can perform IO by calling <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad-IO-Class.html#v:liftIO">liftIO</a></code>, and turn a <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> into an
 <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> with <code><a href="System-IO-Streams.html#v:fromGenerator">fromGenerator</a></code>.</p><p>As a general rule, you should not acquire resources that need to be freed
 from a <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code>, because there is no guarantee the coroutine continuation
 will ever be called, nor can you catch an exception from within a
 <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code>.</p></div><div class="subs instances"><p id="control.i:Generator" class="caption collapser" onclick="toggleSection('i:Generator')">Instances</p><div id="section.i:Generator" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Generator:Monad:1" class="instance expander" onclick="toggleSection('i:id:Generator:Monad:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Monad.html#t:Monad">Monad</a> (<a href="System-IO-Streams.html#t:Generator">Generator</a> r)</span> <a href="src/System-IO-Streams-Internal.html#line-585" class="link">Source</a> <a href="#t:Generator" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Generator: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="System-IO-Streams.html#t:Generator">Generator</a> r a -&gt; (a -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r b) -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="System-IO-Streams.html#t:Generator">Generator</a> r a -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r b -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r 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="System-IO-Streams.html#t:Generator">Generator</a> r 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:Generator:Functor:2" class="instance expander" onclick="toggleSection('i:id:Generator:Functor:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Functor.html#t:Functor">Functor</a> (<a href="System-IO-Streams.html#t:Generator">Generator</a> r)</span> <a href="src/System-IO-Streams-Internal.html#line-596" class="link">Source</a> <a href="#t:Generator" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Generator: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="System-IO-Streams.html#t:Generator">Generator</a> r a -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r b -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r 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:Generator:Applicative:3" class="instance expander" onclick="toggleSection('i:id:Generator:Applicative:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="System-IO-Streams.html#t:Generator">Generator</a> r)</span> <a href="src/System-IO-Streams-Internal.html#line-604" class="link">Source</a> <a href="#t:Generator" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Generator:Applicative:3" 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="System-IO-Streams.html#t:Generator">Generator</a> r a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="System-IO-Streams.html#t:Generator">Generator</a> r (a -&gt; b) -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r a -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="System-IO-Streams.html#t:Generator">Generator</a> r a -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r b -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="System-IO-Streams.html#t:Generator">Generator</a> r a -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r b -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r 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:Generator:MonadIO:4" class="instance expander" onclick="toggleSection('i:id:Generator:MonadIO:4')"></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> (<a href="System-IO-Streams.html#t:Generator">Generator</a> r)</span> <a href="src/System-IO-Streams-Internal.html#line-591" class="link">Source</a> <a href="#t:Generator" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Generator:MonadIO:4" 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="System-IO-Streams.html#t:Generator">Generator</a> r a <a href="#v:liftIO" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:fromGenerator" class="def">fromGenerator</a> :: <a href="System-IO-Streams.html#t:Generator">Generator</a> r a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/System-IO.html#t:IO">IO</a> (<a href="System-IO-Streams.html#t:InputStream">InputStream</a> r) <a href="src/System-IO-Streams-Internal.html#fromGenerator" class="link">Source</a> <a href="#v:fromGenerator" class="selflink">#</a></p><div class="doc"><p>Turns a <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> into an <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>.</p></div></div><div class="top"><p class="src"><a id="v:yield" class="def">yield</a> :: r -&gt; <a href="System-IO-Streams.html#t:Generator">Generator</a> r () <a href="src/System-IO-Streams-Internal.html#yield" class="link">Source</a> <a href="#v:yield" class="selflink">#</a></p><div class="doc"><p>Calling <code><code><a href="System-IO-Streams.html#v:yield">yield</a></code> x</code> causes the value <code><code><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Maybe.html#v:Just">Just</a></code> x</code> to appear on the input
 when this generator is converted to an <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code>. The rest of the
 computation after the call to <code><a href="System-IO-Streams.html#v:yield">yield</a></code> is resumed later when the
 <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> is <code><a href="System-IO-Streams.html#v:read">read</a></code> again.</p></div></div><h1 id="g:9">Batteries included</h1><div class="top"><p class="src">module <a href="System-IO-Streams-Builder.html">System.IO.Streams.Builder</a></p></div><div class="top"><p class="src">module <a href="System-IO-Streams-ByteString.html">System.IO.Streams.ByteString</a></p></div><div class="top"><p class="src">module <a href="System-IO-Streams-Combinators.html">System.IO.Streams.Combinators</a></p></div><div class="top"><p class="src">module <a href="System-IO-Streams-Handle.html">System.IO.Streams.Handle</a></p></div><div class="top"><p class="src">module <a href="System-IO-Streams-File.html">System.IO.Streams.File</a></p></div><div class="top"><p class="src">module <a href="System-IO-Streams-List.html">System.IO.Streams.List</a></p></div><div class="top"><p class="src">module <a href="System-IO-Streams-Network.html">System.IO.Streams.Network</a></p></div><div class="top"><p class="src">module <a href="System-IO-Streams-Process.html">System.IO.Streams.Process</a></p></div><div class="top"><p class="src">module <a href="System-IO-Streams-Text.html">System.IO.Streams.Text</a></p></div><div class="top"><p class="src">module <a href="System-IO-Streams-Vector.html">System.IO.Streams.Vector</a></p></div><div class="top"><p class="src">module <a href="System-IO-Streams-Zlib.html">System.IO.Streams.Zlib</a></p></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>