| Copyright | (C) 2013-2014 Richard Eisenberg Jan Stolarek |
|---|---|
| License | BSD-style (see LICENSE) |
| Maintainer | Ryan Scott |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Data.Bool.Singletons
Description
Defines functions and datatypes relating to the singleton for Bool,
including singled versions of all the definitions in Data.Bool.
Because many of these definitions are produced by Template Haskell,
it is not possible to create proper Haddock documentation. Please look
up the corresponding operation in Data.Bool. Also, please excuse
the apparent repeated variable names. This is due to an interaction
between Template Haskell and Haddock.
Synopsis
- type family Sing :: k -> Type
- data SBool :: Bool -> Type where
- type family If (cond :: Bool) (tru :: k) (fls :: k) :: k where ...
- sIf :: Sing a -> Sing b -> Sing c -> Sing (If a b c)
- type family Not (a :: Bool) = (res :: Bool) | res -> a where ...
- sNot :: Sing a -> Sing (Not a)
- type family (a :: Bool) && (b :: Bool) :: Bool where ...
- type family (a :: Bool) || (b :: Bool) :: Bool where ...
- (%&&) :: Sing a -> Sing b -> Sing (a && b)
- (%||) :: Sing a -> Sing b -> Sing (a || b)
- bool_ :: a -> a -> Bool -> a
- type family Bool_ (a :: a) (a :: a) (a :: Bool) :: a where ...
- sBool_ :: forall a (t :: a) (t :: a) (t :: Bool). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply Bool_Sym0 t) t) t :: a)
- type family Otherwise :: Bool where ...
- sOtherwise :: Sing (OtherwiseSym0 :: Bool)
- type family TrueSym0 :: Bool where ...
- type family FalseSym0 :: Bool where ...
- data IfSym0 :: (~>) Bool ((~>) k ((~>) k k))
- data IfSym1 (a6989586621679141394 :: Bool) :: (~>) k ((~>) k k)
- data IfSym2 (a6989586621679141394 :: Bool) (a6989586621679141395 :: k) :: (~>) k k
- type family IfSym3 (a6989586621679141394 :: Bool) (a6989586621679141395 :: k) (a6989586621679141396 :: k) :: k where ...
- data NotSym0 :: (~>) Bool Bool
- type family NotSym1 (a6989586621679141194 :: Bool) :: Bool where ...
- data (&&@#@$) :: (~>) Bool ((~>) Bool Bool)
- data (&&@#@$$) (a6989586621679140549 :: Bool) :: (~>) Bool Bool
- type family (a6989586621679140549 :: Bool) &&@#@$$$ (a6989586621679140550 :: Bool) :: Bool where ...
- data (||@#@$) :: (~>) Bool ((~>) Bool Bool)
- data (||@#@$$) (a6989586621679140880 :: Bool) :: (~>) Bool Bool
- type family (a6989586621679140880 :: Bool) ||@#@$$$ (a6989586621679140881 :: Bool) :: Bool where ...
- data Bool_Sym0 :: (~>) a ((~>) a ((~>) Bool a))
- data Bool_Sym1 (a6989586621679139245 :: a) :: (~>) a ((~>) Bool a)
- data Bool_Sym2 (a6989586621679139245 :: a) (a6989586621679139246 :: a) :: (~>) Bool a
- type family Bool_Sym3 (a6989586621679139245 :: a) (a6989586621679139246 :: a) (a6989586621679139247 :: Bool) :: a where ...
- type family OtherwiseSym0 :: Bool where ...
The Bool singleton
type family Sing :: k -> Type #
Instances
data SBool :: Bool -> Type where Source #
Instances
| TestCoercion SBool Source # | |
Defined in Data.Singletons.Base.Instances | |
| TestEquality SBool Source # | |
Defined in Data.Singletons.Base.Instances | |
| Show (SBool z) Source # | |
Conditionals
type family If (cond :: Bool) (tru :: k) (fls :: k) :: k where ... #
Type-level If. If True a b ==> a; If False a b ==> b
Singletons from Data.Bool
type family Not (a :: Bool) = (res :: Bool) | res -> a where ... #
Type-level "not". An injective type family since 4.10.0.0.
Since: base-4.7.0.0
The following are derived from the function bool in Data.Bool. The extra
underscore is to avoid name clashes with the type Bool.
sBool_ :: forall a (t :: a) (t :: a) (t :: Bool). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply Bool_Sym0 t) t) t :: a) Source #
sOtherwise :: Sing (OtherwiseSym0 :: Bool) Source #
Defunctionalization symbols
data IfSym0 :: (~>) Bool ((~>) k ((~>) k k)) Source #
Instances
| SingI (IfSym0 :: TyFun Bool (k ~> (k ~> k)) -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings (IfSym0 :: TyFun Bool (k ~> (k ~> k)) -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply (IfSym0 :: TyFun Bool (k ~> (k ~> k)) -> Type) (a6989586621679141394 :: Bool) Source # | |
data IfSym1 (a6989586621679141394 :: Bool) :: (~>) k ((~>) k k) Source #
Instances
| SingI1 (IfSym1 :: Bool -> TyFun k (k ~> k) -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SingI c => SingI (IfSym1 c :: TyFun k (k ~> k) -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings (IfSym1 a6989586621679141394 :: TyFun k (k ~> k) -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply (IfSym1 a6989586621679141394 :: TyFun k (k ~> k) -> Type) (a6989586621679141395 :: k) Source # | |
Defined in Data.Bool.Singletons | |
data IfSym2 (a6989586621679141394 :: Bool) (a6989586621679141395 :: k) :: (~>) k k Source #
Instances
| SingI2 (IfSym2 :: Bool -> k2 -> TyFun k2 k2 -> Type) Source # | |
| SingI c => SingI1 (IfSym2 c :: k1 -> TyFun k1 k1 -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| (SingI c, SingI t) => SingI (IfSym2 c t :: TyFun k k -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings (IfSym2 a6989586621679141394 a6989586621679141395 :: TyFun k k -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply (IfSym2 a6989586621679141394 a6989586621679141395 :: TyFun k k -> Type) (a6989586621679141396 :: k) Source # | |
Defined in Data.Bool.Singletons | |
type family IfSym3 (a6989586621679141394 :: Bool) (a6989586621679141395 :: k) (a6989586621679141396 :: k) :: k where ... Source #
data NotSym0 :: (~>) Bool Bool Source #
Instances
| SingI NotSym0 Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings NotSym0 Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply NotSym0 (a6989586621679141194 :: Bool) Source # | |
Defined in Data.Bool.Singletons | |
data (&&@#@$) :: (~>) Bool ((~>) Bool Bool) infixr 3 Source #
Instances
| SingI (&&@#@$) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings (&&@#@$) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply (&&@#@$) (a6989586621679140549 :: Bool) Source # | |
Defined in Data.Bool.Singletons | |
data (&&@#@$$) (a6989586621679140549 :: Bool) :: (~>) Bool Bool infixr 3 Source #
Instances
| SingI x => SingI ((&&@#@$$) x :: TyFun Bool Bool -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings ((&&@#@$$) a6989586621679140549 :: TyFun Bool Bool -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply ((&&@#@$$) a6989586621679140549 :: TyFun Bool Bool -> Type) (a6989586621679140550 :: Bool) Source # | |
type family (a6989586621679140549 :: Bool) &&@#@$$$ (a6989586621679140550 :: Bool) :: Bool where ... infixr 3 Source #
data (||@#@$) :: (~>) Bool ((~>) Bool Bool) infixr 2 Source #
Instances
| SingI (||@#@$) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings (||@#@$) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply (||@#@$) (a6989586621679140880 :: Bool) Source # | |
Defined in Data.Bool.Singletons | |
data (||@#@$$) (a6989586621679140880 :: Bool) :: (~>) Bool Bool infixr 2 Source #
Instances
| SingI x => SingI ((||@#@$$) x :: TyFun Bool Bool -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings ((||@#@$$) a6989586621679140880 :: TyFun Bool Bool -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply ((||@#@$$) a6989586621679140880 :: TyFun Bool Bool -> Type) (a6989586621679140881 :: Bool) Source # | |
type family (a6989586621679140880 :: Bool) ||@#@$$$ (a6989586621679140881 :: Bool) :: Bool where ... infixr 2 Source #
data Bool_Sym0 :: (~>) a ((~>) a ((~>) Bool a)) Source #
Instances
| SingI (Bool_Sym0 :: TyFun a (a ~> (Bool ~> a)) -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings (Bool_Sym0 :: TyFun a (a ~> (Bool ~> a)) -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply (Bool_Sym0 :: TyFun a (a ~> (Bool ~> a)) -> Type) (a6989586621679139245 :: a) Source # | |
Defined in Data.Bool.Singletons | |
data Bool_Sym1 (a6989586621679139245 :: a) :: (~>) a ((~>) Bool a) Source #
Instances
| SingI1 (Bool_Sym1 :: a -> TyFun a (Bool ~> a) -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SingI d => SingI (Bool_Sym1 d :: TyFun a (Bool ~> a) -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings (Bool_Sym1 a6989586621679139245 :: TyFun a (Bool ~> a) -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply (Bool_Sym1 a6989586621679139245 :: TyFun a (Bool ~> a) -> Type) (a6989586621679139246 :: a) Source # | |
Defined in Data.Bool.Singletons | |
data Bool_Sym2 (a6989586621679139245 :: a) (a6989586621679139246 :: a) :: (~>) Bool a Source #
Instances
| SingI2 (Bool_Sym2 :: a -> a -> TyFun Bool a -> Type) Source # | |
| SingI d => SingI1 (Bool_Sym2 d :: a -> TyFun Bool a -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| (SingI d1, SingI d2) => SingI (Bool_Sym2 d1 d2 :: TyFun Bool a -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings (Bool_Sym2 a6989586621679139245 a6989586621679139246 :: TyFun Bool a -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply (Bool_Sym2 a6989586621679139245 a6989586621679139246 :: TyFun Bool a -> Type) (a6989586621679139247 :: Bool) Source # | |
type family Bool_Sym3 (a6989586621679139245 :: a) (a6989586621679139246 :: a) (a6989586621679139247 :: Bool) :: a where ... Source #
type family OtherwiseSym0 :: Bool where ... Source #
Equations
| OtherwiseSym0 = Otherwise |