Generics.Deriving.Enum

generic-deriving-1.14.6: Generic programming library for generalised deriving.

Safe Haskell | Trustworthy
Language | Haskell2010

Generics.Deriving.Enum

Contents

- Generic enum class
- Default definitions for GEnum
- Internal enum class
- Generic Ix class
- Default definitions for GIx

Synopsis

- class GEnum a where
  - genum :: [a]
- genumDefault :: (Generic a, Enum' (Rep a)) => [a]
- toEnumDefault :: (Generic a, Enum' (Rep a)) => Int -> a
- fromEnumDefault :: (GEq a, Generic a, Enum' (Rep a)) => a -> Int
- class Enum' (f :: k -> Type) where
  - enum' :: forall (a :: k). [f a]
- class Ord a => GIx a where
  - range :: (a, a) -> [a]
  - index :: (a, a) -> a -> Int
  - inRange :: (a, a) -> a -> Bool
- rangeDefault :: (GEq a, Generic a, Enum' (Rep a)) => (a, a) -> [a]
- indexDefault :: (GEq a, Generic a, Enum' (Rep a)) => (a, a) -> a -> Int
- inRangeDefault :: (GEq a, Generic a, Enum' (Rep a)) => (a, a) -> a -> Bool

# Generic enum class

class GEnum a where #

Minimal complete definition

Nothing

Methods

genum :: [a] #

default genum :: (Generic a, Enum' (Rep a)) => [a] #

#### Instances

Instances details

GEnum All # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [All] #
GEnum Any # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Any] #
GEnum CBool # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CBool] #
GEnum CChar # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CChar] #
GEnum CClock # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CClock] #
GEnum CDouble # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CDouble] #
GEnum CFloat # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CFloat] #
GEnum CInt # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CInt] #
GEnum CIntMax # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CIntMax] #
GEnum CIntPtr # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CIntPtr] #
GEnum CLLong # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CLLong] #
GEnum CLong # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CLong] #
GEnum CPtrdiff # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CPtrdiff] #
GEnum CSChar # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CSChar] #
GEnum CSUSeconds # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CSUSeconds] #
GEnum CShort # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CShort] #
GEnum CSigAtomic # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CSigAtomic] #
GEnum CSize # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CSize] #
GEnum CTime # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CTime] #
GEnum CUChar # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CUChar] #
GEnum CUInt # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CUInt] #
GEnum CUIntMax # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CUIntMax] #
GEnum CUIntPtr # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CUIntPtr] #
GEnum CULLong # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CULLong] #
GEnum CULong # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CULong] #
GEnum CUSeconds # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CUSeconds] #
GEnum CUShort # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CUShort] #
GEnum CWchar # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CWchar] #
GEnum IntPtr # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [IntPtr] #
GEnum WordPtr # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [WordPtr] #
GEnum Associativity # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Associativity] #
GEnum Fixity # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Fixity] #
GEnum ExitCode # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [ExitCode] #
GEnum Int16 # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Int16] #
GEnum Int32 # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Int32] #
GEnum Int64 # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Int64] #
GEnum Int8 # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Int8] #
GEnum CBlkCnt # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CBlkCnt] #
GEnum CBlkSize # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CBlkSize] #
GEnum CCc # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CCc] #
GEnum CClockId # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CClockId] #
GEnum CDev # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CDev] #
GEnum CFsBlkCnt # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CFsBlkCnt] #
GEnum CFsFilCnt # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CFsFilCnt] #
GEnum CGid # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CGid] #
GEnum CId # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CId] #
GEnum CIno # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CIno] #
GEnum CKey # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CKey] #
GEnum CMode # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CMode] #
GEnum CNlink # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CNlink] #
GEnum COff # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [COff] #
GEnum CPid # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CPid] #
GEnum CRLim # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CRLim] #
GEnum CSpeed # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CSpeed] #
GEnum CSsize # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CSsize] #
GEnum CTcflag # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CTcflag] #
GEnum CUid # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [CUid] #
GEnum Fd # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Fd] #
GEnum Word16 # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Word16] #
GEnum Word32 # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Word32] #
GEnum Word64 # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Word64] #
GEnum Word8 # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Word8] #
GEnum Ordering # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Ordering] #
GEnum Integer # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Integer] #
GEnum Natural # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Natural] #
GEnum () # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [()] #
GEnum Bool # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Bool] #
GEnum Double # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Double] #
GEnum Float # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Float] #
GEnum Int # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Int] #
GEnum Word # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Word] #
GEnum a => GEnum (Complex a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Complex a] #
GEnum a => GEnum (First a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [First a] #
GEnum a => GEnum (Last a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Last a] #
GEnum a => GEnum (Max a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Max a] #
GEnum a => GEnum (Min a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Min a] #
GEnum m => GEnum (WrappedMonoid m) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [WrappedMonoid m] #
(Generic a, GEq a, Enum' (Rep a)) => GEnum (Default a) # | The `Enum` class in `base` is slightly different; it comprises `toEnum` and `fromEnum`. Generics.Deriving.Enum provides functions `toEnumDefault` and `fromEnumDefault`.
Instance details Defined in Generics.Deriving.Default Methods genum :: [Default a] #
GEnum a => GEnum (NonEmpty a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [NonEmpty a] #
GEnum a => GEnum (Identity a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Identity a] #
GEnum a => GEnum (First a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [First a] #
GEnum a => GEnum (Last a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Last a] #
GEnum a => GEnum (Dual a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Dual a] #
GEnum a => GEnum (Product a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Product a] #
GEnum a => GEnum (Sum a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Sum a] #
GEnum a => GEnum (ZipList a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [ZipList a] #
GEnum p => GEnum (Par1 p) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Par1 p] #
GEnum a => GEnum (Maybe a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Maybe a] #
GEnum a => GEnum [a] # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [[a]] #
(GEnum a, GEnum b) => GEnum (Arg a b) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Arg a b] #
(GEnum a, GEnum b) => GEnum (Either a b) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Either a b] #
GEnum (Proxy s) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Proxy s] #
GEnum (U1 p) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [U1 p] #
(GEnum a, GEnum b) => GEnum (a, b) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [(a, b)] #
GEnum a => GEnum (Const a b) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Const a b] #
GEnum (f a) => GEnum (Alt f a) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Alt f a] #
GEnum (f p) => GEnum (Rec1 f p) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [Rec1 f p] #
(GEnum a, GEnum b, GEnum c) => GEnum (a, b, c) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [(a, b, c)] #
(GEnum (f p), GEnum (g p)) => GEnum ((f :*: g) p) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [(f :*: g) p] #
(GEnum (f p), GEnum (g p)) => GEnum ((f :+: g) p) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [(f :+: g) p] #
GEnum c => GEnum (K1 i c p) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [K1 i c p] #
(GEnum a, GEnum b, GEnum c, GEnum d) => GEnum (a, b, c, d) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [(a, b, c, d)] #
GEnum (f (g p)) => GEnum ((f :.: g) p) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [(f :.: g) p] #
GEnum (f p) => GEnum (M1 i c f p) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [M1 i c f p] #
(GEnum a, GEnum b, GEnum c, GEnum d, GEnum e) => GEnum (a, b, c, d, e) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [(a, b, c, d, e)] #
(GEnum a, GEnum b, GEnum c, GEnum d, GEnum e, GEnum f) => GEnum (a, b, c, d, e, f) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [(a, b, c, d, e, f)] #
(GEnum a, GEnum b, GEnum c, GEnum d, GEnum e, GEnum f, GEnum g) => GEnum (a, b, c, d, e, f, g) # |
Instance details Defined in Generics.Deriving.Enum Methods genum :: [(a, b, c, d, e, f, g)] #

# Default definitions for GEnum

genumDefault :: (Generic a, Enum' (Rep a)) => [a] #

toEnumDefault :: (Generic a, Enum' (Rep a)) => Int -> a #

fromEnumDefault :: (GEq a, Generic a, Enum' (Rep a)) => a -> Int #

# Internal enum class

class Enum' (f :: k -> Type) where #

Methods

enum' :: forall (a :: k). [f a] #

#### Instances

Instances details

Enum' (U1 :: k -> Type) # |
Instance details Defined in Generics.Deriving.Enum Methods enum' :: forall (a :: k). [U1 a] #
(Enum' f, Enum' g) => Enum' (f :*: g :: k -> Type) # |
Instance details Defined in Generics.Deriving.Enum Methods enum' :: forall (a :: k). [(f :*: g) a] #
(Enum' f, Enum' g) => Enum' (f :+: g :: k -> Type) # |
Instance details Defined in Generics.Deriving.Enum Methods enum' :: forall (a :: k). [(f :+: g) a] #
GEnum c => Enum' (K1 i c :: k -> Type) # |
Instance details Defined in Generics.Deriving.Enum Methods enum' :: forall (a :: k). [K1 i c a] #
Enum' f => Enum' (M1 i c f :: k -> Type) # |
Instance details Defined in Generics.Deriving.Enum Methods enum' :: forall (a :: k). [M1 i c f a] #

# Generic Ix class

class Ord a => GIx a where #

Minimal complete definition

Nothing

Methods

range :: (a, a) -> [a] #

The list of values in the subrange defined by a bounding pair.

default range :: (GEq a, Generic a, Enum' (Rep a)) => (a, a) -> [a] #

index :: (a, a) -> a -> Int #

The position of a subscript in the subrange.

default index :: (GEq a, Generic a, Enum' (Rep a)) => (a, a) -> a -> Int #

inRange :: (a, a) -> a -> Bool #

Returns `True` the given subscript lies in the range defined the bounding pair.

default inRange :: (GEq a, Generic a, Enum' (Rep a)) => (a, a) -> a -> Bool #

#### Instances

Instances details

GIx All # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (All, All) -> [All] # index :: (All, All) -> All -> Int # inRange :: (All, All) -> All -> Bool #
GIx Any # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Any, Any) -> [Any] # index :: (Any, Any) -> Any -> Int # inRange :: (Any, Any) -> Any -> Bool #
GIx CBool # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CBool, CBool) -> [CBool] # index :: (CBool, CBool) -> CBool -> Int # inRange :: (CBool, CBool) -> CBool -> Bool #
GIx CChar # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CChar, CChar) -> [CChar] # index :: (CChar, CChar) -> CChar -> Int # inRange :: (CChar, CChar) -> CChar -> Bool #
GIx CInt # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CInt, CInt) -> [CInt] # index :: (CInt, CInt) -> CInt -> Int # inRange :: (CInt, CInt) -> CInt -> Bool #
GIx CIntMax # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CIntMax, CIntMax) -> [CIntMax] # index :: (CIntMax, CIntMax) -> CIntMax -> Int # inRange :: (CIntMax, CIntMax) -> CIntMax -> Bool #
GIx CIntPtr # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CIntPtr, CIntPtr) -> [CIntPtr] # index :: (CIntPtr, CIntPtr) -> CIntPtr -> Int # inRange :: (CIntPtr, CIntPtr) -> CIntPtr -> Bool #
GIx CLLong # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CLLong, CLLong) -> [CLLong] # index :: (CLLong, CLLong) -> CLLong -> Int # inRange :: (CLLong, CLLong) -> CLLong -> Bool #
GIx CLong # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CLong, CLong) -> [CLong] # index :: (CLong, CLong) -> CLong -> Int # inRange :: (CLong, CLong) -> CLong -> Bool #
GIx CPtrdiff # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CPtrdiff, CPtrdiff) -> [CPtrdiff] # index :: (CPtrdiff, CPtrdiff) -> CPtrdiff -> Int # inRange :: (CPtrdiff, CPtrdiff) -> CPtrdiff -> Bool #
GIx CSChar # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CSChar, CSChar) -> [CSChar] # index :: (CSChar, CSChar) -> CSChar -> Int # inRange :: (CSChar, CSChar) -> CSChar -> Bool #
GIx CShort # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CShort, CShort) -> [CShort] # index :: (CShort, CShort) -> CShort -> Int # inRange :: (CShort, CShort) -> CShort -> Bool #
GIx CSigAtomic # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CSigAtomic, CSigAtomic) -> [CSigAtomic] # index :: (CSigAtomic, CSigAtomic) -> CSigAtomic -> Int # inRange :: (CSigAtomic, CSigAtomic) -> CSigAtomic -> Bool #
GIx CSize # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CSize, CSize) -> [CSize] # index :: (CSize, CSize) -> CSize -> Int # inRange :: (CSize, CSize) -> CSize -> Bool #
GIx CUChar # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CUChar, CUChar) -> [CUChar] # index :: (CUChar, CUChar) -> CUChar -> Int # inRange :: (CUChar, CUChar) -> CUChar -> Bool #
GIx CUInt # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CUInt, CUInt) -> [CUInt] # index :: (CUInt, CUInt) -> CUInt -> Int # inRange :: (CUInt, CUInt) -> CUInt -> Bool #
GIx CUIntMax # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CUIntMax, CUIntMax) -> [CUIntMax] # index :: (CUIntMax, CUIntMax) -> CUIntMax -> Int # inRange :: (CUIntMax, CUIntMax) -> CUIntMax -> Bool #
GIx CUIntPtr # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CUIntPtr, CUIntPtr) -> [CUIntPtr] # index :: (CUIntPtr, CUIntPtr) -> CUIntPtr -> Int # inRange :: (CUIntPtr, CUIntPtr) -> CUIntPtr -> Bool #
GIx CULLong # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CULLong, CULLong) -> [CULLong] # index :: (CULLong, CULLong) -> CULLong -> Int # inRange :: (CULLong, CULLong) -> CULLong -> Bool #
GIx CULong # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CULong, CULong) -> [CULong] # index :: (CULong, CULong) -> CULong -> Int # inRange :: (CULong, CULong) -> CULong -> Bool #
GIx CUShort # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CUShort, CUShort) -> [CUShort] # index :: (CUShort, CUShort) -> CUShort -> Int # inRange :: (CUShort, CUShort) -> CUShort -> Bool #
GIx CWchar # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CWchar, CWchar) -> [CWchar] # index :: (CWchar, CWchar) -> CWchar -> Int # inRange :: (CWchar, CWchar) -> CWchar -> Bool #
GIx IntPtr # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (IntPtr, IntPtr) -> [IntPtr] # index :: (IntPtr, IntPtr) -> IntPtr -> Int # inRange :: (IntPtr, IntPtr) -> IntPtr -> Bool #
GIx WordPtr # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (WordPtr, WordPtr) -> [WordPtr] # index :: (WordPtr, WordPtr) -> WordPtr -> Int # inRange :: (WordPtr, WordPtr) -> WordPtr -> Bool #
GIx Associativity # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Associativity, Associativity) -> [Associativity] # index :: (Associativity, Associativity) -> Associativity -> Int # inRange :: (Associativity, Associativity) -> Associativity -> Bool #
GIx Fixity # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Fixity, Fixity) -> [Fixity] # index :: (Fixity, Fixity) -> Fixity -> Int # inRange :: (Fixity, Fixity) -> Fixity -> Bool #
GIx ExitCode # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (ExitCode, ExitCode) -> [ExitCode] # index :: (ExitCode, ExitCode) -> ExitCode -> Int # inRange :: (ExitCode, ExitCode) -> ExitCode -> Bool #
GIx Int16 # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Int16, Int16) -> [Int16] # index :: (Int16, Int16) -> Int16 -> Int # inRange :: (Int16, Int16) -> Int16 -> Bool #
GIx Int32 # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Int32, Int32) -> [Int32] # index :: (Int32, Int32) -> Int32 -> Int # inRange :: (Int32, Int32) -> Int32 -> Bool #
GIx Int64 # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Int64, Int64) -> [Int64] # index :: (Int64, Int64) -> Int64 -> Int # inRange :: (Int64, Int64) -> Int64 -> Bool #
GIx Int8 # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Int8, Int8) -> [Int8] # index :: (Int8, Int8) -> Int8 -> Int # inRange :: (Int8, Int8) -> Int8 -> Bool #
GIx CBlkCnt # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CBlkCnt, CBlkCnt) -> [CBlkCnt] # index :: (CBlkCnt, CBlkCnt) -> CBlkCnt -> Int # inRange :: (CBlkCnt, CBlkCnt) -> CBlkCnt -> Bool #
GIx CBlkSize # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CBlkSize, CBlkSize) -> [CBlkSize] # index :: (CBlkSize, CBlkSize) -> CBlkSize -> Int # inRange :: (CBlkSize, CBlkSize) -> CBlkSize -> Bool #
GIx CClockId # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CClockId, CClockId) -> [CClockId] # index :: (CClockId, CClockId) -> CClockId -> Int # inRange :: (CClockId, CClockId) -> CClockId -> Bool #
GIx CFsBlkCnt # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CFsBlkCnt, CFsBlkCnt) -> [CFsBlkCnt] # index :: (CFsBlkCnt, CFsBlkCnt) -> CFsBlkCnt -> Int # inRange :: (CFsBlkCnt, CFsBlkCnt) -> CFsBlkCnt -> Bool #
GIx CFsFilCnt # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CFsFilCnt, CFsFilCnt) -> [CFsFilCnt] # index :: (CFsFilCnt, CFsFilCnt) -> CFsFilCnt -> Int # inRange :: (CFsFilCnt, CFsFilCnt) -> CFsFilCnt -> Bool #
GIx CGid # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CGid, CGid) -> [CGid] # index :: (CGid, CGid) -> CGid -> Int # inRange :: (CGid, CGid) -> CGid -> Bool #
GIx CId # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CId, CId) -> [CId] # index :: (CId, CId) -> CId -> Int # inRange :: (CId, CId) -> CId -> Bool #
GIx CIno # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CIno, CIno) -> [CIno] # index :: (CIno, CIno) -> CIno -> Int # inRange :: (CIno, CIno) -> CIno -> Bool #
GIx CKey # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CKey, CKey) -> [CKey] # index :: (CKey, CKey) -> CKey -> Int # inRange :: (CKey, CKey) -> CKey -> Bool #
GIx CMode # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CMode, CMode) -> [CMode] # index :: (CMode, CMode) -> CMode -> Int # inRange :: (CMode, CMode) -> CMode -> Bool #
GIx CNlink # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CNlink, CNlink) -> [CNlink] # index :: (CNlink, CNlink) -> CNlink -> Int # inRange :: (CNlink, CNlink) -> CNlink -> Bool #
GIx COff # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (COff, COff) -> [COff] # index :: (COff, COff) -> COff -> Int # inRange :: (COff, COff) -> COff -> Bool #
GIx CPid # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CPid, CPid) -> [CPid] # index :: (CPid, CPid) -> CPid -> Int # inRange :: (CPid, CPid) -> CPid -> Bool #
GIx CRLim # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CRLim, CRLim) -> [CRLim] # index :: (CRLim, CRLim) -> CRLim -> Int # inRange :: (CRLim, CRLim) -> CRLim -> Bool #
GIx CSsize # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CSsize, CSsize) -> [CSsize] # index :: (CSsize, CSsize) -> CSsize -> Int # inRange :: (CSsize, CSsize) -> CSsize -> Bool #
GIx CTcflag # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CTcflag, CTcflag) -> [CTcflag] # index :: (CTcflag, CTcflag) -> CTcflag -> Int # inRange :: (CTcflag, CTcflag) -> CTcflag -> Bool #
GIx CUid # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (CUid, CUid) -> [CUid] # index :: (CUid, CUid) -> CUid -> Int # inRange :: (CUid, CUid) -> CUid -> Bool #
GIx Fd # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Fd, Fd) -> [Fd] # index :: (Fd, Fd) -> Fd -> Int # inRange :: (Fd, Fd) -> Fd -> Bool #
GIx Word16 # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Word16, Word16) -> [Word16] # index :: (Word16, Word16) -> Word16 -> Int # inRange :: (Word16, Word16) -> Word16 -> Bool #
GIx Word32 # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Word32, Word32) -> [Word32] # index :: (Word32, Word32) -> Word32 -> Int # inRange :: (Word32, Word32) -> Word32 -> Bool #
GIx Word64 # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Word64, Word64) -> [Word64] # index :: (Word64, Word64) -> Word64 -> Int # inRange :: (Word64, Word64) -> Word64 -> Bool #
GIx Word8 # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Word8, Word8) -> [Word8] # index :: (Word8, Word8) -> Word8 -> Int # inRange :: (Word8, Word8) -> Word8 -> Bool #
GIx Ordering # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Ordering, Ordering) -> [Ordering] # index :: (Ordering, Ordering) -> Ordering -> Int # inRange :: (Ordering, Ordering) -> Ordering -> Bool #
GIx Integer # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Integer, Integer) -> [Integer] # index :: (Integer, Integer) -> Integer -> Int # inRange :: (Integer, Integer) -> Integer -> Bool #
GIx Natural # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Natural, Natural) -> [Natural] # index :: (Natural, Natural) -> Natural -> Int # inRange :: (Natural, Natural) -> Natural -> Bool #
GIx () # |
Instance details Defined in Generics.Deriving.Enum Methods range :: ((), ()) -> [()] # index :: ((), ()) -> () -> Int # inRange :: ((), ()) -> () -> Bool #
GIx Bool # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Bool, Bool) -> [Bool] # index :: (Bool, Bool) -> Bool -> Int # inRange :: (Bool, Bool) -> Bool -> Bool #
GIx Int # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Int, Int) -> [Int] # index :: (Int, Int) -> Int -> Int # inRange :: (Int, Int) -> Int -> Bool #
GIx Word # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Word, Word) -> [Word] # index :: (Word, Word) -> Word -> Int # inRange :: (Word, Word) -> Word -> Bool #
(GEq a, GEnum a, GIx a) => GIx (First a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (First a, First a) -> [First a] # index :: (First a, First a) -> First a -> Int # inRange :: (First a, First a) -> First a -> Bool #
(GEq a, GEnum a, GIx a) => GIx (Last a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Last a, Last a) -> [Last a] # index :: (Last a, Last a) -> Last a -> Int # inRange :: (Last a, Last a) -> Last a -> Bool #
(GEq a, GEnum a, GIx a) => GIx (Max a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Max a, Max a) -> [Max a] # index :: (Max a, Max a) -> Max a -> Int # inRange :: (Max a, Max a) -> Max a -> Bool #
(GEq a, GEnum a, GIx a) => GIx (Min a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Min a, Min a) -> [Min a] # index :: (Min a, Min a) -> Min a -> Int # inRange :: (Min a, Min a) -> Min a -> Bool #
(GEq m, GEnum m, GIx m) => GIx (WrappedMonoid m) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (WrappedMonoid m, WrappedMonoid m) -> [WrappedMonoid m] # index :: (WrappedMonoid m, WrappedMonoid m) -> WrappedMonoid m -> Int # inRange :: (WrappedMonoid m, WrappedMonoid m) -> WrappedMonoid m -> Bool #
(GEq a, GEnum a, GIx a) => GIx (NonEmpty a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (NonEmpty a, NonEmpty a) -> [NonEmpty a] # index :: (NonEmpty a, NonEmpty a) -> NonEmpty a -> Int # inRange :: (NonEmpty a, NonEmpty a) -> NonEmpty a -> Bool #
(GEq a, GEnum a, GIx a) => GIx (Identity a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Identity a, Identity a) -> [Identity a] # index :: (Identity a, Identity a) -> Identity a -> Int # inRange :: (Identity a, Identity a) -> Identity a -> Bool #
(GEq a, GEnum a, GIx a) => GIx (First a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (First a, First a) -> [First a] # index :: (First a, First a) -> First a -> Int # inRange :: (First a, First a) -> First a -> Bool #
(GEq a, GEnum a, GIx a) => GIx (Last a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Last a, Last a) -> [Last a] # index :: (Last a, Last a) -> Last a -> Int # inRange :: (Last a, Last a) -> Last a -> Bool #
(GEq a, GEnum a, GIx a) => GIx (Dual a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Dual a, Dual a) -> [Dual a] # index :: (Dual a, Dual a) -> Dual a -> Int # inRange :: (Dual a, Dual a) -> Dual a -> Bool #
(GEq a, GEnum a, GIx a) => GIx (Product a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Product a, Product a) -> [Product a] # index :: (Product a, Product a) -> Product a -> Int # inRange :: (Product a, Product a) -> Product a -> Bool #
(GEq a, GEnum a, GIx a) => GIx (Sum a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Sum a, Sum a) -> [Sum a] # index :: (Sum a, Sum a) -> Sum a -> Int # inRange :: (Sum a, Sum a) -> Sum a -> Bool #
(GEq a, GEnum a, GIx a) => GIx (Maybe a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Maybe a, Maybe a) -> [Maybe a] # index :: (Maybe a, Maybe a) -> Maybe a -> Int # inRange :: (Maybe a, Maybe a) -> Maybe a -> Bool #
(GEq a, GEnum a, GIx a) => GIx [a] # |
Instance details Defined in Generics.Deriving.Enum Methods range :: ([a], [a]) -> [[a]] # index :: ([a], [a]) -> [a] -> Int # inRange :: ([a], [a]) -> [a] -> Bool #
(GEq a, GEnum a, GIx a, GEnum b) => GIx (Arg a b) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Arg a b, Arg a b) -> [Arg a b] # index :: (Arg a b, Arg a b) -> Arg a b -> Int # inRange :: (Arg a b, Arg a b) -> Arg a b -> Bool #
(GEq a, GEnum a, GIx a, GEq b, GEnum b, GIx b) => GIx (Either a b) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Either a b, Either a b) -> [Either a b] # index :: (Either a b, Either a b) -> Either a b -> Int # inRange :: (Either a b, Either a b) -> Either a b -> Bool #
GIx (Proxy s) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Proxy s, Proxy s) -> [Proxy s] # index :: (Proxy s, Proxy s) -> Proxy s -> Int # inRange :: (Proxy s, Proxy s) -> Proxy s -> Bool #
(GEq a, GEnum a, GIx a, GEq b, GEnum b, GIx b) => GIx (a, b) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: ((a, b), (a, b)) -> [(a, b)] # index :: ((a, b), (a, b)) -> (a, b) -> Int # inRange :: ((a, b), (a, b)) -> (a, b) -> Bool #
(GEq (f a), GEnum (f a), GIx (f a)) => GIx (Alt f a) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: (Alt f a, Alt f a) -> [Alt f a] # index :: (Alt f a, Alt f a) -> Alt f a -> Int # inRange :: (Alt f a, Alt f a) -> Alt f a -> Bool #
(GEq a, GEnum a, GIx a, GEq b, GEnum b, GIx b, GEq c, GEnum c, GIx c) => GIx (a, b, c) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: ((a, b, c), (a, b, c)) -> [(a, b, c)] # index :: ((a, b, c), (a, b, c)) -> (a, b, c) -> Int # inRange :: ((a, b, c), (a, b, c)) -> (a, b, c) -> Bool #
(GEq a, GEnum a, GIx a, GEq b, GEnum b, GIx b, GEq c, GEnum c, GIx c, GEq d, GEnum d, GIx d) => GIx (a, b, c, d) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: ((a, b, c, d), (a, b, c, d)) -> [(a, b, c, d)] # index :: ((a, b, c, d), (a, b, c, d)) -> (a, b, c, d) -> Int # inRange :: ((a, b, c, d), (a, b, c, d)) -> (a, b, c, d) -> Bool #
(GEq a, GEnum a, GIx a, GEq b, GEnum b, GIx b, GEq c, GEnum c, GIx c, GEq d, GEnum d, GIx d, GEq e, GEnum e, GIx e) => GIx (a, b, c, d, e) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: ((a, b, c, d, e), (a, b, c, d, e)) -> [(a, b, c, d, e)] # index :: ((a, b, c, d, e), (a, b, c, d, e)) -> (a, b, c, d, e) -> Int # inRange :: ((a, b, c, d, e), (a, b, c, d, e)) -> (a, b, c, d, e) -> Bool #
(GEq a, GEnum a, GIx a, GEq b, GEnum b, GIx b, GEq c, GEnum c, GIx c, GEq d, GEnum d, GIx d, GEq e, GEnum e, GIx e, GEq f, GEnum f, GIx f) => GIx (a, b, c, d, e, f) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: ((a, b, c, d, e, f), (a, b, c, d, e, f)) -> [(a, b, c, d, e, f)] # index :: ((a, b, c, d, e, f), (a, b, c, d, e, f)) -> (a, b, c, d, e, f) -> Int # inRange :: ((a, b, c, d, e, f), (a, b, c, d, e, f)) -> (a, b, c, d, e, f) -> Bool #
(GEq a, GEnum a, GIx a, GEq b, GEnum b, GIx b, GEq c, GEnum c, GIx c, GEq d, GEnum d, GIx d, GEq e, GEnum e, GIx e, GEq f, GEnum f, GIx f, GEq g, GEnum g, GIx g) => GIx (a, b, c, d, e, f, g) # |
Instance details Defined in Generics.Deriving.Enum Methods range :: ((a, b, c, d, e, f, g), (a, b, c, d, e, f, g)) -> [(a, b, c, d, e, f, g)] # index :: ((a, b, c, d, e, f, g), (a, b, c, d, e, f, g)) -> (a, b, c, d, e, f, g) -> Int # inRange :: ((a, b, c, d, e, f, g), (a, b, c, d, e, f, g)) -> (a, b, c, d, e, f, g) -> Bool #

# Default definitions for GIx

rangeDefault :: (GEq a, Generic a, Enum' (Rep a)) => (a, a) -> [a] #

indexDefault :: (GEq a, Generic a, Enum' (Rep a)) => (a, a) -> a -> Int #

inRangeDefault :: (GEq a, Generic a, Enum' (Rep a)) => (a, a) -> a -> Bool #