This file is indexed.

/usr/share/doc/libghc-stm-chans-doc/html/Control-Concurrent-STM-TMChan.html is in libghc-stm-chans-doc 3.0.0.2-1.

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

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Control.Concurrent.STM.TMChan</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Control-Concurrent-STM-TMChan.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Concurrent-STM-TMChan.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">stm-chans-3.0.0.2: Additional types of channels for STM.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>non-portable (GHC STM, DeriveDataTypeable)</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>wren@community.haskell.org</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">Control.Concurrent.STM.TMChan</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The TMChan type
</a><ul><li><a href="#g:2">Creating TMChans
</a></li><li><a href="#g:3">Reading from TMChans
</a></li><li><a href="#g:4">Writing to TMChans
</a></li><li><a href="#g:5">Closing TMChans
</a></li><li><a href="#g:6">Predicates
</a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>A version of <a href="/usr/share/doc/libghc-stm-doc/html/Control-Concurrent-STM-TChan.html">Control.Concurrent.STM.TChan</a> where the queue is
 closeable. This is similar to a <code>TChan (Maybe a)</code> with a
 monotonicity guarantee that once there's a <code>Nothing</code> there will
 always be <code>Nothing</code>.
</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:TMChan">TMChan</a> a</li><li class="src short"><a href="#v:newTMChan">newTMChan</a> ::  <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a)</li><li class="src short"><a href="#v:newTMChanIO">newTMChanIO</a> ::  <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> (<a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a)</li><li class="src short"><a href="#v:dupTMChan">dupTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a)</li><li class="src short"><a href="#v:newBroadcastTMChan">newBroadcastTMChan</a> ::  <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a)</li><li class="src short"><a href="#v:newBroadcastTMChanIO">newBroadcastTMChanIO</a> ::  <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> (<a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a)</li><li class="src short"><a href="#v:readTMChan">readTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:tryReadTMChan">tryReadTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a))</li><li class="src short"><a href="#v:peekTMChan">peekTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)</li><li class="src short"><a href="#v:tryPeekTMChan">tryPeekTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a))</li><li class="src short"><a href="#v:writeTMChan">writeTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> ()</li><li class="src short"><a href="#v:unGetTMChan">unGetTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> ()</li><li class="src short"><a href="#v:closeTMChan">closeTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> ()</li><li class="src short"><a href="#v:isClosedTMChan">isClosedTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isEmptyTMChan">isEmptyTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a></li></ul></div><div id="interface"><h1 id="g:1">The TMChan type
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TMChan" class="def">TMChan</a> a <a href="src/Control-Concurrent-STM-TMChan.html#TMChan" class="link">Source</a></p><div class="doc"><p><code>TMChan</code> is an abstract type representing a closeable FIFO
 channel.
</p></div><div class="subs instances"><p id="control.i:TMChan" class="caption collapser" onclick="toggleSection('i:TMChan')">Instances</p><div id="section.i:TMChan" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h2 id="g:2">Creating TMChans
</h2><div class="top"><p class="src"><a name="v:newTMChan" class="def">newTMChan</a> ::  <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a)<a href="src/Control-Concurrent-STM-TMChan.html#newTMChan" class="link">Source</a></p><div class="doc"><p>Build and returns a new instance of <code>TMChan</code>.
</p></div></div><div class="top"><p class="src"><a name="v:newTMChanIO" class="def">newTMChanIO</a> ::  <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> (<a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a)<a href="src/Control-Concurrent-STM-TMChan.html#newTMChanIO" class="link">Source</a></p><div class="doc"><p><code>IO</code> version of <code><a href="Control-Concurrent-STM-TMChan.html#v:newTMChan">newTMChan</a></code>. This is useful for creating
 top-level <code>TMChan</code>s using <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO-Unsafe.html#v:unsafePerformIO">unsafePerformIO</a></code>, because using
 <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#v:atomically">atomically</a></code> inside <code><a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO-Unsafe.html#v:unsafePerformIO">unsafePerformIO</a></code> isn't possible.
</p></div></div><div class="top"><p class="src"><a name="v:dupTMChan" class="def">dupTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a)<a href="src/Control-Concurrent-STM-TMChan.html#dupTMChan" class="link">Source</a></p><div class="doc"><p>Duplicate a <code>TMChan</code>: the duplicate channel begins empty, but
 data written to either channel from then on will be available
 from both, and closing one copy will close them all. Hence this
 creates a kind of broadcast channel, where data written by anyone
 is seen by everyone else.
