Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > a8455cb5c106f1aee89b7124c343d400 > files > 10

ghc-Boolean-devel-0.0.1-7.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.Boolean</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-Boolean.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Data-Boolean.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">Boolean-0.0.1: Generalized booleans</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>conal@conal.net</td></tr></table><p class="caption">Data.Boolean</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Some classes for generalized boolean operations.
</p><p>In this design, for if-then-else, equality and inequality tests, the
 boolean type depends functionally on the value type.  This dependency
 allows the boolean type to be inferred in a conditional expression.
</p><p>I also tried using a unary type constructor class.  The class doesn't work
 for regular booleans, so generality is lost.  Also, we'd probably have
 to wire class constraints in like: <code>(==*) :: Eq a =&gt; f Bool -&gt; f a -&gt; f
 a -&gt; f a</code>, which disallows situations needing additional constraints,
 e.g., Show.
</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">class</span>  <a href="#t:Boolean">Boolean</a> b  <span class="keyword">where</span><ul class="subs"><li><a href="#v:true">true</a> :: b</li><li><a href="#v:false">false</a> :: b</li><li><a href="#v:notB">notB</a> :: b -&gt; b</li><li><a href="#v:-38--38--42-">(&amp;&amp;*)</a> :: b -&gt; b -&gt; b</li><li><a href="#v:-124--124--42-">(||*)</a> :: b -&gt; b -&gt; b</li></ul></li><li class="src short"><span class="keyword">class</span> <a href="Data-Boolean.html#t:Boolean">Boolean</a> bool =&gt; <a href="#t:IfB">IfB</a> bool a | a -&gt; bool <span class="keyword">where</span><ul class="subs"><li><a href="#v:ifB">ifB</a> :: bool -&gt; a -&gt; a -&gt; a</li></ul></li><li class="src short"><a href="#v:boolean">boolean</a> :: <a href="Data-Boolean.html#t:IfB">IfB</a> bool a =&gt; a -&gt; a -&gt; bool -&gt; a</li><li class="src short"><a href="#v:cond">cond</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Data-Boolean.html#t:IfB">IfB</a> bool a) =&gt; f bool -&gt; f a -&gt; f a -&gt; f a</li><li class="src short"><a href="#v:crop">crop</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Monoid.html#t:Monoid">Monoid</a> (f a), <a href="Data-Boolean.html#t:IfB">IfB</a> bool a) =&gt; f bool -&gt; f a -&gt; f a</li><li class="src short"><span class="keyword">class</span> <a href="Data-Boolean.html#t:Boolean">Boolean</a> bool =&gt; <a href="#t:EqB">EqB</a> bool a | a -&gt; bool <span class="keyword">where</span><ul class="subs"><li><a href="#v:-61--61--42-">(==*)</a> :: a -&gt; a -&gt; bool</li><li><a href="#v:-47--61--42-">(/=*)</a> :: a -&gt; a -&gt; bool</li></ul></li><li class="src short"><span class="keyword">class</span> <a href="Data-Boolean.html#t:Boolean">Boolean</a> bool =&gt; <a href="#t:OrdB">OrdB</a> bool a | a -&gt; bool <span class="keyword">where</span><ul class="subs"><li><a href="#v:-60--42-">(&lt;*)</a> :: a -&gt; a -&gt; bool</li><li><a href="#v:-62--61--42-">(&gt;=*)</a> :: a -&gt; a -&gt; bool</li><li><a href="#v:-62--42-">(&gt;*)</a> :: a -&gt; a -&gt; bool</li><li><a href="#v:-60--61--42-">(&lt;=*)</a> :: a -&gt; a -&gt; bool</li></ul></li><li class="src short"><a href="#v:minB">minB</a> :: (<a href="Data-Boolean.html#t:IfB">IfB</a> bool a, <a href="Data-Boolean.html#t:OrdB">OrdB</a> bool a) =&gt; a -&gt; a -&gt; a</li><li class="src short"><a href="#v:maxB">maxB</a> :: (<a href="Data-Boolean.html#t:IfB">IfB</a> bool a, <a href="Data-Boolean.html#t:OrdB">OrdB</a> bool a) =&gt; a -&gt; a -&gt; a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Boolean" class="def">Boolean</a> b  <span class="keyword">where</span><a href="src/Data-Boolean.html#Boolean" class="link">Source</a></p><div class="doc"><p>Generalized boolean class
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:true" class="def">true</a> :: b<a href="src/Data-Boolean.html#true" class="link">Source</a></p><p class="src"><a name="v:false" class="def">false</a> :: b<a href="src/Data-Boolean.html#false" class="link">Source</a></p><p class="src"><a name="v:notB" class="def">notB</a> :: b -&gt; b<a href="src/Data-Boolean.html#notB" class="link">Source</a></p><p class="src"><a name="v:-38--38--42-" class="def">(&amp;&amp;*)</a> :: b -&gt; b -&gt; b<a href="src/Data-Boolean.html#%26%26%2A" class="link">Source</a></p><p class="src"><a name="v:-124--124--42-" class="def">(||*)</a> :: b -&gt; b -&gt; b<a href="src/Data-Boolean.html#%7C%7C%2A" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:Boolean" class="caption collapser" onclick="toggleSection('i:Boolean')">Instances</p><div id="section.i:Boolean" class="show"><table><tr><td class="src"><a href="Data-Boolean.html#t:Boolean">Boolean</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Data-Boolean.html#t:Boolean">Boolean</a> bool =&gt; <a href="Data-Boolean.html#t:Boolean">Boolean</a> (z -&gt; bool)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Data-Boolean.html#t:Boolean">Boolean</a> bool =&gt; <a name="t:IfB" class="def">IfB</a> bool a | a -&gt; bool <span class="keyword">where</span><a href="src/Data-Boolean.html#IfB" class="link">Source</a></p><div class="doc"><p>Types with conditionals
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:ifB" class="def">ifB</a> :: bool -&gt; a -&gt; a -&gt; a<a href="src/Data-Boolean.html#ifB" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:IfB" class="caption collapser" onclick="toggleSection('i:IfB')">Instances</p><div id="section.i:IfB" class="show"><table><tr><td class="src"><a href="Data-Boolean.html#t:IfB">IfB</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Float">Float</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Data-Boolean.html#t:IfB">IfB</a> bool p, <a href="Data-Boolean.html#t:IfB">IfB</a> bool q) =&gt; <a href="Data-Boolean.html#t:IfB">IfB</a> bool (p, q)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Data-Boolean.html#t:IfB">IfB</a> bool p, <a href="Data-Boolean.html#t:IfB">IfB</a> bool q, <a href="Data-Boolean.html#t:IfB">IfB</a> bool r) =&gt; <a href="Data-Boolean.html#t:IfB">IfB</a> bool (p, q, r)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Data-Boolean.html#t:IfB">IfB</a> bool p, <a href="Data-Boolean.html#t:IfB">IfB</a> bool q, <a href="Data-Boolean.html#t:IfB">IfB</a> bool r, <a href="Data-Boolean.html#t:IfB">IfB</a> bool s) =&gt; <a href="Data-Boolean.html#t:IfB">IfB</a> bool (p, q, r, s)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Data-Boolean.html#t:IfB">IfB</a> bool a =&gt; <a href="Data-Boolean.html#t:IfB">IfB</a> (z -&gt; bool) (z -&gt; a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:boolean" class="def">boolean</a> :: <a href="Data-Boolean.html#t:IfB">IfB</a> bool a =&gt; a -&gt; a -&gt; bool -&gt; a<a href="src/Data-Boolean.html#boolean" class="link">Source</a></p><div class="doc"><p>Expression-lifted conditional with condition last
</p></div></div><div class="top"><p class="src"><a name="v:cond" class="def">cond</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="Data-Boolean.html#t:IfB">IfB</a> bool a) =&gt; f bool -&gt; f a -&gt; f a -&gt; f a<a href="src/Data-Boolean.html#cond" class="link">Source</a></p><div class="doc"><p>Point-wise conditional
</p></div></div><div class="top"><p class="src"><a name="v:crop" class="def">crop</a> :: (<a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Control-Applicative.html#t:Applicative">Applicative</a> f, <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Monoid.html#t:Monoid">Monoid</a> (f a), <a href="Data-Boolean.html#t:IfB">IfB</a> bool a) =&gt; f bool -&gt; f a -&gt; f a<a href="src/Data-Boolean.html#crop" class="link">Source</a></p><div class="doc"><p>Crop a function, filling in <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Monoid.html#v:mempty">mempty</a></code> where the test yeis false.
</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Data-Boolean.html#t:Boolean">Boolean</a> bool =&gt; <a name="t:EqB" class="def">EqB</a> bool a | a -&gt; bool <span class="keyword">where</span><a href="src/Data-Boolean.html#EqB" class="link">Source</a></p><div class="doc"><p>Types with equality.  Minimum definition: '(==*)'.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:-61--61--42-" class="def">(==*)</a> :: a -&gt; a -&gt; bool<a href="src/Data-Boolean.html#%3D%3D%2A" class="link">Source</a></p><p class="src"><a name="v:-47--61--42-" class="def">(/=*)</a> :: a -&gt; a -&gt; bool<a href="src/Data-Boolean.html#%2F%3D%2A" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:EqB" class="caption collapser" onclick="toggleSection('i:EqB')">Instances</p><div id="section.i:EqB" class="show"><table><tr><td class="src"><a href="Data-Boolean.html#t:EqB">EqB</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Float">Float</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Data-Boolean.html#t:EqB">EqB</a> bool a =&gt; <a href="Data-Boolean.html#t:EqB">EqB</a> (z -&gt; bool) (z -&gt; a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a href="Data-Boolean.html#t:Boolean">Boolean</a> bool =&gt; <a name="t:OrdB" class="def">OrdB</a> bool a | a -&gt; bool <span class="keyword">where</span><a href="src/Data-Boolean.html#OrdB" class="link">Source</a></p><div class="doc"><p>Types with inequality.  Minimum definition: '(&lt;*)'.
</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:-60--42-" class="def">(&lt;*)</a> :: a -&gt; a -&gt; bool<a href="src/Data-Boolean.html#%3C%2A" class="link">Source</a></p><p class="src"><a name="v:-62--61--42-" class="def">(&gt;=*)</a> :: a -&gt; a -&gt; bool<a href="src/Data-Boolean.html#%3E%3D%2A" class="link">Source</a></p><p class="src"><a name="v:-62--42-" class="def">(&gt;*)</a> :: a -&gt; a -&gt; bool<a href="src/Data-Boolean.html#%3E%2A" class="link">Source</a></p><p class="src"><a name="v:-60--61--42-" class="def">(&lt;=*)</a> :: a -&gt; a -&gt; bool<a href="src/Data-Boolean.html#%3C%3D%2A" class="link">Source</a></p></div><div class="subs instances"><p id="control.i:OrdB" class="caption collapser" onclick="toggleSection('i:OrdB')">Instances</p><div id="section.i:OrdB" class="show"><table><tr><td class="src"><a href="Data-Boolean.html#t:OrdB">OrdB</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Float">Float</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Data-Boolean.html#t:OrdB">OrdB</a> bool a =&gt; <a href="Data-Boolean.html#t:OrdB">OrdB</a> (z -&gt; bool) (z -&gt; a)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:minB" class="def">minB</a> :: (<a href="Data-Boolean.html#t:IfB">IfB</a> bool a, <a href="Data-Boolean.html#t:OrdB">OrdB</a> bool a) =&gt; a -&gt; a -&gt; a<a href="src/Data-Boolean.html#minB" class="link">Source</a></p><div class="doc"><p>Variant of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#v:min">min</a></code> using <code><a href="Data-Boolean.html#v:ifB">ifB</a></code> and '(&lt;=*)'
</p></div></div><div class="top"><p class="src"><a name="v:maxB" class="def">maxB</a> :: (<a href="Data-Boolean.html#t:IfB">IfB</a> bool a, <a href="Data-Boolean.html#t:OrdB">OrdB</a> bool a) =&gt; a -&gt; a -&gt; a<a href="src/Data-Boolean.html#maxB" class="link">Source</a></p><div class="doc"><p>Variant of <code><a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Ord.html#v:max">max</a></code> using <code><a href="Data-Boolean.html#v:ifB">ifB</a></code> and '(&gt;=*)'
</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>