type-combinators-0.2.4.3: A collection of data types for type-level programming

CopyrightCopyright (C) 2015 Kyle Carter
LicenseBSD3
MaintainerKyle Carter <kylcarte@indiana.edu>
Stabilityexperimental
PortabilityRankNTypes
Safe HaskellNone
LanguageHaskell2010

Data.Type.Boolean

Description

A singleton-esque type for type-level Bool values.

Documentation

data Boolean :: Bool -> * where Source #

Constructors

False_ :: Boolean False 
True_ :: Boolean True 

Instances

TestEquality Bool Boolean Source # 

Methods

testEquality :: f a -> f b -> Maybe ((Boolean :~: a) b) #

Read1 Bool Boolean Source # 
Show1 Bool Boolean Source # 

Methods

showsPrec1 :: Int -> f a -> ShowS Source #

show1 :: f a -> String Source #

Ord1 Bool Boolean Source # 

Methods

compare1 :: f a -> f a -> Ordering Source #

(<#) :: f a -> f a -> Bool Source #

(>#) :: f a -> f a -> Bool Source #

(<=#) :: f a -> f a -> Bool Source #

(>=#) :: f a -> f a -> Bool Source #

Eq1 Bool Boolean Source # 

Methods

eq1 :: f a -> f a -> Bool Source #

neq1 :: f a -> f a -> Bool Source #

BoolEquality Bool Boolean Source # 

Methods

boolEquality :: f a -> f b -> Boolean ((Boolean == a) b) Source #

Known Bool Boolean False Source # 

Associated Types

type KnownC Boolean (False :: Boolean -> *) (a :: Boolean) :: Constraint Source #

Methods

known :: False a Source #

Known Bool Boolean True Source # 

Associated Types

type KnownC Boolean (True :: Boolean -> *) (a :: Boolean) :: Constraint Source #

Methods

known :: True a Source #

Eq (Boolean b) Source # 

Methods

(==) :: Boolean b -> Boolean b -> Bool #

(/=) :: Boolean b -> Boolean b -> Bool #

Ord (Boolean b) Source # 

Methods

compare :: Boolean b -> Boolean b -> Ordering #

(<) :: Boolean b -> Boolean b -> Bool #

(<=) :: Boolean b -> Boolean b -> Bool #

(>) :: Boolean b -> Boolean b -> Bool #

(>=) :: Boolean b -> Boolean b -> Bool #

max :: Boolean b -> Boolean b -> Boolean b #

min :: Boolean b -> Boolean b -> Boolean b #

Show (Boolean b) Source # 

Methods

showsPrec :: Int -> Boolean b -> ShowS #

show :: Boolean b -> String #

showList :: [Boolean b] -> ShowS #

type KnownC Bool Boolean False Source # 
type KnownC Bool Boolean True Source # 

if' :: Boolean b -> (b ~ True => a) -> (b ~ False => a) -> a Source #

(.?) :: (b ~ True => a) -> (b ~ False => a) -> Boolean b -> a infix 4 Source #

(.||) :: Boolean a -> Boolean b -> Boolean (a || b) infixr 2 Source #

(.&&) :: Boolean a -> Boolean b -> Boolean (a && b) infixr 3 Source #

(.^^) :: Boolean a -> Boolean b -> Boolean (a ^^ b) infixr 4 Source #

(==>) :: Boolean a -> Boolean b -> Boolean (a ==> b) infixr 1 Source #

(<==>) :: Boolean a -> Boolean b -> Boolean (a <==> b) infixr 1 Source #

class BoolEquality f where Source #

Minimal complete definition

boolEquality

Methods

boolEquality :: f a -> f b -> Boolean (a == b) Source #

Instances

BoolEquality Bool Boolean Source # 

Methods

boolEquality :: f a -> f b -> Boolean ((Boolean == a) b) Source #

BoolEquality N Nat Source # 

Methods

boolEquality :: f a -> f b -> Boolean ((Nat == a) b) Source #

BoolEquality k f => BoolEquality [k] (Prod k f) Source # 

Methods

boolEquality :: f a -> f b -> Boolean ((Prod k f == a) b) Source #

(.==) :: BoolEquality f => f a -> f b -> Boolean (a == b) infix 4 Source #