singletons-2.5.1: A framework for generating singleton types

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 | Haskell2010

Data.Singletons.Prelude.Enum

Contents

- Defunctionalization symbols

Description

Defines the promoted and singleton version of Bounded, `PBounded` and `SBounded`

Synopsis

- class PBounded (a :: Type) where
  - type MinBound :: a
  - type MaxBound :: a
- class SBounded a where
  - sMinBound :: Sing (MinBoundSym0 :: a)
  - sMaxBound :: Sing (MaxBoundSym0 :: a)
- class PEnum (a :: Type) where
  - type Succ (arg :: a) :: a
  - type Pred (arg :: a) :: a
  - type ToEnum (arg :: Nat) :: a
  - type FromEnum (arg :: a) :: Nat
  - type EnumFromTo (arg :: a) (arg :: a) :: [a]
  - type EnumFromThenTo (arg :: a) (arg :: a) (arg :: a) :: [a]
- class SEnum a where
  - sSucc :: forall (t :: a). Sing t -> Sing (Apply SuccSym0 t :: a)
  - sPred :: forall (t :: a). Sing t -> Sing (Apply PredSym0 t :: a)
  - sToEnum :: forall (t :: Nat). Sing t -> Sing (Apply ToEnumSym0 t :: a)
  - sFromEnum :: forall (t :: a). Sing t -> Sing (Apply FromEnumSym0 t :: Nat)
  - sEnumFromTo :: forall (t :: a) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t :: [a])
  - sEnumFromThenTo :: forall (t :: a) (t :: a) (t :: a). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t :: [a])
- type MinBoundSym0 = MinBound
- type MaxBoundSym0 = MaxBound
- data SuccSym0 :: forall a6989586621679740900. (~>) a6989586621679740900 a6989586621679740900
- type SuccSym1 (arg6989586621679741184 :: a6989586621679740900) = Succ arg6989586621679741184
- data PredSym0 :: forall a6989586621679740900. (~>) a6989586621679740900 a6989586621679740900
- type PredSym1 (arg6989586621679741186 :: a6989586621679740900) = Pred arg6989586621679741186
- data ToEnumSym0 :: forall a6989586621679740900. (~>) Nat a6989586621679740900
- type ToEnumSym1 (arg6989586621679741188 :: Nat) = ToEnum arg6989586621679741188
- data FromEnumSym0 :: forall a6989586621679740900. (~>) a6989586621679740900 Nat
- type FromEnumSym1 (arg6989586621679741190 :: a6989586621679740900) = FromEnum arg6989586621679741190
- data EnumFromToSym0 :: forall a6989586621679740900. (~>) a6989586621679740900 ((~>) a6989586621679740900 [a6989586621679740900])
- data EnumFromToSym1 (arg6989586621679741192 :: a6989586621679740900) :: (~>) a6989586621679740900 [a6989586621679740900]
- type EnumFromToSym2 (arg6989586621679741192 :: a6989586621679740900) (arg6989586621679741193 :: a6989586621679740900) = EnumFromTo arg6989586621679741192 arg6989586621679741193
- data EnumFromThenToSym0 :: forall a6989586621679740900. (~>) a6989586621679740900 ((~>) a6989586621679740900 ((~>) a6989586621679740900 [a6989586621679740900]))
- data EnumFromThenToSym1 (arg6989586621679741196 :: a6989586621679740900) :: (~>) a6989586621679740900 ((~>) a6989586621679740900 [a6989586621679740900])
- data EnumFromThenToSym2 (arg6989586621679741196 :: a6989586621679740900) (arg6989586621679741197 :: a6989586621679740900) :: (~>) a6989586621679740900 [a6989586621679740900]
- type EnumFromThenToSym3 (arg6989586621679741196 :: a6989586621679740900) (arg6989586621679741197 :: a6989586621679740900) (arg6989586621679741198 :: a6989586621679740900) = EnumFromThenTo arg6989586621679741196 arg6989586621679741197 arg6989586621679741198

# Documentation

class PBounded (a :: Type) Source #

Associated Types

type MinBound :: a Source #

type MaxBound :: a Source #

Instances

