/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) -> <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 -> <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/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 -> <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 -> <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -> <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 -> <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 -> <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -> <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 -> <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 -> <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -> <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 -> <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -> <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 -> <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> a -> <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 -> <a href="System-IO-Streams.html#t:InputStream">InputStream</a> a -> <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 -> <a href="System-IO-Streams.html#t:InputStream">InputStream</a> 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:concatInputStreams">concatInputStreams</a> :: [<a href="System-IO-Streams.html#t:InputStream">InputStream</a> 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:lockingInputStream">lockingInputStream</a> :: <a href="System-IO-Streams.html#t:InputStream">InputStream</a> 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:lockingOutputStream">lockingOutputStream</a> :: <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> 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"><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 -> <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 -> <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 -> <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 "end of stream" 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 -> <code><a href="System-IO-Streams.html#t:InputStream">InputStream</a></code> c -> <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> "pushes back" 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 >> <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"> </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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:BufferState">BufferState</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/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> -> <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="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> -> <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="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> -> <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="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> -> <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="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> -> <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="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"> </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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:BufferState">BufferState</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/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> -> <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="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> -> <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="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> -> <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="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> -> <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="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> -> <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="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"> </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> -> <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> -> <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/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> -> <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> -> <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/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> -> <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> -> <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/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> -> <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> -> <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/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"> </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> -> <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> -> <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/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> -> <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> -> <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/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> -> <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> -> <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/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> -> <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> -> <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/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"> </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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</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/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> -> <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> -> <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> -> <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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:SeekMode">SeekMode</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</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="#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> -> <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> -> <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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</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="#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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</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="#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> -> <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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</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="#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> -> <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> -> <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> -> <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="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"> </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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</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/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> -> <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> -> <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> -> <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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:SeekMode">SeekMode</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</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="#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> -> <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> -> <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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</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="#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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</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="#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> -> <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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</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="#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> -> <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> -> <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> -> <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="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 -> <code><a href="System-IO-Streams.html#t:OutputStream">OutputStream</a></code> c -> <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"> </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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:BufferState">BufferState</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/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> -> <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="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> -> <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="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> -> <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="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> -> <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="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> -> <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="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"> </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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Buffer.html#t:BufferState">BufferState</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/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> -> <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="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> -> <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="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> -> <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="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> -> <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="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> -> <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="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"> </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> -> <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> -> <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/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> -> <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> -> <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/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> -> <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> -> <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/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> -> <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> -> <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/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"> </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> -> <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> -> <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/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> -> <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> -> <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/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> -> <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> -> <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/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> -> <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> -> <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/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"> </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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</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/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> -> <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> -> <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> -> <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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:SeekMode">SeekMode</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</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="#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> -> <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> -> <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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</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="#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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</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="#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> -> <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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</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="#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> -> <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> -> <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> -> <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="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"> </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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</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/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> -> <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> -> <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> -> <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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/GHC-IO-Device.html#t:SeekMode">SeekMode</a> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</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="#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> -> <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> -> <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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Prelude.html#t:Integer">Integer</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="#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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</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="#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> -> <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> -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.0.0/Data-Bool.html#t:Bool">Bool</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="#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> -> <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> -> <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> -> <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="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
"end-of-stream" 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) -> <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 -> <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/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 -> <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 -> <a href="System-IO-Streams.html#t:InputStream">InputStream</a> 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="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 >> 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 -> <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 >> 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 -> <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> 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="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 -> <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 -> <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> 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="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 -> <a href="System-IO-Streams.html#t:InputStream">InputStream</a> 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="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] >>= 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 -> <a href="System-IO-Streams.html#t:OutputStream">OutputStream</a> 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="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 -> <a href="System-IO-Streams.html#t:InputStream">InputStream</a> 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="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 -> <a href="System-IO-Streams.html#t:InputStream">InputStream</a> 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#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] -> <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 -> <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 -> <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 -> <code><a href="System-IO-Streams.html#t:Generator">Generator</a></code> r ()
</pre><p>A call to "<code><a href="System-IO-Streams.html#v:yield">yield</a></code> <code>x</code>" causes "<code>Just</code> <code>x</code>" 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 -> <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> (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]) >>= 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 >>= 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"> </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-">(>>=)</a> :: <a href="System-IO-Streams.html#t:Generator">Generator</a> r a -> (a -> <a href="System-IO-Streams.html#t:Generator">Generator</a> r b) -> <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-">(>>)</a> :: <a href="System-IO-Streams.html#t:Generator">Generator</a> r a -> <a href="System-IO-Streams.html#t:Generator">Generator</a> r b -> <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 -> <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> -> <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"> </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 -> b) -> <a href="System-IO-Streams.html#t:Generator">Generator</a> r a -> <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-">(<$)</a> :: a -> <a href="System-IO-Streams.html#t:Generator">Generator</a> r b -> <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"> </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 -> <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-">(<*>)</a> :: <a href="System-IO-Streams.html#t:Generator">Generator</a> r (a -> b) -> <a href="System-IO-Streams.html#t:Generator">Generator</a> r a -> <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-">(*>)</a> :: <a href="System-IO-Streams.html#t:Generator">Generator</a> r a -> <a href="System-IO-Streams.html#t:Generator">Generator</a> r b -> <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-">(<*)</a> :: <a href="System-IO-Streams.html#t:Generator">Generator</a> r a -> <a href="System-IO-Streams.html#t:Generator">Generator</a> r b -> <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"> </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 -> <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 -> <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 -> <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>
|