</p></div></div><div class="top"><p class="src"><a name="v:newBroadcastTMChan" class="def">newBroadcastTMChan</a> ::  <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a)<a href="src/Control-Concurrent-STM-TMChan.html#newBroadcastTMChan" class="link">Source</a></p><div class="doc"><p>Like <code><a href="/usr/share/doc/libghc-stm-doc/html/Control-Concurrent-STM-TChan.html#v:newBroadcastTChan">newBroadcastTChan</a></code>.
</p><p><em>Since: 2.1.0</em>
</p></div></div><div class="top"><p class="src"><a name="v:newBroadcastTMChanIO" class="def">newBroadcastTMChanIO</a> ::  <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/System-IO.html#t:IO">IO</a> (<a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a)<a href="src/Control-Concurrent-STM-TMChan.html#newBroadcastTMChanIO" class="link">Source</a></p><div class="doc"><p><code>IO</code> version of <code><a href="Control-Concurrent-STM-TMChan.html#v:newBroadcastTMChan">newBroadcastTMChan</a></code>.
</p><p><em>Since: 2.1.0</em>
</p></div></div><h2 id="g:3">Reading from TMChans
</h2><div class="top"><p class="src"><a name="v:readTMChan" class="def">readTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)<a href="src/Control-Concurrent-STM-TMChan.html#readTMChan" class="link">Source</a></p><div class="doc"><p>Read the next value from the <code>TMChan</code>, retrying if the channel
 is empty (and not closed). We return <code>Nothing</code> immediately if
 the channel is closed and empty.
</p></div></div><div class="top"><p class="src"><a name="v:tryReadTMChan" class="def">tryReadTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a))<a href="src/Control-Concurrent-STM-TMChan.html#tryReadTMChan" class="link">Source</a></p><div class="doc"><p>A version of <code><a href="Control-Concurrent-STM-TMChan.html#v:readTMChan">readTMChan</a></code> which does not retry. Instead it
 returns <code>Just Nothing</code> if the channel is open but no value is
 available; it still returns <code>Nothing</code> if the channel is closed
 and empty.
</p></div></div><div class="top"><p class="src"><a name="v:peekTMChan" class="def">peekTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a)<a href="src/Control-Concurrent-STM-TMChan.html#peekTMChan" class="link">Source</a></p><div class="doc"><p>Get the next value from the <code>TMChan</code> without removing it,
 retrying if the channel is empty.
</p></div></div><div class="top"><p class="src"><a name="v:tryPeekTMChan" class="def">tryPeekTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Maybe.html#t:Maybe">Maybe</a> a))<a href="src/Control-Concurrent-STM-TMChan.html#tryPeekTMChan" class="link">Source</a></p><div class="doc"><p>A version of <code><a href="Control-Concurrent-STM-TMChan.html#v:peekTMChan">peekTMChan</a></code> which does not retry. Instead it
 returns <code>Just Nothing</code> if the channel is open but no value is
 available; it still returns <code>Nothing</code> if the channel is closed
 and empty.
</p></div></div><h2 id="g:4">Writing to TMChans
</h2><div class="top"><p class="src"><a name="v:writeTMChan" class="def">writeTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> ()<a href="src/Control-Concurrent-STM-TMChan.html#writeTMChan" class="link">Source</a></p><div class="doc"><p>Write a value to a <code>TMChan</code>. If the channel is closed then the
 value is silently discarded. Use <code><a href="Control-Concurrent-STM-TMChan.html#v:isClosedTMChan">isClosedTMChan</a></code> to determine
 if the channel is closed before writing, as needed.
</p></div></div><div class="top"><p class="src"><a name="v:unGetTMChan" class="def">unGetTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> ()<a href="src/Control-Concurrent-STM-TMChan.html#unGetTMChan" class="link">Source</a></p><div class="doc"><p>Put a data item back onto a channel, where it will be the next
 item read. If the channel is closed then the value is silently
 discarded; you can use <code><a href="Control-Concurrent-STM-TMChan.html#v:peekTMChan">peekTMChan</a></code> to circumvent this in certain
 circumstances.
</p></div></div><h2 id="g:5">Closing TMChans
</h2><div class="top"><p class="src"><a name="v:closeTMChan" class="def">closeTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> ()<a href="src/Control-Concurrent-STM-TMChan.html#closeTMChan" class="link">Source</a></p><div class="doc"><p>Closes the <code>TMChan</code>, preventing any further writes.
</p></div></div><h2 id="g:6">Predicates
</h2><div class="top"><p class="src"><a name="v:isClosedTMChan" class="def">isClosedTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Concurrent-STM-TMChan.html#isClosedTMChan" class="link">Source</a></p><div class="doc"><p>Returns <code>True</code> if the supplied <code>TMChan</code> has been closed.
</p></div></div><div class="top"><p class="src"><a name="v:isEmptyTMChan" class="def">isEmptyTMChan</a> ::  <a href="Control-Concurrent-STM-TMChan.html#t:TMChan">TMChan</a> a -&gt; <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/GHC-Conc.html#t:STM">STM</a> <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Bool.html#t:Bool">Bool</a><a href="src/Control-Concurrent-STM-TMChan.html#isEmptyTMChan" class="link">Source</a></p><div class="doc"><p>Returns <code>True</code> if the supplied <code>TMChan</code> is empty.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.13.2</p></div></body></html>