Module

Type.Data.Boolean

#Boolean

kind Boolean

#True

data True :: Boolean

Instances

#False

data False :: Boolean

Instances

#BProxy

data BProxy (bool :: Boolean)

Value proxy for Boolean types

Constructors

#IsBoolean

class IsBoolean (bool :: Boolean)  where

Class for reflecting a type level Boolean at the value level

Members

Instances

#reifyBoolean

reifyBoolean :: forall r. Boolean -> (forall o. IsBoolean o => BProxy o -> r) -> r

Use a value level Boolean as a type-level Boolean

#And

class And (lhs :: Boolean) (rhs :: Boolean) (output :: Boolean) | lhs rhs -> output

And two Boolean types together

Instances

#and

and :: forall l r o. And l r o => BProxy l -> BProxy r -> BProxy o

#Or

class Or (lhs :: Boolean) (rhs :: Boolean) (output :: Boolean) | lhs rhs -> output

Or two Boolean types together

Instances

#or

or :: forall l r o. Or l r o => BProxy l -> BProxy r -> BProxy o

#Not

class Not (bool :: Boolean) (output :: Boolean) | bool -> output

Not a Boolean

Instances

#not

not :: forall i o. Not i o => BProxy i -> BProxy o

#If

class If (bool :: Boolean) (onTrue :: Type) (onFalse :: Type) (output :: Type) | bool onTrue onFalse -> output

If - dispatch based on a boolean

Instances

#if_

if_ :: forall b t e o. If b t e o => BProxy b -> Proxy t -> Proxy e -> Proxy o