/usr/share/doc/libghc-abstract-deque-doc/html/Data-Concurrent-Deque-Debugger.html is in libghc-abstract-deque-doc 0.3-5.
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 | <!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>Data.Concurrent.Deque.Debugger</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_Data-Concurrent-Deque-Debugger.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-Concurrent-Deque-Debugger.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">abstract-deque-0.3: Abstract, parameterized interface to mutable Deques.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Data.Concurrent.Deque.Debugger</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module provides a wrapper around a deque that can enforce additional
invariants at runtime for debugging purposes.</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:DebugDeque">DebugDeque</a> d elt = <a href="#v:DebugDeque">DebugDeque</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-IORef.html#t:IORef">IORef</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Concurrent.html#t:ThreadId">ThreadId</a>), <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-IORef.html#t:IORef">IORef</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Concurrent.html#t:ThreadId">ThreadId</a>)) (d elt)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:DebugDeque" class="def">DebugDeque</a> d elt <a href="src/Data-Concurrent-Deque-Debugger.html#DebugDeque" class="link">Source</a></p><div class="doc"><p>Warning, this enforces the excessively STRONG invariant that if any end of the
deque is non-threadsafe then it may ever only be touched by one thread during its
entire lifetime.</p><p>This extreme form of monagamy is easier to verify, because we don't have enough
information to know if two operations on different threads are racing with one
another or are properly synchronized.</p><p>The wrapper data structure has two IORefs to track the last thread that touched
the left and right end of the deque, respectively.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:DebugDeque" class="def">DebugDeque</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-IORef.html#t:IORef">IORef</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Concurrent.html#t:ThreadId">ThreadId</a>), <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-IORef.html#t:IORef">IORef</a> (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Control-Concurrent.html#t:ThreadId">ThreadId</a>)) (d elt)</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:DebugDeque" class="caption collapser" onclick="toggleSection('i:DebugDeque')">Instances</p><div id="section.i:DebugDeque" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Concurrent-Deque-Class.html#t:PopL">PopL</a> d => <a href="Data-Concurrent-Deque-Class.html#t:PopL">PopL</a> (<a href="Data-Concurrent-Deque-Debugger.html#t:DebugDeque">DebugDeque</a> d)</span> <a href="src/Data-Concurrent-Deque-Debugger.html#line-49" class="link">Source</a></td><td class="doc empty"> </td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Data-Concurrent-Deque-Class.html#t:DequeClass">DequeClass</a> d => <a href="Data-Concurrent-Deque-Class.html#t:DequeClass">DequeClass</a> (<a href="Data-Concurrent-Deque-Debugger.html#t:DebugDeque">DebugDeque</a> d)</span> <a href="src/Data-Concurrent-Deque-Debugger.html#line-29" class="link">Source</a></td><td class="doc empty"> </td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.1</p></div></body></html>
|