/usr/share/doc/libghc-comonad-doc/html/Control-Comonad-Trans-Store.html is in libghc-comonad-doc 4.0-1build3.
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 | <!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.Comonad.Trans.Store</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-Comonad-Trans-Store.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Control-Comonad-Trans-Store.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">comonad-4.0: Comonads</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Trustworthy</td></tr></table><p class="caption">Control.Comonad.Trans.Store</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The Store comonad
</a></li><li><a href="#g:2">The Store comonad transformer
</a></li><li><a href="#g:3">Operations
</a></li></ul></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">type</span> <a href="#t:Store">Store</a> s = <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s <a href="/usr/share/doc/libghc-transformers-doc/html/Data-Functor-Identity.html#t:Identity">Identity</a></li><li class="src short"><a href="#v:store">store</a> :: (s -> a) -> s -> <a href="Control-Comonad-Trans-Store.html#t:Store">Store</a> s a</li><li class="src short"><a href="#v:runStore">runStore</a> :: <a href="Control-Comonad-Trans-Store.html#t:Store">Store</a> s a -> (s -> a, s)</li><li class="src short"><span class="keyword">data</span> <a href="#t:StoreT">StoreT</a> s w a = <a href="#v:StoreT">StoreT</a> (w (s -> a)) s</li><li class="src short"><a href="#v:runStoreT">runStoreT</a> :: <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> (w (s -> a), s)</li><li class="src short"><a href="#v:pos">pos</a> :: <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> s</li><li class="src short"><a href="#v:seek">seek</a> :: s -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a</li><li class="src short"><a href="#v:seeks">seeks</a> :: (s -> s) -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a</li><li class="src short"><a href="#v:peek">peek</a> :: <a href="Control-Comonad.html#t:Comonad">Comonad</a> w => s -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> a</li><li class="src short"><a href="#v:peeks">peeks</a> :: <a href="Control-Comonad.html#t:Comonad">Comonad</a> w => (s -> s) -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> a</li><li class="src short"><a href="#v:experiment">experiment</a> :: (<a href="Control-Comonad.html#t:Comonad">Comonad</a> w, <a href="Control-Comonad.html#t:Functor">Functor</a> f) => (s -> f s) -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> f a</li></ul></div><div id="interface"><h1 id="g:1">The Store comonad
</h1><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Store" class="def">Store</a> s = <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s <a href="/usr/share/doc/libghc-transformers-doc/html/Data-Functor-Identity.html#t:Identity">Identity</a><a href="src/Control-Comonad-Trans-Store.html#Store" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:store" class="def">store</a> :: (s -> a) -> s -> <a href="Control-Comonad-Trans-Store.html#t:Store">Store</a> s a<a href="src/Control-Comonad-Trans-Store.html#store" class="link">Source</a></p><div class="doc"><p>Create a Store using an accessor function and a stored value
</p></div></div><div class="top"><p class="src"><a name="v:runStore" class="def">runStore</a> :: <a href="Control-Comonad-Trans-Store.html#t:Store">Store</a> s a -> (s -> a, s)<a href="src/Control-Comonad-Trans-Store.html#runStore" class="link">Source</a></p></div><h1 id="g:2">The Store comonad transformer
</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:StoreT" class="def">StoreT</a> s w a <a href="src/Control-Comonad-Trans-Store.html#StoreT" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:StoreT" class="def">StoreT</a> (w (s -> a)) s</td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:StoreT" class="caption collapser" onclick="toggleSection('i:StoreT')">Instances</p><div id="section.i:StoreT" class="show"><table><tr><td class="src"><a href="Control-Comonad-Env-Class.html#t:ComonadEnv">ComonadEnv</a> e w => <a href="Control-Comonad-Env-Class.html#t:ComonadEnv">ComonadEnv</a> e (<a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> t w)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Comonad.html#t:Comonad">Comonad</a> w => <a href="Control-Comonad-Store-Class.html#t:ComonadStore">ComonadStore</a> s (<a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Comonad-Traced-Class.html#t:ComonadTraced">ComonadTraced</a> m w => <a href="Control-Comonad-Traced-Class.html#t:ComonadTraced">ComonadTraced</a> m (<a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Comonad-Trans-Class.html#t:ComonadTrans">ComonadTrans</a> (<a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Comonad-Hoist-Class.html#t:ComonadHoist">ComonadHoist</a> (<a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Comonad.html#t:Functor">Functor</a> w => <a href="Control-Comonad.html#t:Functor">Functor</a> (<a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Typeable-Internal.html#t:Typeable">Typeable</a> s, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> w) => <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-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Applicative.html#t:Applicative">Applicative</a> w, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Monoid.html#t:Monoid">Monoid</a> s) => <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Control-Applicative.html#t:Applicative">Applicative</a> (<a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="Control-Comonad.html#t:ComonadApply">ComonadApply</a> w, <a href="/usr/share/doc/libghc-semigroups-doc/html/Data-Semigroup.html#t:Semigroup">Semigroup</a> s) => <a href="Control-Comonad.html#t:ComonadApply">ComonadApply</a> (<a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w)</td><td class="doc empty"> </td></tr><tr><td class="src"><a href="Control-Comonad.html#t:Comonad">Comonad</a> w => <a href="Control-Comonad.html#t:Comonad">Comonad</a> (<a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w)</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Typeable-Internal.html#t:Typeable">Typeable</a> s, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Typeable-Internal.html#t:Typeable1">Typeable1</a> w, <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Typeable-Internal.html#t:Typeable">Typeable</a> a) => <a href="/usr/share/doc/ghc-doc/html/libraries/base-4.6.0.1/Data-Typeable-Internal.html#t:Typeable">Typeable</a> (<a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:runStoreT" class="def">runStoreT</a> :: <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> (w (s -> a), s)<a href="src/Control-Comonad-Trans-Store.html#runStoreT" class="link">Source</a></p></div><h1 id="g:3">Operations
</h1><div class="top"><p class="src"><a name="v:pos" class="def">pos</a> :: <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> s<a href="src/Control-Comonad-Trans-Store.html#pos" class="link">Source</a></p><div class="doc"><p>Read the stored value
</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>pos $ store fst (1,5)
</code></strong>(1,5)
</pre></div></div><div class="top"><p class="src"><a name="v:seek" class="def">seek</a> :: s -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a<a href="src/Control-Comonad-Trans-Store.html#seek" class="link">Source</a></p><div class="doc"><p>Set the stored value
</p><pre> pos . seek (3,7) $ store fst (1,5)
(3,7)
</pre><p>Seek satisfies the law
</p><pre> seek s = peek s . duplicate
</pre></div></div><div class="top"><p class="src"><a name="v:seeks" class="def">seeks</a> :: (s -> s) -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a<a href="src/Control-Comonad-Trans-Store.html#seeks" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:peek" class="def">peek</a> :: <a href="Control-Comonad.html#t:Comonad">Comonad</a> w => s -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> a<a href="src/Control-Comonad-Trans-Store.html#peek" class="link">Source</a></p><div class="doc"><p>Peek at what the current focus would be for a different stored value
</p><p>Peek satisfies the law
</p><pre> peek x . extend (peek y) = peek y
</pre></div></div><div class="top"><p class="src"><a name="v:peeks" class="def">peeks</a> :: <a href="Control-Comonad.html#t:Comonad">Comonad</a> w => (s -> s) -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> a<a href="src/Control-Comonad-Trans-Store.html#peeks" class="link">Source</a></p><div class="doc"><p>Peek at what the current focus would be if the stored value was
modified by some function
</p></div></div><div class="top"><p class="src"><a name="v:experiment" class="def">experiment</a> :: (<a href="Control-Comonad.html#t:Comonad">Comonad</a> w, <a href="Control-Comonad.html#t:Functor">Functor</a> f) => (s -> f s) -> <a href="Control-Comonad-Trans-Store.html#t:StoreT">StoreT</a> s w a -> f a<a href="src/Control-Comonad-Trans-Store.html#experiment" class="link">Source</a></p><div class="doc"><p>Applies a functor-valued function to the stored value, and then uses the
new accessor to read the resulting focus.
</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>let f x = if x > 0 then Just (x^2) else Nothing
</code></strong><code class="prompt">>>> </code><strong class="userinput"><code>experiment f $ store (+1) 2
</code></strong>Just 5
<code class="prompt">>>> </code><strong class="userinput"><code>experiment f $ store (+1) (-2)
</code></strong>Nothing
</pre></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>
|