<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Data.TypeLevel.Bool</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_Data-TypeLevel-Bool.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >type-level-0.2.4: Type-level programming library</TD ><TD CLASS="topbut" ><A HREF="src/Data-TypeLevel-Bool.html" >Source code</A ></TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Data.TypeLevel.Bool</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >non-portable</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >experimental (MPTC, non-standarad instances)</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >alfonso.acosta@gmail.com</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >Type-level boolean values </A ></DT ><DT ><A HREF="#2" >Type-level boolean operations </A ></DT ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >Type-level Booleans. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > BoolI b => <A HREF="#t%3ABool" >Bool</A > b </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AtoBool" >toBool</A > :: BoolI b => b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AFalse" >False</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Afalse" >false</A > :: <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ATrue" >True</A > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Atrue" >true</A > :: <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AreifyBool" >reifyBool</A > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A > -> (<SPAN CLASS="keyword" >forall</SPAN > b. <A HREF="Data-TypeLevel-Bool.html#t%3ABool" >Bool</A > b => b -> r) -> r</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > (BoolI b1, BoolI b2) => <A HREF="#t%3ANot" >Not</A > b1 b2 | b1 -> b2, b2 -> b1</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Anot" >not</A > :: <A HREF="Data-TypeLevel-Bool.html#t%3ANot" >Not</A > b1 b2 => b1 -> b2</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > (BoolI b1, BoolI b2, BoolI b3) => <A HREF="#t%3AAnd" >And</A > b1 b2 b3 | b1 b2 -> b3</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%26%26" >(&&)</A > :: <A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A > b1 b2 b3 => b1 -> b2 -> b3</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > (BoolI b1, BoolI b2, BoolI b3) => <A HREF="#t%3AOr" >Or</A > b1 b2 b3 | b1 b2 -> b3</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%7C%7C" >(||)</A > :: <A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A > b1 b2 b3 => b1 -> b2 -> b3</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > (BoolI b1, BoolI b2, BoolI b3) => <A HREF="#t%3AXor" >Xor</A > b1 b2 b3 | b1 b2 -> b3</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Axor" >xor</A > :: <A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > b1 b2 b3 => b1 -> b2 -> b3</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > (BoolI b1, BoolI b2, BoolI b3) => <A HREF="#t%3AImp" >Imp</A > b1 b2 b3 | b1 b2 -> b3</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aimp" >imp</A > :: <A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > b1 b2 b3 => b1 -> b2 -> b3</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > (BoolI b1, BoolI b2, BoolI b3) => <A HREF="#t%3AEq" >Eq</A > b1 b2 b3 | b1 b2 -> b3</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aeq" >eq</A > :: <A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > b1 b2 b3 => b1 -> b2 -> b3</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >Type-level boolean values </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >class</SPAN > BoolI b => <A NAME="t:Bool" ><A NAME="t%3ABool" ></A ></A ><B >Bool</B > b </TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#Bool" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Type-level Booleans </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Bool')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Bool" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" >BoolI b => <A HREF="Data-TypeLevel-Bool.html#t%3ABool" >Bool</A > b</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:toBool" ><A NAME="v%3AtoBool" ></A ></A ><B >toBool</B > :: BoolI b => b -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A ></TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#toBool" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:False" ><A NAME="t%3AFalse" ></A ></A ><B >False</B > </TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#False" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >False type-level value </TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:False')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:False" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable" >Typeable</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >BoolI <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3ANot" >Not</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3ANot" >Not</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >IsZero <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD9" >D9</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >IsZero <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD8" >D8</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >IsZero <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD7" >D7</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >IsZero <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD6" >D6</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >IsZero <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD5" >D5</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >IsZero <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD4" >D4</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >IsZero <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD3" >D3</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >IsZero <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD2" >D2</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >IsZero <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD1" >D1</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >(<A HREF="Data-TypeLevel-Num-Sets.html#t%3ANat" >Nat</A > x, <A HREF="Data-TypeLevel-Num-Sets.html#t%3ANat" >Nat</A > y, <A HREF="Data-TypeLevel-Num-Ops.html#t%3ASub" >Sub</A > x y x', <A HREF="Data-TypeLevel-Num-Ops.html#t%3AGCD" >GCD</A > x' y gcd) => GCD' x y <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Num-Ops.html#t%3AGT" >GT</A > gcd</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Num-Sets.html#t%3ANat" >Nat</A > x => GCD' x x <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Num-Ops.html#t%3AEQ" >EQ</A > x</TD ></TR ><TR ><TD CLASS="decl" >(<A HREF="Data-TypeLevel-Num-Sets.html#t%3ANat" >Nat</A > x, <A HREF="Data-TypeLevel-Num-Sets.html#t%3ANat" >Nat</A > y, <A HREF="Data-TypeLevel-Num-Ops.html#t%3AGCD" >GCD</A > y x gcd) => GCD' x y <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Num-Ops.html#t%3ALT" >LT</A > gcd</TD ></TR ><TR ><TD CLASS="decl" >(<A HREF="Data-TypeLevel-Num-Sets.html#t%3APos" >Pos</A > b, b <A HREF="Data-TypeLevel-Num-Ops.html#t%3A%3A%3E%3D%3A" >:>=:</A > <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD2" >D2</A >, <A HREF="Data-TypeLevel-Num-Sets.html#t%3APos" >Pos</A > x) => LogBaseF' b x <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD0" >D0</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Num-Ops.html#t%3ALT" >LT</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Num-Ops.html#t%3ASucc" >Succ</A > xi yi => Succ' xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD9" >D9</A > yi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD0" >D0</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >Succ' xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD8" >D8</A > xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD9" >D9</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >Succ' xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD7" >D7</A > xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD8" >D8</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >Succ' xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD6" >D6</A > xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD7" >D7</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >Succ' xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD5" >D5</A > xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD6" >D6</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >Succ' xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD4" >D4</A > xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD5" >D5</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >Succ' xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD3" >D3</A > xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD4" >D4</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >Succ' xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD2" >D2</A > xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD3" >D3</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >Succ' xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD1" >D1</A > xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD2" >D2</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >Succ' xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD0" >D0</A > xi <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD1" >D1</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Num-Sets.html#t%3APos" >Pos</A > x => IsZero (<A HREF="Data-TypeLevel-Num-Reps.html#t%3A%3A%2A" >:*</A > x d) <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:false" ><A NAME="v%3Afalse" ></A ></A ><B >false</B > :: <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#false" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >False value-level reflecting function </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:True" ><A NAME="t%3ATrue" ></A ></A ><B >True</B > </TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#True" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >True type-level value </TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:True')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:True" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Text-Show.html#t%3AShow" >Show</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Typeable.html#t%3ATypeable" >Typeable</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" >BoolI <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3ANot" >Not</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3ANot" >Not</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" >IsZero <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD0" >D0</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Num-Sets.html#t%3ANat" >Nat</A > x => GCD' x <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD0" >D0</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > cmp <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD0" >D0</A ></TD ></TR ><TR ><TD CLASS="decl" >(<A HREF="Data-TypeLevel-Num-Sets.html#t%3APos" >Pos</A > b, b <A HREF="Data-TypeLevel-Num-Ops.html#t%3A%3A%3E%3D%3A" >:>=:</A > <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD2" >D2</A >) => LogBaseF' b b <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD1" >D1</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Num-Ops.html#t%3AEQ" >EQ</A ></TD ></TR ><TR ><TD CLASS="decl" >Failure (PredecessorOfZeroError x) => Succ' (x, x) (x, x) <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD0" >D0</A > <A HREF="Data-TypeLevel-Num-Reps.html#t%3AD0" >D0</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:true" ><A NAME="v%3Atrue" ></A ></A ><B >true</B > :: <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#true" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >True value-level reflecting function </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:reifyBool" ><A NAME="v%3AreifyBool" ></A ></A ><B >reifyBool</B > :: <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Bool.html#t%3ABool" >Bool</A > -> (<SPAN CLASS="keyword" >forall</SPAN > b. <A HREF="Data-TypeLevel-Bool.html#t%3ABool" >Bool</A > b => b -> r) -> r</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#reifyBool" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Reification function. In CPS style (best possible solution) </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" ><A NAME="2" >Type-level boolean operations </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >class</SPAN > (BoolI b1, BoolI b2) => <A NAME="t:Not" ><A NAME="t%3ANot" ></A ></A ><B >Not</B > b1 b2 | b1 -> b2, b2 -> b1</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#Not" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Boolean negation type-level relation. <TT >Not b1 b2</TT > establishes that <TT >not b1 = b2</TT > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Not')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Not" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3ANot" >Not</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3ANot" >Not</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:not" ><A NAME="v%3Anot" ></A ></A ><B >not</B > :: <A HREF="Data-TypeLevel-Bool.html#t%3ANot" >Not</A > b1 b2 => b1 -> b2</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#not" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >value-level reflection function for the <TT ><A HREF="Data-TypeLevel-Bool.html#t%3ANot" >Not</A ></TT > type-level relation </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >class</SPAN > (BoolI b1, BoolI b2, BoolI b3) => <A NAME="t:And" ><A NAME="t%3AAnd" ></A ></A ><B >And</B > b1 b2 b3 | b1 b2 -> b3</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#And" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" ><TT ><A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A ></TT > type-level relation. <TT >And b1 b2 b3</TT > establishes that <TT >b1 && b2 = b3</TT > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:And')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:And" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:&&" ><A NAME="v%3A%26%26" ></A ></A ><B >(&&)</B > :: <A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A > b1 b2 b3 => b1 -> b2 -> b3</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#%26%26" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >value-level reflection function for the <TT ><A HREF="Data-TypeLevel-Bool.html#t%3AAnd" >And</A ></TT > type-level relation </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >class</SPAN > (BoolI b1, BoolI b2, BoolI b3) => <A NAME="t:Or" ><A NAME="t%3AOr" ></A ></A ><B >Or</B > b1 b2 b3 | b1 b2 -> b3</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#Or" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Or type-level relation. <TT >Or b1 b2 b3</TT > establishes that <TT >b1 || b2 = b3</TT > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Or')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Or" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:||" ><A NAME="v%3A%7C%7C" ></A ></A ><B >(||)</B > :: <A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A > b1 b2 b3 => b1 -> b2 -> b3</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#%7C%7C" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >value-level reflection function for the <TT ><A HREF="Data-TypeLevel-Bool.html#t%3AOr" >Or</A ></TT > type-level relation </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >class</SPAN > (BoolI b1, BoolI b2, BoolI b3) => <A NAME="t:Xor" ><A NAME="t%3AXor" ></A ></A ><B >Xor</B > b1 b2 b3 | b1 b2 -> b3</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#Xor" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Exclusive or type-level relation. <TT >Xor b1 b2 b3</TT > establishes that <TT >xor b1 b2 = b3</TT > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Xor')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Xor" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:xor" ><A NAME="v%3Axor" ></A ></A ><B >xor</B > :: <A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A > b1 b2 b3 => b1 -> b2 -> b3</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#xor" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >value-level reflection function for the <TT ><A HREF="Data-TypeLevel-Bool.html#t%3AXor" >Xor</A ></TT > type-level relation </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >class</SPAN > (BoolI b1, BoolI b2, BoolI b3) => <A NAME="t:Imp" ><A NAME="t%3AImp" ></A ></A ><B >Imp</B > b1 b2 b3 | b1 b2 -> b3</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#Imp" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Implication type-level relation. <TT >Imp b1 b2 b3</TT > establishes that <TT >b1 =>b2 = b3</TT > </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Imp')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Imp" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:imp" ><A NAME="v%3Aimp" ></A ></A ><B >imp</B > :: <A HREF="Data-TypeLevel-Bool.html#t%3AImp" >Imp</A > b1 b2 b3 => b1 -> b2 -> b3</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#imp" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >value-level reflection function for the Imp type-level relation </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><SPAN CLASS="keyword" >class</SPAN > (BoolI b1, BoolI b2, BoolI b3) => <A NAME="t:Eq" ><A NAME="t%3AEq" ></A ></A ><B >Eq</B > b1 b2 b3 | b1 b2 -> b3</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#Eq" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Boolean equality type-level relation </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Eq')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Eq" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A > <A HREF="Data-TypeLevel-Bool.html#t%3AFalse" >False</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A > <A HREF="Data-TypeLevel-Bool.html#t%3ATrue" >True</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:eq" ><A NAME="v%3Aeq" ></A ></A ><B >eq</B > :: <A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A > b1 b2 b3 => b1 -> b2 -> b3</TD ><TD CLASS="declbut" ><A HREF="src/Data-TypeLevel-Bool.html#eq" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >value-level reflection function for the <TT ><A HREF="Data-TypeLevel-Bool.html#t%3AEq" >Eq</A ></TT > type-level relation </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >