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

Associated Types

type MinBound :: a Source #

type MaxBound :: a Source #

Instances

PBounded Bool Source # 

Associated Types

type MinBound Bool :: a Source #

type MaxBound Bool :: a Source #

PBounded Ordering Source # 

Associated Types

type MinBound Ordering :: a Source #

type MaxBound Ordering :: a Source #

PBounded () Source # 

Associated Types

type MinBound () :: a Source #

type MaxBound () :: a Source #

PBounded (a, b) Source # 

Associated Types

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

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

PBounded (a, b, c) Source # 

Associated Types

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

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

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

Associated Types

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

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

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

Associated Types

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

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

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

Associated Types

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

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

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

Associated Types

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

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

Associated Types

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

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

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

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

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

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

PEnum Ordering Source # 

Associated Types

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

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

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

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

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

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

PEnum Nat Source # 

Associated Types

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

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

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

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

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

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

PEnum () Source # 

Associated Types

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

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

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

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

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

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

Defunctionalization symbols

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

Instances

SuppressUnusedWarnings (TyFun a6989586621679809090 a6989586621679809090 -> *) (SuccSym0 a6989586621679809090) Source # 

Methods

suppressUnusedWarnings :: Proxy (SuccSym0 a6989586621679809090) t -> () Source #

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

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

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

Instances

SuppressUnusedWarnings (TyFun a6989586621679809090 a6989586621679809090 -> *) (PredSym0 a6989586621679809090) Source # 

Methods

suppressUnusedWarnings :: Proxy (PredSym0 a6989586621679809090) t -> () Source #

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

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

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

Instances

SuppressUnusedWarnings (TyFun Nat a6989586621679809090 -> *) (ToEnumSym0 a6989586621679809090) Source # 

Methods

suppressUnusedWarnings :: Proxy (ToEnumSym0 a6989586621679809090) t -> () Source #

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

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

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

Instances

SuppressUnusedWarnings (TyFun a6989586621679809090 Nat -> *) (FromEnumSym0 a6989586621679809090) Source # 

Methods

suppressUnusedWarnings :: Proxy (FromEnumSym0 a6989586621679809090) t -> () Source #

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

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

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

Instances

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

Methods

suppressUnusedWarnings :: Proxy (EnumFromToSym0 a6989586621679809090) t -> () Source #

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

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

Instances

SuppressUnusedWarnings (a6989586621679809090 -> TyFun a6989586621679809090 [a6989586621679809090] -> *) (EnumFromToSym1 a6989586621679809090) Source # 

Methods

suppressUnusedWarnings :: Proxy (EnumFromToSym1 a6989586621679809090) t -> () Source #

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

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

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

Instances

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

Methods

suppressUnusedWarnings :: Proxy (EnumFromThenToSym0 a6989586621679809090) t -> () Source #

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

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

Instances

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

Methods

suppressUnusedWarnings :: Proxy (EnumFromThenToSym1 a6989586621679809090) t -> () Source #

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

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

Instances

SuppressUnusedWarnings (a6989586621679809090 -> a6989586621679809090 -> TyFun a6989586621679809090 [a6989586621679809090] -> *) (EnumFromThenToSym2 a6989586621679809090) Source # 

Methods

suppressUnusedWarnings :: Proxy (EnumFromThenToSym2 a6989586621679809090) t -> () Source #

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

type EnumFromThenToSym3 (t :: a6989586621679809090) (t :: a6989586621679809090) (t :: a6989586621679809090) = EnumFromThenTo t t t Source #