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

Minimal complete definition

sMinBound, sMaxBound

Instances
SBounded Bool Source # 
Instance details

Defined in Data.Singletons.Prelude.Enum

SBounded Ordering Source # 
Instance details

Defined in Data.Singletons.Prelude.Enum

SBounded () Source # 
Instance details

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

(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

(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

(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

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 #

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_6989586621679917443Sym0 t) => Sing t -> Sing (Apply SuccSym0 t :: a) Source #

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

sEnumFromTo :: forall (t :: a) (t :: a). ((Apply (Apply EnumFromToSym0 t) t :: [a]) ~ Apply (Apply EnumFromTo_6989586621679917474Sym0 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_6989586621679917504Sym0 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

SEnum Ordering Source # 
Instance details

Defined in Data.Singletons.Prelude.Enum

SEnum Nat Source # 
Instance details

Defined in Data.Singletons.Prelude.Enum

SEnum () Source # 
Instance details

Defined in Data.Singletons.Prelude.Enum

Defunctionalization symbols

data SuccSym0 (l :: TyFun a6989586621679916796 a6989586621679916796) Source #

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

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

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

type SuccSym1 (t :: a6989586621679916796) = Succ t Source #

data PredSym0 (l :: TyFun a6989586621679916796 a6989586621679916796) Source #

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

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

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

type PredSym1 (t :: a6989586621679916796) = Pred t Source #

data ToEnumSym0 (l :: TyFun Nat a6989586621679916796) Source #

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

Defined in Data.Singletons.Prelude.Enum

type Apply (ToEnumSym0 :: TyFun Nat k2 -> *) (l :: Nat) Source # 
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 Source #

data FromEnumSym0 (l :: TyFun a6989586621679916796 Nat) Source #

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

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

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

type FromEnumSym1 (t :: a6989586621679916796) = FromEnum t Source #

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

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

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

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

data EnumFromToSym1 (l :: a6989586621679916796) (l :: TyFun a6989586621679916796 [a6989586621679916796]) Source #

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

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

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

type EnumFromToSym2 (t :: a6989586621679916796) (t :: a6989586621679916796) = EnumFromTo t t Source #

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

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

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

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

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

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

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

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

data EnumFromThenToSym2 (l :: a6989586621679916796) (l :: a6989586621679916796) (l :: TyFun a6989586621679916796 [a6989586621679916796]) Source #

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

Defined in Data.Singletons.Prelude.Enum

type Apply (EnumFromThenToSym2 l1 l2 :: TyFun a [a] -> *) (l3 :: a) Source # 
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 :: a6989586621679916796) (t :: a6989586621679916796) (t :: a6989586621679916796) = EnumFromThenTo t t t Source #