<!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.Biplate</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-Biplate.html");}; //]]> </script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-Generics-Biplate.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.Biplate</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The Class </a></li><li><a href="#g:2">The Operations </a><ul><li><a href="#g:3">Queries </a></li><li><a href="#g:4">Transformations </a></li><li><a href="#g:5">Others </a></li></ul></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p><em>RECOMMENDATION</em>: Use <a href="Data-Generics-Uniplate-Operations.html">Data.Generics.Uniplate.Operations</a> instead. </p><p>Requires multi-parameter type classes, so is no longer Haskell 98. These operations are easier to use and construct than the equivalent <a href="Data-Generics-UniplateStrOn.html">Data.Generics.UniplateStrOn</a> methods, but perform the same operation. </p><p>It is recommended that instead of importing this module, you import one of the following modules, to construct instances: </p><ul><li> <a href="Data-Generics-PlateDirect.html">Data.Generics.PlateDirect</a> - does not require overlapping instances, highest performance but requires <em>O(n^2)</em> instances in the worst case. </li><li> <a href="Data-Generics-PlateTypeable.html">Data.Generics.PlateTypeable</a> - requires the <a href="Data-Typeable.html">Data.Typeable</a> class for all data structures. </li><li> <a href="Data-Generics-PlateData.html">Data.Generics.PlateData</a> - requires <a href="Data-Generics.html">Data.Generics</a> and the <code>Data</code> class, which is only available on GHC, but automatically infers instances. </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">module <a href="Data-Generics-UniplateStrOn.html">Data.Generics.UniplateStrOn</a></li><li class="src short"><span class="keyword">class</span> <a href="Data-Generics-UniplateStr.html#t:Uniplate">Uniplate</a> to => <a href="#t:Biplate">Biplate</a> from to <span class="keyword">where</span><ul class="subs"><li><a href="#v:biplate">biplate</a> :: <a href="Data-Generics-UniplateStrOn.html#t:BiplateType">BiplateType</a> from to</li></ul></li><li class="src short"><a href="#v:biplateList">biplateList</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => from -> ([to], [to] -> from)</li><li class="src short"><a href="#v:universeBi">universeBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => from -> [to]</li><li class="src short"><a href="#v:childrenBi">childrenBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => from -> [to]</li><li class="src short"><a href="#v:transformBi">transformBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => (to -> to) -> from -> from</li><li class="src short"><a href="#v:transformBiM">transformBiM</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to) => (to -> m to) -> from -> m from</li><li class="src short"><a href="#v:rewriteBi">rewriteBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => (to -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> to) -> from -> from</li><li class="src short"><a href="#v:rewriteBiM">rewriteBiM</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to) => (to -> m (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> to)) -> from -> m from</li><li class="src short"><a href="#v:descendBi">descendBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => (to -> to) -> from -> from</li><li class="src short"><a href="#v:descendBiM">descendBiM</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to) => (to -> m to) -> from -> m from</li><li class="src short"><a href="#v:contextsBi">contextsBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => from -> [(to, to -> from)]</li><li class="src short"><a href="#v:holesBi">holesBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => from -> [(to, to -> from)]</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src">module <a href="Data-Generics-UniplateStrOn.html">Data.Generics.UniplateStrOn</a></p></div><h1 id="g:1">The Class </h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="Data-Generics-UniplateStr.html#t:Uniplate">Uniplate</a> to => <a name="t:Biplate" class="def">Biplate</a> from to <span class="keyword">where</span><a href="src/Data-Generics-Biplate.html#Biplate" class="link">Source</a></p><div class="doc"><p>Children are defined as the top-most items of type to <em>starting at the root</em>. </p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:biplate" class="def">biplate</a> :: <a href="Data-Generics-UniplateStrOn.html#t:BiplateType">BiplateType</a> from to<a href="src/Data-Generics-Biplate.html#biplate" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:Biplate" class="caption collapser" onclick="toggleSection('i:Biplate')">Instances</p><div id="section.i:Biplate" class="show"><table><tr><td class="src">(<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> b, <a href="Data-Generics-UniplateStr.html#t:Uniplate">Uniplate</a> b, <a href="Data-Generics-PlateTypeable.html#t:PlateAll">PlateAll</a> a b) => <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> a b</td><td class="doc empty"> </td></tr><tr><td class="src">(<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Data.html#t:Data">Data</a> b, <a href="Data-Generics-UniplateStr.html#t:Uniplate">Uniplate</a> b, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> a, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Typeable.html#t:Typeable">Typeable</a> b) => <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> a b</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:biplateList" class="def">biplateList</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => from -> ([to], [to] -> from)<a href="src/Data-Generics-Biplate.html#biplateList" class="link">Source</a></p><div class="doc"><p>Compatibility method, for direct users of the <code><a href="Data-Generics-Biplate.html#v:biplate">biplate</a></code> function </p></div></div><h1 id="g:2">The Operations </h1><h2 id="g:3">Queries </h2><div class="top"><p class="src"><a name="v:universeBi" class="def">universeBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => from -> [to]<a href="src/Data-Generics-Biplate.html#universeBi" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:childrenBi" class="def">childrenBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => from -> [to]<a href="src/Data-Generics-Biplate.html#childrenBi" class="link">Source</a></p></div><h2 id="g:4">Transformations </h2><div class="top"><p class="src"><a name="v:transformBi" class="def">transformBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => (to -> to) -> from -> from<a href="src/Data-Generics-Biplate.html#transformBi" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:transformBiM" class="def">transformBiM</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to) => (to -> m to) -> from -> m from<a href="src/Data-Generics-Biplate.html#transformBiM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:rewriteBi" class="def">rewriteBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => (to -> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> to) -> from -> from<a href="src/Data-Generics-Biplate.html#rewriteBi" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:rewriteBiM" class="def">rewriteBiM</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to) => (to -> m (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> to)) -> from -> m from<a href="src/Data-Generics-Biplate.html#rewriteBiM" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:descendBi" class="def">descendBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => (to -> to) -> from -> from<a href="src/Data-Generics-Biplate.html#descendBi" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:descendBiM" class="def">descendBiM</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to) => (to -> m to) -> from -> m from<a href="src/Data-Generics-Biplate.html#descendBiM" class="link">Source</a></p></div><h2 id="g:5">Others </h2><div class="top"><p class="src"><a name="v:contextsBi" class="def">contextsBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => from -> [(to, to -> from)]<a href="src/Data-Generics-Biplate.html#contextsBi" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:holesBi" class="def">holesBi</a> :: <a href="Data-Generics-Biplate.html#t:Biplate">Biplate</a> from to => from -> [(to, to -> from)]<a href="src/Data-Generics-Biplate.html#holesBi" class="link">Source</a></p></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>