|
Data.TypeLevel.Bool | Portability | non-portable | Stability | experimental (MPTC, non-standarad instances) | Maintainer | alfonso.acosta@gmail.com |
|
|
|
|
|
Description |
Type-level Booleans.
|
|
Synopsis |
|
class BoolI b => Bool b | | toBool :: BoolI b => b -> Bool | | data False | | false :: False | | data True | | true :: True | | reifyBool :: Bool -> (forall b. Bool b => b -> r) -> r | | class (BoolI b1, BoolI b2) => Not b1 b2 | b1 -> b2, b2 -> b1 | | not :: Not b1 b2 => b1 -> b2 | | class (BoolI b1, BoolI b2, BoolI b3) => And b1 b2 b3 | b1 b2 -> b3 | | (&&) :: And b1 b2 b3 => b1 -> b2 -> b3 | | class (BoolI b1, BoolI b2, BoolI b3) => Or b1 b2 b3 | b1 b2 -> b3 | | (||) :: Or b1 b2 b3 => b1 -> b2 -> b3 | | class (BoolI b1, BoolI b2, BoolI b3) => Xor b1 b2 b3 | b1 b2 -> b3 | | xor :: Xor b1 b2 b3 => b1 -> b2 -> b3 | | class (BoolI b1, BoolI b2, BoolI b3) => Imp b1 b2 b3 | b1 b2 -> b3 | | imp :: Imp b1 b2 b3 => b1 -> b2 -> b3 | | class (BoolI b1, BoolI b2, BoolI b3) => Eq b1 b2 b3 | b1 b2 -> b3 | | eq :: Eq b1 b2 b3 => b1 -> b2 -> b3 |
|
|
|
Type-level boolean values
|
|
class BoolI b => Bool b | Source |
|
|
|
|
|
|
|
|
|
False value-level reflecting function
|
|
|
|
|
|
True value-level reflecting function
|
|
|
Reification function. In CPS style (best possible solution)
|
|
Type-level boolean operations
|
|
class (BoolI b1, BoolI b2) => Not b1 b2 | b1 -> b2, b2 -> b1 | Source |
|
Boolean negation type-level relation. Not b1 b2 establishes that
not b1 = b2
|
|
|
|
value-level reflection function for the Not type-level relation
|
|
class (BoolI b1, BoolI b2, BoolI b3) => And b1 b2 b3 | b1 b2 -> b3 | Source |
|
And type-level relation. And b1 b2 b3 establishes that
b1 && b2 = b3
|
|
|
|
value-level reflection function for the And type-level relation
|
|
class (BoolI b1, BoolI b2, BoolI b3) => Or b1 b2 b3 | b1 b2 -> b3 | Source |
|
Or type-level relation. Or b1 b2 b3 establishes that
b1 || b2 = b3
|
|
|
(||) :: Or b1 b2 b3 => b1 -> b2 -> b3 | Source |
|
value-level reflection function for the Or type-level relation
|
|
class (BoolI b1, BoolI b2, BoolI b3) => Xor b1 b2 b3 | b1 b2 -> b3 | Source |
|
Exclusive or type-level relation. Xor b1 b2 b3 establishes that
xor b1 b2 = b3
|
|
|
|
value-level reflection function for the Xor type-level relation
|
|
class (BoolI b1, BoolI b2, BoolI b3) => Imp b1 b2 b3 | b1 b2 -> b3 | Source |
|
Implication type-level relation. Imp b1 b2 b3 establishes that
b1 =>b2 = b3
|
|
|
|
value-level reflection function for the Imp type-level relation
|
|
class (BoolI b1, BoolI b2, BoolI b3) => Eq b1 b2 b3 | b1 b2 -> b3 | Source |
|
Boolean equality type-level relation
|
|
|
eq :: Eq b1 b2 b3 => b1 -> b2 -> b3 | Source |
|
value-level reflection function for the Eq type-level relation
|
|
Produced by Haddock version 2.6.1 |