Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > d4d89afd994d97d86f808e6225684a4f > files > 53

ghc-uniplate-devel-1.6-5.fc15.i686.rpm

<!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.Generics.Compos</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-Generics-Compos.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-Generics-Compos.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">uniplate-1.6: Help writing simple, concise and fast generic operations.</p></div><div id="content"><div id="module-header"><p class="caption">Data.Generics.Compos</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Compos compatibility layer. This module serves as a drop-in
    replacement in some situations for some of the Compos operations.
    Only the single-type traversals are supported, on normal
    algebraic data types. Users should also import either <a href="Data-Generics-Uniplate-Data.html">Data.Generics.Uniplate.Data</a>
    or <a href="Data-Generics-Uniplate-Direct.html">Data.Generics.Uniplate.Direct</a>.
</p><p>Compos is described in the paper: &quot;A Pattern for Almost Compositional Functions&quot;
    by Bjorn Bringert and Aarne Ranta.
</p><ul><li> <a href="http://doi.acm.org/10.1145/1159803.1159834">http://doi.acm.org/10.1145/1159803.1159834</a>
</li><li> <a href="http://www.cs.chalmers.se/~bringert/publ/composOp/composOp.pdf">http://www.cs.chalmers.se/~bringert/publ/composOp/composOp.pdf</a>
</li></ul></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">class</span> <a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a =&gt; <a href="#t:Compos">Compos</a> a </li><li class="src short"><a href="#v:composOp">composOp</a> :: <a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a =&gt; (a -&gt; a) -&gt; a -&gt; a</li><li class="src short"><a href="#v:composOpM">composOpM</a> :: (<a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (a -&gt; m a) -&gt; a -&gt; m a</li><li class="src short"><a href="#v:composOpM_">composOpM_</a> :: (<a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (a -&gt; m <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a>) -&gt; a -&gt; m <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:composOpMonoid">composOpMonoid</a> :: (<a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Monoid.html#t:Monoid">Monoid</a> m) =&gt; (a -&gt; m) -&gt; a -&gt; m</li><li class="src short"><a href="#v:composOpMPlus">composOpMPlus</a> :: (<a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m) =&gt; (a -&gt; m b) -&gt; a -&gt; m b</li><li class="src short"><a href="#v:composOpFold">composOpFold</a> :: <a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a =&gt; b -&gt; (b -&gt; b -&gt; b) -&gt; (a -&gt; b) -&gt; a -&gt; b</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a =&gt; <a name="t:Compos" class="def">Compos</a> a <a href="src/Data-Generics-Compos.html#Compos" class="link">Source</a></p><div class="doc"><p>If you want to keep an existing type class
</p></div></div><div class="top"><p class="src"><a name="v:composOp" class="def">composOp</a> :: <a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a =&gt; (a -&gt; a) -&gt; a -&gt; a<a href="src/Data-Generics-Compos.html#composOp" class="link">Source</a></p><div class="doc"><pre>composOp == <code><a href="Data-Generics-Uniplate-Operations.html#v:descend">descend</a></code></pre></div></div><div class="top"><p class="src"><a name="v:composOpM" class="def">composOpM</a> :: (<a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (a -&gt; m a) -&gt; a -&gt; m a<a href="src/Data-Generics-Compos.html#composOpM" class="link">Source</a></p><div class="doc"><pre>composOpM == <code><a href="Data-Generics-Uniplate-Operations.html#v:descendM">descendM</a></code></pre></div></div><div class="top"><p class="src"><a name="v:composOpM_" class="def">composOpM_</a> :: (<a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Monad">Monad</a> m) =&gt; (a -&gt; m <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a>) -&gt; a -&gt; m <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Unit.html#t:-40--41-">()</a><a href="src/Data-Generics-Compos.html#composOpM_" class="link">Source</a></p><div class="doc"><pre>composOpM_ == <code><a href="Data-Generics-Compos.html#v:composOpFold">composOpFold</a></code> (return ()) (&gt;&gt;)</pre></div></div><div class="top"><p class="src"><a name="v:composOpMonoid" class="def">composOpMonoid</a> :: (<a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Monoid.html#t:Monoid">Monoid</a> m) =&gt; (a -&gt; m) -&gt; a -&gt; m<a href="src/Data-Generics-Compos.html#composOpMonoid" class="link">Source</a></p><div class="doc"><pre>composOpMonoid = <code><a href="Data-Generics-Compos.html#v:composOpFold">composOpFold</a></code> mempty mappend</pre></div></div><div class="top"><p class="src"><a name="v:composOpMPlus" class="def">composOpMPlus</a> :: (<a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:MonadPlus">MonadPlus</a> m) =&gt; (a -&gt; m b) -&gt; a -&gt; m b<a href="src/Data-Generics-Compos.html#composOpMPlus" class="link">Source</a></p><div class="doc"><pre>composOpMPlus = <code><a href="Data-Generics-Compos.html#v:composOpFold">composOpFold</a></code> mzero mplus</pre></div></div><div class="top"><p class="src"><a name="v:composOpFold" class="def">composOpFold</a> :: <a href="Data-Generics-Uniplate-Operations.html#t:Uniplate">Uniplate</a> a =&gt; b -&gt; (b -&gt; b -&gt; b) -&gt; (a -&gt; b) -&gt; a -&gt; b<a href="src/Data-Generics-Compos.html#composOpFold" class="link">Source</a></p><div class="doc"><p>Probably replace with <code><a href="Data-Generics-Uniplate-Operations.html#v:universe">universe</a></code>, perhaps <code><a href="Data-Generics-Uniplate-Operations.html#v:para">para</a></code>
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>