PBounded Bool Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded Ordering Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded () Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded All Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded Any Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (Min a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (Max a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (First a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (Last a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (WrappedMonoid m) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (Identity a) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (Dual a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (Sum a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (Product a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (a, b) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (a, b, c) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (Const a b) Source # |
Instance details Defined in Data.Singletons.Prelude.Const Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (a, b, c, d) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (a, b, c, d, e) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (a, b, c, d, e, f) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type MinBound :: a Source # type MaxBound :: a Source #
PBounded (a, b, c, d, e, f, g) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type MinBound :: a Source # type MaxBound :: a Source #

class SBounded a where Source #

Methods

sMinBound :: Sing (MinBoundSym0 :: a) Source #

sMaxBound :: Sing (MaxBoundSym0 :: a) Source #

Instances

SBounded Bool Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded Ordering Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded () Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded Bool => SBounded All Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded Bool => SBounded Any Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded a => SBounded (Min a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded a => SBounded (Max a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded a => SBounded (First a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded a => SBounded (Last a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded m => SBounded (WrappedMonoid m) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded a => SBounded (Identity a) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded a => SBounded (Dual a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded a => SBounded (Sum a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded a => SBounded (Product a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup.Internal Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
(SBounded a, SBounded b) => SBounded (a, b) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
(SBounded a, SBounded b, SBounded c) => SBounded (a, b, c) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
SBounded a => SBounded (Const a b) Source # |
Instance details Defined in Data.Singletons.Prelude.Const Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
(SBounded a, SBounded b, SBounded c, SBounded d) => SBounded (a, b, c, d) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
(SBounded a, SBounded b, SBounded c, SBounded d, SBounded e) => SBounded (a, b, c, d, e) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
(SBounded a, SBounded b, SBounded c, SBounded d, SBounded e, SBounded f) => SBounded (a, b, c, d, e, f) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #
(SBounded a, SBounded b, SBounded c, SBounded d, SBounded e, SBounded f, SBounded g) => SBounded (a, b, c, d, e, f, g) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sMinBound :: Sing MinBoundSym0 Source # sMaxBound :: Sing MaxBoundSym0 Source #

class PEnum (a :: Type) Source #

Associated Types

type Succ (arg :: a) :: a Source #

type Pred (arg :: a) :: a Source #

type ToEnum (arg :: Nat) :: a Source #

type FromEnum (arg :: a) :: Nat Source #

type EnumFromTo (arg :: a) (arg :: a) :: [a] Source #

type EnumFromThenTo (arg :: a) (arg :: a) (arg :: a) :: [a] Source #

Instances

PEnum Bool Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type Succ arg :: a Source # type Pred arg :: a Source # type ToEnum arg :: a Source # type FromEnum arg :: Nat Source # type EnumFromTo arg arg :: [a] Source # type EnumFromThenTo arg arg arg :: [a] Source #
PEnum Ordering Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type Succ arg :: a Source # type Pred arg :: a Source # type ToEnum arg :: a Source # type FromEnum arg :: Nat Source # type EnumFromTo arg arg :: [a] Source # type EnumFromThenTo arg arg arg :: [a] Source #
PEnum Nat Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type Succ arg :: a Source # type Pred arg :: a Source # type ToEnum arg :: a Source # type FromEnum arg :: Nat Source # type EnumFromTo arg arg :: [a] Source # type EnumFromThenTo arg arg arg :: [a] Source #
PEnum () Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Associated Types type Succ arg :: a Source # type Pred arg :: a Source # type ToEnum arg :: a Source # type FromEnum arg :: Nat Source # type EnumFromTo arg arg :: [a] Source # type EnumFromThenTo arg arg arg :: [a] Source #
PEnum (Min a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Associated Types type Succ arg :: a Source # type Pred arg :: a Source # type ToEnum arg :: a Source # type FromEnum arg :: Nat Source # type EnumFromTo arg arg :: [a] Source # type EnumFromThenTo arg arg arg :: [a] Source #
PEnum (Max a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Associated Types type Succ arg :: a Source # type Pred arg :: a Source # type ToEnum arg :: a Source # type FromEnum arg :: Nat Source # type EnumFromTo arg arg :: [a] Source # type EnumFromThenTo arg arg arg :: [a] Source #
PEnum (First a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Associated Types type Succ arg :: a Source # type Pred arg :: a Source # type ToEnum arg :: a Source # type FromEnum arg :: Nat Source # type EnumFromTo arg arg :: [a] Source # type EnumFromThenTo arg arg arg :: [a] Source #
PEnum (Last a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Associated Types type Succ arg :: a Source # type Pred arg :: a Source # type ToEnum arg :: a Source # type FromEnum arg :: Nat Source # type EnumFromTo arg arg :: [a] Source # type EnumFromThenTo arg arg arg :: [a] Source #
PEnum (WrappedMonoid a) Source # |
Instance details Defined in Data.Singletons.Prelude.Semigroup Associated Types type Succ arg :: a Source # type Pred arg :: a Source # type ToEnum arg :: a Source # type FromEnum arg :: Nat Source # type EnumFromTo arg arg :: [a] Source # type EnumFromThenTo arg arg arg :: [a] Source #
PEnum (Identity a) Source # |
Instance details Defined in Data.Singletons.Prelude.Identity Associated Types type Succ arg :: a Source # type Pred arg :: a Source # type ToEnum arg :: a Source # type FromEnum arg :: Nat Source # type EnumFromTo arg arg :: [a] Source # type EnumFromThenTo arg arg arg :: [a] Source #
PEnum (Const a b) Source # |
Instance details Defined in Data.Singletons.Prelude.Const Associated Types type Succ arg :: a Source # type Pred arg :: a Source # type ToEnum arg :: a Source # type FromEnum arg :: Nat Source # type EnumFromTo arg arg :: [a] Source # type EnumFromThenTo arg arg arg :: [a] Source #

class SEnum a where Source #

Minimal complete definition

sToEnum, sFromEnum

Methods

sSucc :: forall (t :: a). Sing t -> Sing (Apply SuccSym0 t :: a) Source #

sPred :: forall (t :: a). Sing t -> Sing (Apply PredSym0 t :: a) Source #

sToEnum :: forall (t :: Nat). Sing t -> Sing (Apply ToEnumSym0 t :: a) Source #

sFromEnum :: forall (t :: a). Sing t -> Sing (Apply FromEnumSym0 t :: Nat) Source #

sEnumFromTo :: forall (t :: a) (t :: a). Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t :: [a]) Source #

sEnumFromThenTo :: forall (t :: a) (t :: a) (t :: a). Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t :: [a]) Source #

sSucc :: forall (t :: a). (Apply SuccSym0 t :: a) ~ Apply Succ_6989586621679741214Sym0 t => Sing t -> Sing (Apply SuccSym0 t :: a) Source #

sPred :: forall (t :: a). (Apply PredSym0 t :: a) ~ Apply Pred_6989586621679741223Sym0 t => Sing t -> Sing (Apply PredSym0 t :: a) Source #

sEnumFromTo :: forall (t :: a) (t :: a). (Apply (Apply EnumFromToSym0 t) t :: [a]) ~ Apply (Apply EnumFromTo_6989586621679741234Sym0 t) t => Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t :: [a]) Source #

sEnumFromThenTo :: forall (t :: a) (t :: a) (t :: a). (Apply (Apply (Apply EnumFromThenToSym0 t) t) t :: [a]) ~ Apply (Apply (Apply EnumFromThenTo_6989586621679741250Sym0 t) t) t => Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t :: [a]) Source #

Instances

SEnum Bool Source # |

Instance details

Defined in Data.Singletons.Prelude.Enum

Methods

sSucc :: Sing t -> Sing (Apply SuccSym0 t) Source #

sPred :: Sing t -> Sing (Apply PredSym0 t) Source #

sToEnum :: Sing t -> Sing (Apply ToEnumSym0 t) Source #

sFromEnum :: Sing t -> Sing (Apply FromEnumSym0 t) Source #

sEnumFromTo :: Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t) Source #

sEnumFromThenTo :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t) Source #

SEnum Ordering Source # |

Instance details

Defined in Data.Singletons.Prelude.Enum

Methods

sSucc :: Sing t -> Sing (Apply SuccSym0 t) Source #

sPred :: Sing t -> Sing (Apply PredSym0 t) Source #

sToEnum :: Sing t -> Sing (Apply ToEnumSym0 t) Source #

sFromEnum :: Sing t -> Sing (Apply FromEnumSym0 t) Source #

sEnumFromTo :: Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t) Source #

sEnumFromThenTo :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t) Source #

SEnum Nat Source # |

Instance details

Defined in Data.Singletons.Prelude.Enum

Methods

sSucc :: Sing t -> Sing (Apply SuccSym0 t) Source #

sPred :: Sing t -> Sing (Apply PredSym0 t) Source #

sToEnum :: Sing t -> Sing (Apply ToEnumSym0 t) Source #

sFromEnum :: Sing t -> Sing (Apply FromEnumSym0 t) Source #

sEnumFromTo :: Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t) Source #

sEnumFromThenTo :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t) Source #

SEnum () Source # |

Instance details

Defined in Data.Singletons.Prelude.Enum

Methods

sSucc :: Sing t -> Sing (Apply SuccSym0 t) Source #

sPred :: Sing t -> Sing (Apply PredSym0 t) Source #

sToEnum :: Sing t -> Sing (Apply ToEnumSym0 t) Source #

sFromEnum :: Sing t -> Sing (Apply FromEnumSym0 t) Source #

sEnumFromTo :: Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t) Source #

sEnumFromThenTo :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t) Source #

SEnum a => SEnum (Min a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup

Methods

sSucc :: Sing t -> Sing (Apply SuccSym0 t) Source #

sPred :: Sing t -> Sing (Apply PredSym0 t) Source #

sToEnum :: Sing t -> Sing (Apply ToEnumSym0 t) Source #

sFromEnum :: Sing t -> Sing (Apply FromEnumSym0 t) Source #

sEnumFromTo :: Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t) Source #

sEnumFromThenTo :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t) Source #

SEnum a => SEnum (Max a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup

Methods

sSucc :: Sing t -> Sing (Apply SuccSym0 t) Source #

sPred :: Sing t -> Sing (Apply PredSym0 t) Source #

sToEnum :: Sing t -> Sing (Apply ToEnumSym0 t) Source #

sFromEnum :: Sing t -> Sing (Apply FromEnumSym0 t) Source #

sEnumFromTo :: Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t) Source #

sEnumFromThenTo :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t) Source #

SEnum a => SEnum (First a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup

Methods

sSucc :: Sing t -> Sing (Apply SuccSym0 t) Source #

sPred :: Sing t -> Sing (Apply PredSym0 t) Source #

sToEnum :: Sing t -> Sing (Apply ToEnumSym0 t) Source #

sFromEnum :: Sing t -> Sing (Apply FromEnumSym0 t) Source #

sEnumFromTo :: Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t) Source #

sEnumFromThenTo :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t) Source #

SEnum a => SEnum (Last a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup

Methods

sSucc :: Sing t -> Sing (Apply SuccSym0 t) Source #

sPred :: Sing t -> Sing (Apply PredSym0 t) Source #

sToEnum :: Sing t -> Sing (Apply ToEnumSym0 t) Source #

sFromEnum :: Sing t -> Sing (Apply FromEnumSym0 t) Source #

sEnumFromTo :: Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t) Source #

sEnumFromThenTo :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t) Source #

SEnum a => SEnum (WrappedMonoid a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Semigroup

Methods

sSucc :: Sing t -> Sing (Apply SuccSym0 t) Source #

sPred :: Sing t -> Sing (Apply PredSym0 t) Source #

sToEnum :: Sing t -> Sing (Apply ToEnumSym0 t) Source #

sFromEnum :: Sing t -> Sing (Apply FromEnumSym0 t) Source #

sEnumFromTo :: Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t) Source #

sEnumFromThenTo :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t) Source #

SEnum a => SEnum (Identity a) Source # |

Instance details

Defined in Data.Singletons.Prelude.Identity

Methods

sSucc :: Sing t -> Sing (Apply SuccSym0 t) Source #

sPred :: Sing t -> Sing (Apply PredSym0 t) Source #

sToEnum :: Sing t -> Sing (Apply ToEnumSym0 t) Source #

sFromEnum :: Sing t -> Sing (Apply FromEnumSym0 t) Source #

sEnumFromTo :: Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t) Source #

