singletons-2.3.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 # 

Associated Types

type MinBound Bool :: a #

type MaxBound Bool :: a #

PBounded Ordering # 

Associated Types

type MinBound Ordering :: a #

type MaxBound Ordering :: a #

PBounded () # 

Associated Types

type MinBound () :: a #

type MaxBound () :: a #

PBounded (a, b) # 

Associated Types

type MinBound (a, b) :: a #

type MaxBound (a, b) :: a #

PBounded (a, b, c) # 

Associated Types

type MinBound (a, b, c) :: a #

type MaxBound (a, b, c) :: a #

PBounded (a, b, c, d) # 

Associated Types

type MinBound (a, b, c, d) :: a #

type MaxBound (a, b, c, d) :: a #

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

Associated Types

type MinBound (a, b, c, d, e) :: a #

type MaxBound (a, b, c, d, e) :: a #

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

Associated Types

type MinBound (a, b, c, d, e, f) :: a #

type MaxBound (a, b, c, d, e, f) :: a #

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

Associated Types

type MinBound (a, b, c, d, e, f, g) :: a #

type MaxBound (a, b, c, d, e, f, g) :: 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 # 

Associated Types

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

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

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

type FromEnum Bool (arg :: Bool) :: Nat #

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

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

PEnum Ordering # 

Associated Types

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

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

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

type FromEnum Ordering (arg :: Ordering) :: Nat #

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

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

PEnum Nat # 

Associated Types

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

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

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

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

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

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

PEnum () # 

Associated Types

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

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

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

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

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

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

Defunctionalization symbols

data SuccSym0 (l :: TyFun a6989586621679673920 a6989586621679673920) #

Instances

SuppressUnusedWarnings (TyFun a6989586621679673920 a6989586621679673920 -> *) (SuccSym0 a6989586621679673920) # 

Methods

suppressUnusedWarnings :: Proxy (SuccSym0 a6989586621679673920) t -> () #

type Apply a a (SuccSym0 a) l # 
type Apply a a (SuccSym0 a) l = Succ a l

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

data PredSym0 (l :: TyFun a6989586621679673920 a6989586621679673920) #

Instances

SuppressUnusedWarnings (TyFun a6989586621679673920 a6989586621679673920 -> *) (PredSym0 a6989586621679673920) # 

Methods

suppressUnusedWarnings :: Proxy (PredSym0 a6989586621679673920) t -> () #

type Apply a a (PredSym0 a) l # 
type Apply a a (PredSym0 a) l = Pred a l

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

data ToEnumSym0 (l :: TyFun Nat a6989586621679673920) #

Instances

SuppressUnusedWarnings (TyFun Nat a6989586621679673920 -> *) (ToEnumSym0 a6989586621679673920) # 

Methods

suppressUnusedWarnings :: Proxy (ToEnumSym0 a6989586621679673920) t -> () #

type Apply Nat k2 (ToEnumSym0 k2) l # 
type Apply Nat k2 (ToEnumSym0 k2) l = ToEnum k2 l

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

data FromEnumSym0 (l :: TyFun a6989586621679673920 Nat) #

Instances

SuppressUnusedWarnings (TyFun a6989586621679673920 Nat -> *) (FromEnumSym0 a6989586621679673920) # 

Methods

suppressUnusedWarnings :: Proxy (FromEnumSym0 a6989586621679673920) t -> () #

type Apply a Nat (FromEnumSym0 a) l # 
type Apply a Nat (FromEnumSym0 a) l = FromEnum a l

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

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

Instances

SuppressUnusedWarnings (TyFun a6989586621679673920 (TyFun a6989586621679673920 [a6989586621679673920] -> Type) -> *) (EnumFromToSym0 a6989586621679673920) # 

Methods

suppressUnusedWarnings :: Proxy (EnumFromToSym0 a6989586621679673920) t -> () #

type Apply a6989586621679673920 (TyFun a6989586621679673920 [a6989586621679673920] -> Type) (EnumFromToSym0 a6989586621679673920) l # 
type Apply a6989586621679673920 (TyFun a6989586621679673920 [a6989586621679673920] -> Type) (EnumFromToSym0 a6989586621679673920) l = EnumFromToSym1 a6989586621679673920 l

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

Instances

SuppressUnusedWarnings (a6989586621679673920 -> TyFun a6989586621679673920 [a6989586621679673920] -> *) (EnumFromToSym1 a6989586621679673920) # 

Methods

suppressUnusedWarnings :: Proxy (EnumFromToSym1 a6989586621679673920) t -> () #

type Apply a [a] (EnumFromToSym1 a l1) l2 # 
type Apply a [a] (EnumFromToSym1 a l1) l2 = EnumFromTo a l1 l2

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

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

Instances

SuppressUnusedWarnings (TyFun a6989586621679673920 (TyFun a6989586621679673920 (TyFun a6989586621679673920 [a6989586621679673920] -> Type) -> Type) -> *) (EnumFromThenToSym0 a6989586621679673920) # 

Methods

suppressUnusedWarnings :: Proxy (EnumFromThenToSym0 a6989586621679673920) t -> () #

type Apply a6989586621679673920 (TyFun a6989586621679673920 (TyFun a6989586621679673920 [a6989586621679673920] -> Type) -> Type) (EnumFromThenToSym0 a6989586621679673920) l # 
type Apply a6989586621679673920 (TyFun a6989586621679673920 (TyFun a6989586621679673920 [a6989586621679673920] -> Type) -> Type) (EnumFromThenToSym0 a6989586621679673920) l = EnumFromThenToSym1 a6989586621679673920 l

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

Instances

SuppressUnusedWarnings (a6989586621679673920 -> TyFun a6989586621679673920 (TyFun a6989586621679673920 [a6989586621679673920] -> Type) -> *) (EnumFromThenToSym1 a6989586621679673920) # 

Methods

suppressUnusedWarnings :: Proxy (EnumFromThenToSym1 a6989586621679673920) t -> () #

type Apply a6989586621679673920 (TyFun a6989586621679673920 [a6989586621679673920] -> Type) (EnumFromThenToSym1 a6989586621679673920 l1) l2 # 
type Apply a6989586621679673920 (TyFun a6989586621679673920 [a6989586621679673920] -> Type) (EnumFromThenToSym1 a6989586621679673920 l1) l2 = EnumFromThenToSym2 a6989586621679673920 l1 l2

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

Instances

SuppressUnusedWarnings (a6989586621679673920 -> a6989586621679673920 -> TyFun a6989586621679673920 [a6989586621679673920] -> *) (EnumFromThenToSym2 a6989586621679673920) # 

Methods

suppressUnusedWarnings :: Proxy (EnumFromThenToSym2 a6989586621679673920) t -> () #

type Apply a [a] (EnumFromThenToSym2 a l1 l2) l3 # 
type Apply a [a] (EnumFromThenToSym2 a l1 l2) l3 = EnumFromThenTo a l1 l2 l3

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