-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Type level booleans
--
-- Type level booleans.
--
-- singletons package provides similar functionality, but it has
-- tight dependency constraints.
@package singleton-bool
@version 0.1.2.0
module Data.Singletons.Bool
data SBool (b :: Bool)
[STrue] :: SBool True
[SFalse] :: SBool False
class SBoolI (b :: Bool)
sbool :: SBoolI b => SBool b
sboolAnd :: SBool a -> SBool b -> SBool (a && b)
sboolOr :: SBool a -> SBool b -> SBool (a || b)
sboolNot :: SBool a -> SBool (Not a)
eqToRefl :: (a == b) ~ True => a :~: b
eqCast :: (a == b) ~ True => a -> b
-- | Useful combination of sbool and eqToRefl
sboolEqRefl :: forall (a :: k) (b :: k). SBoolI (a == b) => Maybe (a :~: b)
trivialRefl :: () :~: ()
instance Data.Singletons.Bool.SBoolI 'GHC.Types.True
instance Data.Singletons.Bool.SBoolI 'GHC.Types.False