| Copyright | (C) 2013-2014 Richard Eisenberg Jan Stolarek |
|---|---|
| License | BSD-style (see LICENSE) |
| Maintainer | Ryan Scott |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| 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 (a6989586621679126966 :: Bool) :: (~>) k ((~>) k k)
- data IfSym2 (a6989586621679126966 :: Bool) (a6989586621679126967 :: k) :: (~>) k k
- type family IfSym3 (a6989586621679126966 :: Bool) (a6989586621679126967 :: k) (a6989586621679126968 :: k) :: k where ...
- data NotSym0 :: (~>) Bool Bool
- type family NotSym1 (a6989586621679126743 :: Bool) :: Bool where ...
- data (&&@#@$) :: (~>) Bool ((~>) Bool Bool)
- data (&&@#@$$) (a6989586621679126062 :: Bool) :: (~>) Bool Bool
- type family (a6989586621679126062 :: Bool) &&@#@$$$ (a6989586621679126063 :: Bool) :: Bool where ...
- data (||@#@$) :: (~>) Bool ((~>) Bool Bool)
- data (||@#@$$) (a6989586621679126411 :: Bool) :: (~>) Bool Bool
- type family (a6989586621679126411 :: Bool) ||@#@$$$ (a6989586621679126412 :: Bool) :: Bool where ...
- data Bool_Sym0 :: (~>) a ((~>) a ((~>) Bool a))
- data Bool_Sym1 (a6989586621679124948 :: a) :: (~>) a ((~>) Bool a)
- data Bool_Sym2 (a6989586621679124948 :: a) (a6989586621679124949 :: a) :: (~>) Bool a
- type family Bool_Sym3 (a6989586621679124948 :: a) (a6989586621679124949 :: a) (a6989586621679124950 :: Bool) :: a where ...
- type family OtherwiseSym0 :: Bool where ...
The Bool singleton
type family Sing :: k -> Type #
The singleton kind-indexed type family.
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) (a6989586621679126966 :: Bool) Source # | |
data IfSym1 (a6989586621679126966 :: Bool) :: (~>) k ((~>) k k) Source #
Instances
| SingI c => SingI (IfSym1 c :: TyFun k (k ~> k) -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings (IfSym1 a6989586621679126966 :: TyFun k (k ~> k) -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply (IfSym1 a6989586621679126966 :: TyFun k (k ~> k) -> Type) (a6989586621679126967 :: k) Source # | |
data IfSym2 (a6989586621679126966 :: Bool) (a6989586621679126967 :: k) :: (~>) k k Source #
Instances
| (SingI c, SingI t) => SingI (IfSym2 c t :: TyFun k k -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings (IfSym2 a6989586621679126966 a6989586621679126967 :: TyFun k k -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply (IfSym2 a6989586621679126966 a6989586621679126967 :: TyFun k k -> Type) (a6989586621679126968 :: k) Source # | |
type family IfSym3 (a6989586621679126966 :: Bool) (a6989586621679126967 :: k) (a6989586621679126968 :: 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 (a6989586621679126743 :: 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 (&&@#@$) (a6989586621679126062 :: Bool) Source # | |
Defined in Data.Bool.Singletons | |
data (&&@#@$$) (a6989586621679126062 :: Bool) :: (~>) Bool Bool infixr 3 Source #
Instances
| SingI x => SingI ((&&@#@$$) x :: TyFun Bool Bool -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings ((&&@#@$$) a6989586621679126062 :: TyFun Bool Bool -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply ((&&@#@$$) a6989586621679126062 :: TyFun Bool Bool -> Type) (a6989586621679126063 :: Bool) Source # | |
type family (a6989586621679126062 :: Bool) &&@#@$$$ (a6989586621679126063 :: 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 (||@#@$) (a6989586621679126411 :: Bool) Source # | |
Defined in Data.Bool.Singletons | |
data (||@#@$$) (a6989586621679126411 :: Bool) :: (~>) Bool Bool infixr 2 Source #
Instances
| SingI x => SingI ((||@#@$$) x :: TyFun Bool Bool -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings ((||@#@$$) a6989586621679126411 :: TyFun Bool Bool -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply ((||@#@$$) a6989586621679126411 :: TyFun Bool Bool -> Type) (a6989586621679126412 :: Bool) Source # | |
type family (a6989586621679126411 :: Bool) ||@#@$$$ (a6989586621679126412 :: 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) (a6989586621679124948 :: a) Source # | |
data Bool_Sym1 (a6989586621679124948 :: a) :: (~>) a ((~>) Bool a) Source #
Instances
| SingI d => SingI (Bool_Sym1 d :: TyFun a (Bool ~> a) -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings (Bool_Sym1 a6989586621679124948 :: TyFun a (Bool ~> a) -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply (Bool_Sym1 a6989586621679124948 :: TyFun a (Bool ~> a) -> Type) (a6989586621679124949 :: a) Source # | |
data Bool_Sym2 (a6989586621679124948 :: a) (a6989586621679124949 :: a) :: (~>) Bool a Source #
Instances
| (SingI d1, SingI d2) => SingI (Bool_Sym2 d1 d2 :: TyFun Bool a -> Type) Source # | |
Defined in Data.Bool.Singletons | |
| SuppressUnusedWarnings (Bool_Sym2 a6989586621679124948 a6989586621679124949 :: TyFun Bool a -> Type) Source # | |
Defined in Data.Bool.Singletons Methods suppressUnusedWarnings :: () # | |
| type Apply (Bool_Sym2 a6989586621679124948 a6989586621679124949 :: TyFun Bool a -> Type) (a6989586621679124950 :: Bool) Source # | |
type family Bool_Sym3 (a6989586621679124948 :: a) (a6989586621679124949 :: a) (a6989586621679124950 :: Bool) :: a where ... Source #
type family OtherwiseSym0 :: Bool where ... Source #
Equations
| OtherwiseSym0 = Otherwise |