singletons-2.4.1: A framework for generating singleton types

Copyright(C) 2014 Jan Stolarek Richard Eisenberg
LicenseBSD-style (see LICENSE)
MaintainerJan Stolarek (jan.stolarek@p.lodz.pl)
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Data.Singletons.Prelude.Enum

Contents

Description

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

Synopsis

Documentation

class PBounded (a :: Type) #

Associated Types

type MinBound :: a #

type MaxBound :: a #

Instances
PBounded Bool # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type MinBound :: a #

type MaxBound :: a #

PBounded Ordering # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type MinBound :: a #

type MaxBound :: a #

PBounded () # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type MinBound :: a #

type MaxBound :: a #

PBounded (a, b) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type MinBound :: a #

type MaxBound :: a #

PBounded (a, b, c) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type MinBound :: a #

type MaxBound :: a #

PBounded (a, b, c, d) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type MinBound :: a #

type MaxBound :: a #

PBounded (a, b, c, d, e) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type MinBound :: a #

type MaxBound :: a #

PBounded (a, b, c, d, e, f) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type MinBound :: a #

type MaxBound :: a #

PBounded (a, b, c, d, e, f, g) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type MinBound :: a #

type MaxBound :: a #

class SBounded a where #

Minimal complete definition

sMinBound, sMaxBound

Instances
SBounded Bool # 
Instance details

Defined in Data.Singletons.Prelude.Enum

SBounded Ordering # 
Instance details

Defined in Data.Singletons.Prelude.Enum

SBounded () # 
Instance details

Defined in Data.Singletons.Prelude.Enum

(SBounded a, SBounded b) => SBounded (a, b) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

(SBounded a, SBounded b, SBounded c) => SBounded (a, b, c) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

(SBounded a, SBounded b, SBounded c, SBounded d) => SBounded (a, b, c, d) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

(SBounded a, SBounded b, SBounded c, SBounded d, SBounded e) => SBounded (a, b, c, d, e) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

(SBounded a, SBounded b, SBounded c, SBounded d, SBounded e, SBounded f) => SBounded (a, b, c, d, e, f) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

(SBounded a, SBounded b, SBounded c, SBounded d, SBounded e, SBounded f, SBounded g) => SBounded (a, b, c, d, e, f, g) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

class PEnum (a :: Type) #

Associated Types

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] #

Instances
PEnum Bool # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type Succ arg :: a #

type Pred arg :: a #

type ToEnum arg :: a #

type FromEnum arg :: Nat #

type EnumFromTo arg arg :: [a] #

type EnumFromThenTo arg arg arg :: [a] #

PEnum Ordering # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type Succ arg :: a #

type Pred arg :: a #

type ToEnum arg :: a #

type FromEnum arg :: Nat #

type EnumFromTo arg arg :: [a] #

type EnumFromThenTo arg arg arg :: [a] #

PEnum Nat # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type Succ arg :: a #

type Pred arg :: a #

type ToEnum arg :: a #

type FromEnum arg :: Nat #

type EnumFromTo arg arg :: [a] #

type EnumFromThenTo arg arg arg :: [a] #

PEnum () # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Associated Types

type Succ arg :: a #

type Pred arg :: a #

type ToEnum arg :: a #

type FromEnum arg :: Nat #

type EnumFromTo arg arg :: [a] #

type EnumFromThenTo arg arg arg :: [a] #

class SEnum a where #

Minimal complete definition

sToEnum, sFromEnum

Methods

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]) #

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

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

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

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

Instances
SEnum Bool # 
Instance details

Defined in Data.Singletons.Prelude.Enum

SEnum Ordering # 
Instance details

Defined in Data.Singletons.Prelude.Enum

SEnum Nat # 
Instance details

Defined in Data.Singletons.Prelude.Enum

SEnum () # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Defunctionalization symbols

data SuccSym0 (l :: TyFun a6989586621679869588 a6989586621679869588) #

Instances
SuppressUnusedWarnings (SuccSym0 :: TyFun a6989586621679869588 a6989586621679869588 -> *) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (SuccSym0 :: TyFun a a -> *) (l :: a) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (SuccSym0 :: TyFun a a -> *) (l :: a) = Succ l

type SuccSym1 (t :: a6989586621679869588) = Succ t #

