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.Promotion.Prelude.Enum

Contents

Description

Exports promoted versions of Enum and Bounded

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

Defunctionalization symbols

data SuccSym0 (l :: TyFun a6989586621679868770 a6989586621679868770) #

Instances
SuppressUnusedWarnings (SuccSym0 :: TyFun a6989586621679868770 a6989586621679868770 -> *) # 
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 :: a6989586621679868770) = Succ t #

data PredSym0 (l :: TyFun a6989586621679868770 a6989586621679868770) #

Instances
SuppressUnusedWarnings (PredSym0 :: TyFun a6989586621679868770 a6989586621679868770 -> *) # 
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 :: a6989586621679868770) = Pred t #

data ToEnumSym0 (l :: TyFun Nat a6989586621679868770) #

Instances
SuppressUnusedWarnings (ToEnumSym0 :: TyFun Nat a6989586621679868770 -> *) # 
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 a6989586621679868770 Nat) #

Instances
SuppressUnusedWarnings (FromEnumSym0 :: TyFun a6989586621679868770 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 :: a6989586621679868770) = FromEnum t #

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

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

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

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

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

Instances
SuppressUnusedWarnings (EnumFromToSym1 :: a6989586621679868770 -> TyFun a6989586621679868770 [a6989586621679868770] -> *) # 
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 :: a6989586621679868770) (t :: a6989586621679868770) = EnumFromTo t t #

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

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

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

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

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

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

Defined in Data.Singletons.Prelude.Enum

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

Defined in Data.Singletons.Prelude.Enum

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

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

Instances
SuppressUnusedWarnings (EnumFromThenToSym2 :: a6989586621679868770 -> a6989586621679868770 -> TyFun a6989586621679868770 [a6989586621679868770] -> *) # 
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 :: a6989586621679868770) (t :: a6989586621679868770) (t :: a6989586621679868770) = EnumFromThenTo t t t #