Copyright | (C) 2014 Jan Stolarek Richard Eisenberg |
---|---|
License | BSD-style (see LICENSE) |
Maintainer | Jan Stolarek (jan.stolarek@p.lodz.pl) |
Stability | experimental |
Portability | non-portable |
Safe Haskell | None |
Language | GHC2021 |
Defines the promoted and singleton version of the Bounded
and Enum
type
classes.
While Prelude.Singletons re-exports the promoted and singled versions of
Enum
, it deliberately avoids re-exporting Succ
and Pred
, as these are
names are likely to clash with code that deals with unary natural numbers.
As a result, this module exists to provide Succ
and Pred
for those who
want them.
Synopsis
- class PBounded a where
- class SBounded a where
- sMinBound :: Sing (MinBoundSym0 :: a)
- sMaxBound :: Sing (MaxBoundSym0 :: a)
- class PEnum a where
- type Succ (arg :: a) :: a
- type Pred (arg :: a) :: a
- type ToEnum (arg :: Natural) :: a
- type FromEnum (arg :: a) :: Natural
- type EnumFromTo (arg :: a) (arg1 :: a) :: [a]
- type EnumFromThenTo (arg :: a) (arg1 :: a) (arg2 :: a) :: [a]
- class SEnum a where
- sSucc :: forall (t :: a). Sing t -> Sing (Apply (SuccSym0 :: TyFun a a -> Type) t)
- sPred :: forall (t :: a). Sing t -> Sing (Apply (PredSym0 :: TyFun a a -> Type) t)
- sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural a -> Type) t)
- sFromEnum :: forall (t :: a). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun a Natural -> Type) t)
- sEnumFromTo :: forall (t1 :: a) (t2 :: a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun a (a ~> [a]) -> Type) t1) t2)
- sEnumFromThenTo :: forall (t1 :: a) (t2 :: a) (t3 :: a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun a (a ~> (a ~> [a])) -> Type) t1) t2) t3)
- type family MinBoundSym0 :: a where ...
- type family MaxBoundSym0 :: a where ...
- data SuccSym0 (a1 :: TyFun a a)
- type family SuccSym1 (a6989586621679612923 :: a) :: a where ...
- data PredSym0 (a1 :: TyFun a a)
- type family PredSym1 (a6989586621679612926 :: a) :: a where ...
- data ToEnumSym0 (a1 :: TyFun Natural a)
- type family ToEnumSym1 (a6989586621679612929 :: Natural) :: a where ...
- data FromEnumSym0 (a1 :: TyFun a Natural)
- type family FromEnumSym1 (a6989586621679612932 :: a) :: Natural where ...
- data EnumFromToSym0 (a1 :: TyFun a (a ~> [a]))
- data EnumFromToSym1 (a6989586621679612936 :: a) (b :: TyFun a [a])
- type family EnumFromToSym2 (a6989586621679612936 :: a) (a6989586621679612937 :: a) :: [a] where ...
- data EnumFromThenToSym0 (a1 :: TyFun a (a ~> (a ~> [a])))
- data EnumFromThenToSym1 (a6989586621679612942 :: a) (b :: TyFun a (a ~> [a]))
- data EnumFromThenToSym2 (a6989586621679612942 :: a) (a6989586621679612943 :: a) (c :: TyFun a [a])
- type family EnumFromThenToSym3 (a6989586621679612942 :: a) (a6989586621679612943 :: a) (a6989586621679612944 :: a) :: [a] where ...
Documentation
Instances
class SBounded a where Source #
sMinBound :: Sing (MinBoundSym0 :: a) Source #
sMaxBound :: Sing (MaxBoundSym0 :: a) Source #
Instances
SBounded Bool => SBounded All Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SBounded Bool => SBounded Any Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SBounded Ordering Source # | |
Defined in Data.Singletons.Base.Enum | |
SBounded () Source # | |
Defined in Data.Singletons.Base.Enum sMinBound :: Sing (MinBoundSym0 :: ()) Source # sMaxBound :: Sing (MaxBoundSym0 :: ()) Source # | |
SBounded Bool Source # | |
Defined in Data.Singletons.Base.Enum | |
SBounded Char Source # | |
Defined in Data.Singletons.Base.Enum | |
SBounded a => SBounded (Identity a) Source # | |
Defined in Data.Singletons.Base.Enum | |
SBounded a => SBounded (First a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SBounded a => SBounded (Last a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SBounded a => SBounded (Max a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SBounded a => SBounded (Min a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SBounded m => SBounded (WrappedMonoid m) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers sMinBound :: Sing (MinBoundSym0 :: WrappedMonoid m) Source # sMaxBound :: Sing (MaxBoundSym0 :: WrappedMonoid m) Source # | |
SBounded a => SBounded (Dual a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SBounded a => SBounded (Product a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SBounded a => SBounded (Sum a) Source # | |
Defined in Data.Semigroup.Singletons.Internal.Wrappers | |
SBounded (Proxy s) Source # | |
Defined in Data.Proxy.Singletons | |
(SBounded a, SBounded b) => SBounded (a, b) Source # | |
Defined in Data.Singletons.Base.Enum sMinBound :: Sing (MinBoundSym0 :: (a, b)) Source # sMaxBound :: Sing (MaxBoundSym0 :: (a, b)) Source # | |
SBounded a => SBounded (Const a b) Source # | |
Defined in Data.Functor.Const.Singletons | |
(SBounded a, SBounded b, SBounded c) => SBounded (a, b, c) Source # | |
Defined in Data.Singletons.Base.Enum sMinBound :: Sing (MinBoundSym0 :: (a, b, c)) Source # sMaxBound :: Sing (MaxBoundSym0 :: (a, b, c)) Source # | |
(SBounded a, SBounded b, SBounded c, SBounded d) => SBounded (a, b, c, d) Source # | |
Defined in Data.Singletons.Base.Enum sMinBound :: Sing (MinBoundSym0 :: (a, b, c, d)) Source # sMaxBound :: Sing (MaxBoundSym0 :: (a, b, c, d)) Source # | |
(SBounded a, SBounded b, SBounded c, SBounded d, SBounded e) => SBounded (a, b, c, d, e) Source # | |
Defined in Data.Singletons.Base.Enum sMinBound :: Sing (MinBoundSym0 :: (a, b, c, d, e)) Source # sMaxBound :: Sing (MaxBoundSym0 :: (a, b, c, d, e)) Source # | |
(SBounded a, SBounded b, SBounded c, SBounded d, SBounded e, SBounded f) => SBounded (a, b, c, d, e, f) Source # | |
Defined in Data.Singletons.Base.Enum sMinBound :: Sing (MinBoundSym0 :: (a, b, c, d, e, f)) Source # sMaxBound :: Sing (MaxBoundSym0 :: (a, b, c, d, e, f)) Source # | |
(SBounded a, SBounded b, SBounded c, SBounded d, SBounded e, SBounded f, SBounded g) => SBounded (a, b, c, d, e, f, g) Source # | |
Defined in Data.Singletons.Base.Enum sMinBound :: Sing (MinBoundSym0 :: (a, b, c, d, e, f, g)) Source # sMaxBound :: Sing (MaxBoundSym0 :: (a, b, c, d, e, f, g)) Source # |
type Succ (arg :: a) :: a Source #
type Pred (arg :: a) :: a Source #
type ToEnum (arg :: Natural) :: a Source #
type FromEnum (arg :: a) :: Natural Source #
type EnumFromTo (arg :: a) (arg1 :: a) :: [a] Source #
type EnumFromTo (arg :: a) (arg1 :: a) = Apply (Apply (EnumFromTo_6989586621679612969Sym0 :: TyFun a (a ~> [a]) -> Type) arg) arg1
type EnumFromThenTo (arg :: a) (arg1 :: a) (arg2 :: a) :: [a] Source #
Instances
PEnum Ordering Source # | |||||||||||||||||||||||||
Defined in Data.Singletons.Base.Enum
| |||||||||||||||||||||||||
PEnum Natural Source # | |||||||||||||||||||||||||
Defined in Data.Singletons.Base.Enum
| |||||||||||||||||||||||||
PEnum () Source # | |||||||||||||||||||||||||
Defined in Data.Singletons.Base.Enum
| |||||||||||||||||||||||||
PEnum Bool Source # | |||||||||||||||||||||||||
Defined in Data.Singletons.Base.Enum
| |||||||||||||||||||||||||
PEnum Char Source # | |||||||||||||||||||||||||
Defined in Data.Singletons.Base.Enum
| |||||||||||||||||||||||||
PEnum (Identity a) Source # | |||||||||||||||||||||||||
Defined in Data.Functor.Identity.Singletons | |||||||||||||||||||||||||
PEnum (First a) Source # | |||||||||||||||||||||||||
Defined in Data.Semigroup.Singletons | |||||||||||||||||||||||||
PEnum (Last a) Source # | |||||||||||||||||||||||||
Defined in Data.Semigroup.Singletons | |||||||||||||||||||||||||
PEnum (Max a) Source # | |||||||||||||||||||||||||
Defined in Data.Semigroup.Singletons | |||||||||||||||||||||||||
PEnum (Min a) Source # | |||||||||||||||||||||||||
Defined in Data.Semigroup.Singletons | |||||||||||||||||||||||||
PEnum (WrappedMonoid a) Source # | |||||||||||||||||||||||||
Defined in Data.Semigroup.Singletons | |||||||||||||||||||||||||
PEnum (Proxy s) Source # | |||||||||||||||||||||||||
Defined in Data.Proxy.Singletons | |||||||||||||||||||||||||
PEnum (Const a b) Source # | |||||||||||||||||||||||||
Defined in Data.Functor.Const.Singletons |
sSucc :: forall (t :: a). Sing t -> Sing (Apply (SuccSym0 :: TyFun a a -> Type) t) Source #
default sSucc :: forall (t :: a). Apply (SuccSym0 :: TyFun a a -> Type) t ~ Apply (Succ_6989586621679612946Sym0 :: TyFun a a -> Type) t => Sing t -> Sing (Apply (SuccSym0 :: TyFun a a -> Type) t) Source #
sPred :: forall (t :: a). Sing t -> Sing (Apply (PredSym0 :: TyFun a a -> Type) t) Source #
default sPred :: forall (t :: a). Apply (PredSym0 :: TyFun a a -> Type) t ~ Apply (Pred_6989586621679612959Sym0 :: TyFun a a -> Type) t => Sing t -> Sing (Apply (PredSym0 :: TyFun a a -> Type) t) Source #
sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural a -> Type) t) Source #
sFromEnum :: forall (t :: a). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun a Natural -> Type) t) Source #
sEnumFromTo :: forall (t1 :: a) (t2 :: a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun a (a ~> [a]) -> Type) t1) t2) Source #
default sEnumFromTo :: forall (t1 :: a) (t2 :: a). Apply (Apply (EnumFromToSym0 :: TyFun a (a ~> [a]) -> Type) t1) t2 ~ Apply (Apply (EnumFromTo_6989586621679612969Sym0 :: TyFun a (a ~> [a]) -> Type) t1) t2 => Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun a (a ~> [a]) -> Type) t1) t2) Source #
sEnumFromThenTo :: forall (t1 :: a) (t2 :: a) (t3 :: a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun a (a ~> (a ~> [a])) -> Type) t1) t2) t3) Source #
default sEnumFromThenTo :: forall (t1 :: a) (t2 :: a) (t3 :: a). Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun a (a ~> (a ~> [a])) -> Type) t1) t2) t3 ~ Apply (Apply (Apply (EnumFromThenTo_6989586621679612981Sym0 :: TyFun a (a ~> (a ~> [a])) -> Type) t1) t2) t3 => Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun a (a ~> (a ~> [a])) -> Type) t1) t2) t3) Source #
Instances
SEnum Ordering Source # | |
Defined in Data.Singletons.Base.Enum sSucc :: forall (t :: Ordering). Sing t -> Sing (Apply (SuccSym0 :: TyFun Ordering Ordering -> Type) t) Source # sPred :: forall (t :: Ordering). Sing t -> Sing (Apply (PredSym0 :: TyFun Ordering Ordering -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural Ordering -> Type) t) Source # sFromEnum :: forall (t :: Ordering). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun Ordering Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: Ordering) (t2 :: Ordering). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun Ordering (Ordering ~> [Ordering]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: Ordering) (t2 :: Ordering) (t3 :: Ordering). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun Ordering (Ordering ~> (Ordering ~> [Ordering])) -> Type) t1) t2) t3) Source # | |
SEnum Natural Source # | |
Defined in Data.Singletons.Base.Enum sSucc :: forall (t :: Natural). Sing t -> Sing (Apply (SuccSym0 :: TyFun Natural Natural -> Type) t) Source # sPred :: forall (t :: Natural). Sing t -> Sing (Apply (PredSym0 :: TyFun Natural Natural -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural Natural -> Type) t) Source # sFromEnum :: forall (t :: Natural). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun Natural Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: Natural) (t2 :: Natural). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun Natural (Natural ~> [Natural]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: Natural) (t2 :: Natural) (t3 :: Natural). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun Natural (Natural ~> (Natural ~> [Natural])) -> Type) t1) t2) t3) Source # | |
SEnum () Source # | |
Defined in Data.Singletons.Base.Enum sSucc :: forall (t :: ()). Sing t -> Sing (Apply (SuccSym0 :: TyFun () () -> Type) t) Source # sPred :: forall (t :: ()). Sing t -> Sing (Apply (PredSym0 :: TyFun () () -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural () -> Type) t) Source # sFromEnum :: forall (t :: ()). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun () Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: ()) (t2 :: ()). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun () (() ~> [()]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: ()) (t2 :: ()) (t3 :: ()). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun () (() ~> (() ~> [()])) -> Type) t1) t2) t3) Source # | |
SEnum Bool Source # | |
Defined in Data.Singletons.Base.Enum sSucc :: forall (t :: Bool). Sing t -> Sing (Apply (SuccSym0 :: TyFun Bool Bool -> Type) t) Source # sPred :: forall (t :: Bool). Sing t -> Sing (Apply (PredSym0 :: TyFun Bool Bool -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural Bool -> Type) t) Source # sFromEnum :: forall (t :: Bool). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun Bool Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: Bool) (t2 :: Bool). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun Bool (Bool ~> [Bool]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: Bool) (t2 :: Bool) (t3 :: Bool). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun Bool (Bool ~> (Bool ~> [Bool])) -> Type) t1) t2) t3) Source # | |
SEnum Char Source # | |
Defined in Data.Singletons.Base.Enum sSucc :: forall (t :: Char). Sing t -> Sing (Apply (SuccSym0 :: TyFun Char Char -> Type) t) Source # sPred :: forall (t :: Char). Sing t -> Sing (Apply (PredSym0 :: TyFun Char Char -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural Char -> Type) t) Source # sFromEnum :: forall (t :: Char). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun Char Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: Char) (t2 :: Char). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun Char (Char ~> [Char]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: Char) (t2 :: Char) (t3 :: Char). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun Char (Char ~> (Char ~> [Char])) -> Type) t1) t2) t3) Source # | |
SEnum a => SEnum (Identity a) Source # | |
Defined in Data.Functor.Identity.Singletons sSucc :: forall (t :: Identity a). Sing t -> Sing (Apply (SuccSym0 :: TyFun (Identity a) (Identity a) -> Type) t) Source # sPred :: forall (t :: Identity a). Sing t -> Sing (Apply (PredSym0 :: TyFun (Identity a) (Identity a) -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural (Identity a) -> Type) t) Source # sFromEnum :: forall (t :: Identity a). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun (Identity a) Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: Identity a) (t2 :: Identity a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun (Identity a) (Identity a ~> [Identity a]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: Identity a) (t2 :: Identity a) (t3 :: Identity a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun (Identity a) (Identity a ~> (Identity a ~> [Identity a])) -> Type) t1) t2) t3) Source # | |
SEnum a => SEnum (First a) Source # | |
Defined in Data.Semigroup.Singletons sSucc :: forall (t :: First a). Sing t -> Sing (Apply (SuccSym0 :: TyFun (First a) (First a) -> Type) t) Source # sPred :: forall (t :: First a). Sing t -> Sing (Apply (PredSym0 :: TyFun (First a) (First a) -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural (First a) -> Type) t) Source # sFromEnum :: forall (t :: First a). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun (First a) Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: First a) (t2 :: First a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun (First a) (First a ~> [First a]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: First a) (t2 :: First a) (t3 :: First a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun (First a) (First a ~> (First a ~> [First a])) -> Type) t1) t2) t3) Source # | |
SEnum a => SEnum (Last a) Source # | |
Defined in Data.Semigroup.Singletons sSucc :: forall (t :: Last a). Sing t -> Sing (Apply (SuccSym0 :: TyFun (Last a) (Last a) -> Type) t) Source # sPred :: forall (t :: Last a). Sing t -> Sing (Apply (PredSym0 :: TyFun (Last a) (Last a) -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural (Last a) -> Type) t) Source # sFromEnum :: forall (t :: Last a). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun (Last a) Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: Last a) (t2 :: Last a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun (Last a) (Last a ~> [Last a]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: Last a) (t2 :: Last a) (t3 :: Last a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun (Last a) (Last a ~> (Last a ~> [Last a])) -> Type) t1) t2) t3) Source # | |
SEnum a => SEnum (Max a) Source # | |
Defined in Data.Semigroup.Singletons sSucc :: forall (t :: Max a). Sing t -> Sing (Apply (SuccSym0 :: TyFun (Max a) (Max a) -> Type) t) Source # sPred :: forall (t :: Max a). Sing t -> Sing (Apply (PredSym0 :: TyFun (Max a) (Max a) -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural (Max a) -> Type) t) Source # sFromEnum :: forall (t :: Max a). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun (Max a) Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: Max a) (t2 :: Max a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun (Max a) (Max a ~> [Max a]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: Max a) (t2 :: Max a) (t3 :: Max a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun (Max a) (Max a ~> (Max a ~> [Max a])) -> Type) t1) t2) t3) Source # | |
SEnum a => SEnum (Min a) Source # | |
Defined in Data.Semigroup.Singletons sSucc :: forall (t :: Min a). Sing t -> Sing (Apply (SuccSym0 :: TyFun (Min a) (Min a) -> Type) t) Source # sPred :: forall (t :: Min a). Sing t -> Sing (Apply (PredSym0 :: TyFun (Min a) (Min a) -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural (Min a) -> Type) t) Source # sFromEnum :: forall (t :: Min a). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun (Min a) Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: Min a) (t2 :: Min a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun (Min a) (Min a ~> [Min a]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: Min a) (t2 :: Min a) (t3 :: Min a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun (Min a) (Min a ~> (Min a ~> [Min a])) -> Type) t1) t2) t3) Source # | |
SEnum a => SEnum (WrappedMonoid a) Source # | |
Defined in Data.Semigroup.Singletons sSucc :: forall (t :: WrappedMonoid a). Sing t -> Sing (Apply (SuccSym0 :: TyFun (WrappedMonoid a) (WrappedMonoid a) -> Type) t) Source # sPred :: forall (t :: WrappedMonoid a). Sing t -> Sing (Apply (PredSym0 :: TyFun (WrappedMonoid a) (WrappedMonoid a) -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural (WrappedMonoid a) -> Type) t) Source # sFromEnum :: forall (t :: WrappedMonoid a). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun (WrappedMonoid a) Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: WrappedMonoid a) (t2 :: WrappedMonoid a). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun (WrappedMonoid a) (WrappedMonoid a ~> [WrappedMonoid a]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: WrappedMonoid a) (t2 :: WrappedMonoid a) (t3 :: WrappedMonoid a). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun (WrappedMonoid a) (WrappedMonoid a ~> (WrappedMonoid a ~> [WrappedMonoid a])) -> Type) t1) t2) t3) Source # | |
SEnum (Proxy s) Source # | |
Defined in Data.Proxy.Singletons sSucc :: forall (t :: Proxy s). Sing t -> Sing (Apply (SuccSym0 :: TyFun (Proxy s) (Proxy s) -> Type) t) Source # sPred :: forall (t :: Proxy s). Sing t -> Sing (Apply (PredSym0 :: TyFun (Proxy s) (Proxy s) -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural (Proxy s) -> Type) t) Source # sFromEnum :: forall (t :: Proxy s). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun (Proxy s) Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: Proxy s) (t2 :: Proxy s). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun (Proxy s) (Proxy s ~> [Proxy s]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: Proxy s) (t2 :: Proxy s) (t3 :: Proxy s). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun (Proxy s) (Proxy s ~> (Proxy s ~> [Proxy s])) -> Type) t1) t2) t3) Source # | |
SEnum a => SEnum (Const a b) Source # | |
Defined in Data.Functor.Const.Singletons sSucc :: forall (t :: Const a b). Sing t -> Sing (Apply (SuccSym0 :: TyFun (Const a b) (Const a b) -> Type) t) Source # sPred :: forall (t :: Const a b). Sing t -> Sing (Apply (PredSym0 :: TyFun (Const a b) (Const a b) -> Type) t) Source # sToEnum :: forall (t :: Natural). Sing t -> Sing (Apply (ToEnumSym0 :: TyFun Natural (Const a b) -> Type) t) Source # sFromEnum :: forall (t :: Const a b). Sing t -> Sing (Apply (FromEnumSym0 :: TyFun (Const a b) Natural -> Type) t) Source # sEnumFromTo :: forall (t1 :: Const a b) (t2 :: Const a b). Sing t1 -> Sing t2 -> Sing (Apply (Apply (EnumFromToSym0 :: TyFun (Const a b) (Const a b ~> [Const a b]) -> Type) t1) t2) Source # sEnumFromThenTo :: forall (t1 :: Const a b) (t2 :: Const a b) (t3 :: Const a b). Sing t1 -> Sing t2 -> Sing t3 -> Sing (Apply (Apply (Apply (EnumFromThenToSym0 :: TyFun (Const a b) (Const a b ~> (Const a b ~> [Const a b])) -> Type) t1) t2) t3) Source # |
Defunctionalization symbols
type family MinBoundSym0 :: a where ... Source #
MinBoundSym0 = MinBound :: a |
type family MaxBoundSym0 :: a where ... Source #
MaxBoundSym0 = MaxBound :: a |
data ToEnumSym0 (a1 :: TyFun Natural a) Source #
Instances
SEnum a => SingI (ToEnumSym0 :: TyFun Natural a -> Type) Source # | |
Defined in Data.Singletons.Base.Enum | |
SuppressUnusedWarnings (ToEnumSym0 :: TyFun Natural a -> Type) Source # | |
Defined in Data.Singletons.Base.Enum suppressUnusedWarnings :: () # | |
type Apply (ToEnumSym0 :: TyFun Natural k2 -> Type) (a6989586621679612929 :: Natural) Source # | |
Defined in Data.Singletons.Base.Enum |
type family ToEnumSym1 (a6989586621679612929 :: Natural) :: a where ... Source #
ToEnumSym1 a6989586621679612929 = ToEnum a6989586621679612929 :: a |
data FromEnumSym0 (a1 :: TyFun a Natural) Source #
Instances
SEnum a => SingI (FromEnumSym0 :: TyFun a Natural -> Type) Source # | |
Defined in Data.Singletons.Base.Enum | |
SuppressUnusedWarnings (FromEnumSym0 :: TyFun a Natural -> Type) Source # | |
Defined in Data.Singletons.Base.Enum suppressUnusedWarnings :: () # | |
type Apply (FromEnumSym0 :: TyFun a Natural -> Type) (a6989586621679612932 :: a) Source # | |
Defined in Data.Singletons.Base.Enum |
type family FromEnumSym1 (a6989586621679612932 :: a) :: Natural where ... Source #
FromEnumSym1 (a6989586621679612932 :: a) = FromEnum a6989586621679612932 |
data EnumFromToSym0 (a1 :: TyFun a (a ~> [a])) Source #
Instances
SEnum a => SingI (EnumFromToSym0 :: TyFun a (a ~> [a]) -> Type) Source # | |
Defined in Data.Singletons.Base.Enum | |
SuppressUnusedWarnings (EnumFromToSym0 :: TyFun a (a ~> [a]) -> Type) Source # | |
Defined in Data.Singletons.Base.Enum suppressUnusedWarnings :: () # | |
type Apply (EnumFromToSym0 :: TyFun a (a ~> [a]) -> Type) (a6989586621679612936 :: a) Source # | |
Defined in Data.Singletons.Base.Enum type Apply (EnumFromToSym0 :: TyFun a (a ~> [a]) -> Type) (a6989586621679612936 :: a) = EnumFromToSym1 a6989586621679612936 |
data EnumFromToSym1 (a6989586621679612936 :: a) (b :: TyFun a [a]) Source #
Instances
SEnum a => SingI1 (EnumFromToSym1 :: a -> TyFun a [a] -> Type) Source # | |
Defined in Data.Singletons.Base.Enum liftSing :: forall (x :: a). Sing x -> Sing (EnumFromToSym1 x) # | |
(SEnum a, SingI d) => SingI (EnumFromToSym1 d :: TyFun a [a] -> Type) Source # | |
Defined in Data.Singletons.Base.Enum sing :: Sing (EnumFromToSym1 d) # | |
SuppressUnusedWarnings (EnumFromToSym1 a6989586621679612936 :: TyFun a [a] -> Type) Source # | |
Defined in Data.Singletons.Base.Enum suppressUnusedWarnings :: () # | |
type Apply (EnumFromToSym1 a6989586621679612936 :: TyFun a [a] -> Type) (a6989586621679612937 :: a) Source # | |
Defined in Data.Singletons.Base.Enum type Apply (EnumFromToSym1 a6989586621679612936 :: TyFun a [a] -> Type) (a6989586621679612937 :: a) = EnumFromTo a6989586621679612936 a6989586621679612937 |
type family EnumFromToSym2 (a6989586621679612936 :: a) (a6989586621679612937 :: a) :: [a] where ... Source #
EnumFromToSym2 (a6989586621679612936 :: a) (a6989586621679612937 :: a) = EnumFromTo a6989586621679612936 a6989586621679612937 |
data EnumFromThenToSym0 (a1 :: TyFun a (a ~> (a ~> [a]))) Source #
Instances
SEnum a => SingI (EnumFromThenToSym0 :: TyFun a (a ~> (a ~> [a])) -> Type) Source # | |
Defined in Data.Singletons.Base.Enum | |
SuppressUnusedWarnings (EnumFromThenToSym0 :: TyFun a (a ~> (a ~> [a])) -> Type) Source # | |
Defined in Data.Singletons.Base.Enum suppressUnusedWarnings :: () # | |
type Apply (EnumFromThenToSym0 :: TyFun a (a ~> (a ~> [a])) -> Type) (a6989586621679612942 :: a) Source # | |
Defined in Data.Singletons.Base.Enum type Apply (EnumFromThenToSym0 :: TyFun a (a ~> (a ~> [a])) -> Type) (a6989586621679612942 :: a) = EnumFromThenToSym1 a6989586621679612942 |
data EnumFromThenToSym1 (a6989586621679612942 :: a) (b :: TyFun a (a ~> [a])) Source #
Instances
SEnum a => SingI1 (EnumFromThenToSym1 :: a -> TyFun a (a ~> [a]) -> Type) Source # | |
Defined in Data.Singletons.Base.Enum liftSing :: forall (x :: a). Sing x -> Sing (EnumFromThenToSym1 x) # | |
(SEnum a, SingI d) => SingI (EnumFromThenToSym1 d :: TyFun a (a ~> [a]) -> Type) Source # | |
Defined in Data.Singletons.Base.Enum sing :: Sing (EnumFromThenToSym1 d) # | |
SuppressUnusedWarnings (EnumFromThenToSym1 a6989586621679612942 :: TyFun a (a ~> [a]) -> Type) Source # | |
Defined in Data.Singletons.Base.Enum suppressUnusedWarnings :: () # | |
type Apply (EnumFromThenToSym1 a6989586621679612942 :: TyFun a (a ~> [a]) -> Type) (a6989586621679612943 :: a) Source # | |
Defined in Data.Singletons.Base.Enum type Apply (EnumFromThenToSym1 a6989586621679612942 :: TyFun a (a ~> [a]) -> Type) (a6989586621679612943 :: a) = EnumFromThenToSym2 a6989586621679612942 a6989586621679612943 |
data EnumFromThenToSym2 (a6989586621679612942 :: a) (a6989586621679612943 :: a) (c :: TyFun a [a]) Source #
Instances
SEnum a => SingI2 (EnumFromThenToSym2 :: a -> a -> TyFun a [a] -> Type) Source # | |
Defined in Data.Singletons.Base.Enum | |
(SEnum a, SingI d) => SingI1 (EnumFromThenToSym2 d :: a -> TyFun a [a] -> Type) Source # | |
Defined in Data.Singletons.Base.Enum liftSing :: forall (x :: a). Sing x -> Sing (EnumFromThenToSym2 d x) # | |
(SEnum a, SingI d1, SingI d2) => SingI (EnumFromThenToSym2 d1 d2 :: TyFun a [a] -> Type) Source # | |
Defined in Data.Singletons.Base.Enum sing :: Sing (EnumFromThenToSym2 d1 d2) # | |
SuppressUnusedWarnings (EnumFromThenToSym2 a6989586621679612942 a6989586621679612943 :: TyFun a [a] -> Type) Source # | |
Defined in Data.Singletons.Base.Enum suppressUnusedWarnings :: () # | |
type Apply (EnumFromThenToSym2 a6989586621679612942 a6989586621679612943 :: TyFun a [a] -> Type) (a6989586621679612944 :: a) Source # | |
Defined in Data.Singletons.Base.Enum type Apply (EnumFromThenToSym2 a6989586621679612942 a6989586621679612943 :: TyFun a [a] -> Type) (a6989586621679612944 :: a) = EnumFromThenTo a6989586621679612942 a6989586621679612943 a6989586621679612944 |
type family EnumFromThenToSym3 (a6989586621679612942 :: a) (a6989586621679612943 :: a) (a6989586621679612944 :: a) :: [a] where ... Source #
EnumFromThenToSym3 (a6989586621679612942 :: a) (a6989586621679612943 :: a) (a6989586621679612944 :: a) = EnumFromThenTo a6989586621679612942 a6989586621679612943 a6989586621679612944 |