data PredSym0 (l :: TyFun a6989586621679869588 a6989586621679869588) #

Instances
SuppressUnusedWarnings (PredSym0 :: TyFun a6989586621679869588 a6989586621679869588 -> *) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (PredSym0 :: TyFun a a -> *) (l :: a) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (PredSym0 :: TyFun a a -> *) (l :: a) = Pred l

type PredSym1 (t :: a6989586621679869588) = Pred t #

data ToEnumSym0 (l :: TyFun Nat a6989586621679869588) #

Instances
SuppressUnusedWarnings (ToEnumSym0 :: TyFun Nat a6989586621679869588 -> *) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (ToEnumSym0 :: TyFun Nat k2 -> *) (l :: Nat) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (ToEnumSym0 :: TyFun Nat k2 -> *) (l :: Nat) = (ToEnum l :: k2)

type ToEnumSym1 (t :: Nat) = ToEnum t #

data FromEnumSym0 (l :: TyFun a6989586621679869588 Nat) #

Instances
SuppressUnusedWarnings (FromEnumSym0 :: TyFun a6989586621679869588 Nat -> *) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (FromEnumSym0 :: TyFun a Nat -> *) (l :: a) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (FromEnumSym0 :: TyFun a Nat -> *) (l :: a) = FromEnum l

type FromEnumSym1 (t :: a6989586621679869588) = FromEnum t #

data EnumFromToSym0 (l :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type)) #

Instances
SuppressUnusedWarnings (EnumFromToSym0 :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> *) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (EnumFromToSym0 :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> *) (l :: a6989586621679869588) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (EnumFromToSym0 :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> *) (l :: a6989586621679869588) = EnumFromToSym1 l

data EnumFromToSym1 (l :: a6989586621679869588) (l :: TyFun a6989586621679869588 [a6989586621679869588]) #

Instances
SuppressUnusedWarnings (EnumFromToSym1 :: a6989586621679869588 -> TyFun a6989586621679869588 [a6989586621679869588] -> *) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (EnumFromToSym1 l1 :: TyFun a [a] -> *) (l2 :: a) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (EnumFromToSym1 l1 :: TyFun a [a] -> *) (l2 :: a) = EnumFromTo l1 l2

type EnumFromToSym2 (t :: a6989586621679869588) (t :: a6989586621679869588) = EnumFromTo t t #

data EnumFromThenToSym0 (l :: TyFun a6989586621679869588 (TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> Type)) #

Instances
SuppressUnusedWarnings (EnumFromThenToSym0 :: TyFun a6989586621679869588 (TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> Type) -> *) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (EnumFromThenToSym0 :: TyFun a6989586621679869588 (TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> Type) -> *) (l :: a6989586621679869588) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (EnumFromThenToSym0 :: TyFun a6989586621679869588 (TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> Type) -> *) (l :: a6989586621679869588) = EnumFromThenToSym1 l

data EnumFromThenToSym1 (l :: a6989586621679869588) (l :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type)) #

Instances
SuppressUnusedWarnings (EnumFromThenToSym1 :: a6989586621679869588 -> TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> *) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (EnumFromThenToSym1 l1 :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> *) (l2 :: a6989586621679869588) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (EnumFromThenToSym1 l1 :: TyFun a6989586621679869588 (TyFun a6989586621679869588 [a6989586621679869588] -> Type) -> *) (l2 :: a6989586621679869588) = EnumFromThenToSym2 l1 l2

data EnumFromThenToSym2 (l :: a6989586621679869588) (l :: a6989586621679869588) (l :: TyFun a6989586621679869588 [a6989586621679869588]) #

Instances
SuppressUnusedWarnings (EnumFromThenToSym2 :: a6989586621679869588 -> a6989586621679869588 -> TyFun a6989586621679869588 [a6989586621679869588] -> *) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (EnumFromThenToSym2 l1 l2 :: TyFun a [a] -> *) (l3 :: a) # 
Instance details

Defined in Data.Singletons.Prelude.Enum

type Apply (EnumFromThenToSym2 l1 l2 :: TyFun a [a] -> *) (l3 :: a) = EnumFromThenTo l1 l2 l3

type EnumFromThenToSym3 (t :: a6989586621679869588) (t :: a6989586621679869588) (t :: a6989586621679869588) = EnumFromThenTo t t t #