sEnumFromThenTo :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t) Source #

SEnum a => SEnum (Const a b) Source # |

Instance details

Defined in Data.Singletons.Prelude.Const

Methods

sSucc :: Sing t -> Sing (Apply SuccSym0 t) Source #

sPred :: Sing t -> Sing (Apply PredSym0 t) Source #

sToEnum :: Sing t -> Sing (Apply ToEnumSym0 t) Source #

sFromEnum :: Sing t -> Sing (Apply FromEnumSym0 t) Source #

sEnumFromTo :: Sing t -> Sing t -> Sing (Apply (Apply EnumFromToSym0 t) t) Source #

sEnumFromThenTo :: Sing t -> Sing t -> Sing t -> Sing (Apply (Apply (Apply EnumFromThenToSym0 t) t) t) Source #

## Defunctionalization symbols

type MinBoundSym0 = MinBound Source #

type MaxBoundSym0 = MaxBound Source #

data SuccSym0 :: forall a6989586621679740900. (~>) a6989586621679740900 a6989586621679740900 Source #

Instances

SEnum a => SingI (SuccSym0 :: TyFun a a -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sing :: Sing SuccSym0 Source #
SuppressUnusedWarnings (SuccSym0 :: TyFun a6989586621679740900 a6989586621679740900 -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods suppressUnusedWarnings :: () Source #
type Apply (SuccSym0 :: TyFun a a -> Type) (arg6989586621679741184 :: a) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum type Apply (SuccSym0 :: TyFun a a -> Type) (arg6989586621679741184 :: a) = Succ arg6989586621679741184

type SuccSym1 (arg6989586621679741184 :: a6989586621679740900) = Succ arg6989586621679741184 Source #

data PredSym0 :: forall a6989586621679740900. (~>) a6989586621679740900 a6989586621679740900 Source #

Instances

SEnum a => SingI (PredSym0 :: TyFun a a -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sing :: Sing PredSym0 Source #
SuppressUnusedWarnings (PredSym0 :: TyFun a6989586621679740900 a6989586621679740900 -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods suppressUnusedWarnings :: () Source #
type Apply (PredSym0 :: TyFun a a -> Type) (arg6989586621679741186 :: a) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum type Apply (PredSym0 :: TyFun a a -> Type) (arg6989586621679741186 :: a) = Pred arg6989586621679741186

type PredSym1 (arg6989586621679741186 :: a6989586621679740900) = Pred arg6989586621679741186 Source #

data ToEnumSym0 :: forall a6989586621679740900. (~>) Nat a6989586621679740900 Source #

Instances

SEnum a => SingI (ToEnumSym0 :: TyFun Nat a -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sing :: Sing ToEnumSym0 Source #
SuppressUnusedWarnings (ToEnumSym0 :: TyFun Nat a6989586621679740900 -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods suppressUnusedWarnings :: () Source #
type Apply (ToEnumSym0 :: TyFun Nat k2 -> Type) (arg6989586621679741188 :: Nat) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum type Apply (ToEnumSym0 :: TyFun Nat k2 -> Type) (arg6989586621679741188 :: Nat) = (ToEnum arg6989586621679741188 :: k2)

type ToEnumSym1 (arg6989586621679741188 :: Nat) = ToEnum arg6989586621679741188 Source #

data FromEnumSym0 :: forall a6989586621679740900. (~>) a6989586621679740900 Nat Source #

Instances

SEnum a => SingI (FromEnumSym0 :: TyFun a Nat -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sing :: Sing FromEnumSym0 Source #
SuppressUnusedWarnings (FromEnumSym0 :: TyFun a6989586621679740900 Nat -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods suppressUnusedWarnings :: () Source #
type Apply (FromEnumSym0 :: TyFun a Nat -> Type) (arg6989586621679741190 :: a) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum type Apply (FromEnumSym0 :: TyFun a Nat -> Type) (arg6989586621679741190 :: a) = FromEnum arg6989586621679741190

type FromEnumSym1 (arg6989586621679741190 :: a6989586621679740900) = FromEnum arg6989586621679741190 Source #

data EnumFromToSym0 :: forall a6989586621679740900. (~>) a6989586621679740900 ((~>) a6989586621679740900 [a6989586621679740900]) Source #

Instances

SEnum a => SingI (EnumFromToSym0 :: TyFun a (a ~> [a]) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sing :: Sing EnumFromToSym0 Source #
SuppressUnusedWarnings (EnumFromToSym0 :: TyFun a6989586621679740900 (a6989586621679740900 ~> [a6989586621679740900]) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods suppressUnusedWarnings :: () Source #
type Apply (EnumFromToSym0 :: TyFun a6989586621679740900 (a6989586621679740900 ~> [a6989586621679740900]) -> Type) (arg6989586621679741192 :: a6989586621679740900) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum type Apply (EnumFromToSym0 :: TyFun a6989586621679740900 (a6989586621679740900 ~> [a6989586621679740900]) -> Type) (arg6989586621679741192 :: a6989586621679740900) = EnumFromToSym1 arg6989586621679741192

data EnumFromToSym1 (arg6989586621679741192 :: a6989586621679740900) :: (~>) a6989586621679740900 [a6989586621679740900] Source #

Instances

(SEnum a, SingI d) => SingI (EnumFromToSym1 d :: TyFun a [a] -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sing :: Sing (EnumFromToSym1 d) Source #
SuppressUnusedWarnings (EnumFromToSym1 arg6989586621679741192 :: TyFun a6989586621679740900 [a6989586621679740900] -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods suppressUnusedWarnings :: () Source #
type Apply (EnumFromToSym1 arg6989586621679741192 :: TyFun a [a] -> Type) (arg6989586621679741193 :: a) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum type Apply (EnumFromToSym1 arg6989586621679741192 :: TyFun a [a] -> Type) (arg6989586621679741193 :: a) = EnumFromTo arg6989586621679741192 arg6989586621679741193

type EnumFromToSym2 (arg6989586621679741192 :: a6989586621679740900) (arg6989586621679741193 :: a6989586621679740900) = EnumFromTo arg6989586621679741192 arg6989586621679741193 Source #

data EnumFromThenToSym0 :: forall a6989586621679740900. (~>) a6989586621679740900 ((~>) a6989586621679740900 ((~>) a6989586621679740900 [a6989586621679740900])) Source #

Instances

SEnum a => SingI (EnumFromThenToSym0 :: TyFun a (a ~> (a ~> [a])) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sing :: Sing EnumFromThenToSym0 Source #
SuppressUnusedWarnings (EnumFromThenToSym0 :: TyFun a6989586621679740900 (a6989586621679740900 ~> (a6989586621679740900 ~> [a6989586621679740900])) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods suppressUnusedWarnings :: () Source #
type Apply (EnumFromThenToSym0 :: TyFun a6989586621679740900 (a6989586621679740900 ~> (a6989586621679740900 ~> [a6989586621679740900])) -> Type) (arg6989586621679741196 :: a6989586621679740900) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum type Apply (EnumFromThenToSym0 :: TyFun a6989586621679740900 (a6989586621679740900 ~> (a6989586621679740900 ~> [a6989586621679740900])) -> Type) (arg6989586621679741196 :: a6989586621679740900) = EnumFromThenToSym1 arg6989586621679741196

data EnumFromThenToSym1 (arg6989586621679741196 :: a6989586621679740900) :: (~>) a6989586621679740900 ((~>) a6989586621679740900 [a6989586621679740900]) Source #

Instances

(SEnum a, SingI d) => SingI (EnumFromThenToSym1 d :: TyFun a (a ~> [a]) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sing :: Sing (EnumFromThenToSym1 d) Source #
SuppressUnusedWarnings (EnumFromThenToSym1 arg6989586621679741196 :: TyFun a6989586621679740900 (a6989586621679740900 ~> [a6989586621679740900]) -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods suppressUnusedWarnings :: () Source #
type Apply (EnumFromThenToSym1 arg6989586621679741196 :: TyFun a6989586621679740900 (a6989586621679740900 ~> [a6989586621679740900]) -> Type) (arg6989586621679741197 :: a6989586621679740900) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum type Apply (EnumFromThenToSym1 arg6989586621679741196 :: TyFun a6989586621679740900 (a6989586621679740900 ~> [a6989586621679740900]) -> Type) (arg6989586621679741197 :: a6989586621679740900) = EnumFromThenToSym2 arg6989586621679741196 arg6989586621679741197

data EnumFromThenToSym2 (arg6989586621679741196 :: a6989586621679740900) (arg6989586621679741197 :: a6989586621679740900) :: (~>) a6989586621679740900 [a6989586621679740900] Source #

Instances

(SEnum a, SingI d1, SingI d2) => SingI (EnumFromThenToSym2 d1 d2 :: TyFun a [a] -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods sing :: Sing (EnumFromThenToSym2 d1 d2) Source #
SuppressUnusedWarnings (EnumFromThenToSym2 arg6989586621679741197 arg6989586621679741196 :: TyFun a6989586621679740900 [a6989586621679740900] -> Type) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum Methods suppressUnusedWarnings :: () Source #
type Apply (EnumFromThenToSym2 arg6989586621679741197 arg6989586621679741196 :: TyFun a [a] -> Type) (arg6989586621679741198 :: a) Source # |
Instance details Defined in Data.Singletons.Prelude.Enum type Apply (EnumFromThenToSym2 arg6989586621679741197 arg6989586621679741196 :: TyFun a [a] -> Type) (arg6989586621679741198 :: a) = EnumFromThenTo arg6989586621679741197 arg6989586621679741196 arg6989586621679741198

type EnumFromThenToSym3 (arg6989586621679741196 :: a6989586621679740900) (arg6989586621679741197 :: a6989586621679740900) (arg6989586621679741198 :: a6989586621679740900) = EnumFromThenTo arg6989586621679741196 arg6989586621679741197 arg6989586621679741198 Source #