base-4.16.0.0: Basic libraries
Copyright(c) The University of Glasgow 1992-2002
Licensesee libraries/base/LICENSE
Maintainercvs-ghc@haskell.org
Stabilityinternal
Portabilitynon-portable (GHC extensions)
Safe HaskellTrustworthy
LanguageHaskell2010

GHC.Enum

Description

The Enum and Bounded classes.

Synopsis

Documentation

class Bounded a where Source #

The Bounded class is used to name the upper and lower limits of a type. Ord is not a superclass of Bounded since types that are not totally ordered may also have upper and lower bounds.

The Bounded class may be derived for any enumeration type; minBound is the first constructor listed in the data declaration and maxBound is the last. Bounded may also be derived for single-constructor datatypes whose constituent types are in Bounded.

Methods

minBound :: a Source #

maxBound :: a Source #

Instances

Instances details
Bounded All #

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Bounded Any #

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Bounded CBool # 
Instance details

Defined in Foreign.C.Types

Bounded CChar # 
Instance details

Defined in Foreign.C.Types

Bounded CInt # 
Instance details

Defined in Foreign.C.Types

Bounded CIntMax # 
Instance details

Defined in Foreign.C.Types

Bounded CIntPtr # 
Instance details

Defined in Foreign.C.Types

Bounded CLLong # 
Instance details

Defined in Foreign.C.Types

Bounded CLong # 
Instance details

Defined in Foreign.C.Types

Bounded CPtrdiff # 
Instance details

Defined in Foreign.C.Types

Bounded CSChar # 
Instance details

Defined in Foreign.C.Types

Bounded CShort # 
Instance details

Defined in Foreign.C.Types

Bounded CSigAtomic # 
Instance details

Defined in Foreign.C.Types

Bounded CSize # 
Instance details

Defined in Foreign.C.Types

Bounded CUChar # 
Instance details

Defined in Foreign.C.Types

Bounded CUInt # 
Instance details

Defined in Foreign.C.Types

Bounded CUIntMax # 
Instance details

Defined in Foreign.C.Types

Bounded CUIntPtr # 
Instance details

Defined in Foreign.C.Types

Bounded CULLong # 
Instance details

Defined in Foreign.C.Types

Bounded CULong # 
Instance details

Defined in Foreign.C.Types

Bounded CUShort # 
Instance details

Defined in Foreign.C.Types

Bounded CWchar # 
Instance details

Defined in Foreign.C.Types

Bounded IntPtr # 
Instance details

Defined in Foreign.Ptr

Bounded WordPtr # 
Instance details

Defined in Foreign.Ptr

Bounded ByteOrder #

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Bounded Associativity #

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Bounded DecidedStrictness #

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Bounded SourceStrictness #

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Bounded SourceUnpackedness #

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Bounded Int16 #

Since: base-2.1

Instance details

Defined in GHC.Int

Bounded Int32 #

Since: base-2.1

Instance details

Defined in GHC.Int

Bounded Int64 #

Since: base-2.1

Instance details

Defined in GHC.Int

Bounded Int8 #

Since: base-2.1

Instance details

Defined in GHC.Int

Bounded GeneralCategory #

Since: base-2.1

Instance details

Defined in GHC.Unicode

Bounded Word16 #

Since: base-2.1

Instance details

Defined in GHC.Word

Bounded Word32 #

Since: base-2.1

Instance details

Defined in GHC.Word

Bounded Word64 #

Since: base-2.1

Instance details

Defined in GHC.Word

Bounded Word8 #

Since: base-2.1

Instance details

Defined in GHC.Word

Bounded CBlkCnt # 
Instance details

Defined in System.Posix.Types

Bounded CBlkSize # 
Instance details

Defined in System.Posix.Types

Bounded CClockId # 
Instance details

Defined in System.Posix.Types

Bounded CDev # 
Instance details

Defined in System.Posix.Types

Bounded CFsBlkCnt # 
Instance details

Defined in System.Posix.Types

Bounded CFsFilCnt # 
Instance details

Defined in System.Posix.Types

Bounded CGid # 
Instance details

Defined in System.Posix.Types

Bounded CId # 
Instance details

Defined in System.Posix.Types

Bounded CIno # 
Instance details

Defined in System.Posix.Types

Bounded CKey # 
Instance details

Defined in System.Posix.Types

Bounded CMode # 
Instance details

Defined in System.Posix.Types

Bounded CNfds # 
Instance details

Defined in System.Posix.Types

Bounded CNlink # 
Instance details

Defined in System.Posix.Types

Bounded COff # 
Instance details

Defined in System.Posix.Types

Bounded CPid # 
Instance details

Defined in System.Posix.Types

Bounded CRLim # 
Instance details

Defined in System.Posix.Types

Bounded CSocklen # 
Instance details

Defined in System.Posix.Types

Bounded CSsize # 
Instance details

Defined in System.Posix.Types

Bounded CTcflag # 
Instance details

Defined in System.Posix.Types

Bounded CUid # 
Instance details

Defined in System.Posix.Types

Bounded Fd # 
Instance details

Defined in System.Posix.Types

Bounded Ordering #

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded () #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: () Source #

maxBound :: () Source #

Bounded Bool #

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded Char #

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded Int #

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded Levity #

Since: base-4.16.0.0

Instance details

Defined in GHC.Enum

Bounded VecCount #

Since: base-4.10.0.0

Instance details

Defined in GHC.Enum

Bounded VecElem #

Since: base-4.10.0.0

Instance details

Defined in GHC.Enum

Bounded Word #

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded a => Bounded (And a) #

Since: base-4.16

Instance details

Defined in Data.Bits

Bounded a => Bounded (Iff a) #

Since: base-4.16

Instance details

Defined in Data.Bits

Bounded a => Bounded (Ior a) #

Since: base-4.16

Instance details

Defined in Data.Bits

Bounded a => Bounded (Xor a) #

Since: base-4.16

Instance details

Defined in Data.Bits

Bounded a => Bounded (Identity a) #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Identity

Bounded a => Bounded (Down a) #

Swaps minBound and maxBound of the underlying type.

Since: base-4.14.0.0

Instance details

Defined in Data.Ord

Bounded a => Bounded (First a) #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Bounded a => Bounded (Last a) #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Bounded a => Bounded (Max a) #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Bounded a => Bounded (Min a) #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Bounded m => Bounded (WrappedMonoid m) #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Bounded a => Bounded (Dual a) #

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Bounded a => Bounded (Product a) #

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Bounded a => Bounded (Sum a) #

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Bounded (Proxy t) #

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

(Bounded a, Bounded b) => Bounded (a, b) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b) Source #

maxBound :: (a, b) Source #

Bounded a => Bounded (Const a b) #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

minBound :: Const a b Source #

maxBound :: Const a b Source #

(Applicative f, Bounded a) => Bounded (Ap f a) #

Since: base-4.12.0.0

Instance details

Defined in Data.Monoid

Methods

minBound :: Ap f a Source #

maxBound :: Ap f a Source #

Coercible a b => Bounded (Coercion a b) #

Since: base-4.7.0.0

Instance details

Defined in Data.Type.Coercion

a ~ b => Bounded (a :~: b) #

Since: base-4.7.0.0

Instance details

Defined in Data.Type.Equality

Methods

minBound :: a :~: b Source #

maxBound :: a :~: b Source #

(Bounded a, Bounded b, Bounded c) => Bounded (a, b, c) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c) Source #

maxBound :: (a, b, c) Source #

a ~~ b => Bounded (a :~~: b) #

Since: base-4.10.0.0

Instance details

Defined in Data.Type.Equality

Methods

minBound :: a :~~: b Source #

maxBound :: a :~~: b Source #

(Bounded a, Bounded b, Bounded c, Bounded d) => Bounded (a, b, c, d) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d) Source #

maxBound :: (a, b, c, d) Source #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e) => Bounded (a, b, c, d, e) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e) Source #

maxBound :: (a, b, c, d, e) Source #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f) => Bounded (a, b, c, d, e, f) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

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

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

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g) => Bounded (a, b, c, d, e, f, g) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

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

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

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h) => Bounded (a, b, c, d, e, f, g, h) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h) Source #

maxBound :: (a, b, c, d, e, f, g, h) Source #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i) => Bounded (a, b, c, d, e, f, g, h, i) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i) Source #

maxBound :: (a, b, c, d, e, f, g, h, i) Source #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j) => Bounded (a, b, c, d, e, f, g, h, i, j) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i, j) Source #

maxBound :: (a, b, c, d, e, f, g, h, i, j) Source #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k) => Bounded (a, b, c, d, e, f, g, h, i, j, k) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i, j, k) Source #

maxBound :: (a, b, c, d, e, f, g, h, i, j, k) Source #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l) => Bounded (a, b, c, d, e, f, g, h, i, j, k, l) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i, j, k, l) Source #

maxBound :: (a, b, c, d, e, f, g, h, i, j, k, l) Source #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l, Bounded m) => Bounded (a, b, c, d, e, f, g, h, i, j, k, l, m) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m) Source #

maxBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m) Source #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l, Bounded m, Bounded n) => Bounded (a, b, c, d, e, f, g, h, i, j, k, l, m, n) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source #

maxBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source #

(Bounded a, Bounded b, Bounded c, Bounded d, Bounded e, Bounded f, Bounded g, Bounded h, Bounded i, Bounded j, Bounded k, Bounded l, Bounded m, Bounded n, Bounded o) => Bounded (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source #

maxBound :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source #

class Enum a where Source #

Class Enum defines operations on sequentially ordered types.

The enumFrom... methods are used in Haskell's translation of arithmetic sequences.

Instances of Enum may be derived for any enumeration type (types whose constructors have no fields). The nullary constructors are assumed to be numbered left-to-right by fromEnum from 0 through n-1. See Chapter 10 of the Haskell Report for more details.

For any type that is an instance of class Bounded as well as Enum, the following should hold:

   enumFrom     x   = enumFromTo     x maxBound
   enumFromThen x y = enumFromThenTo x y bound
     where
       bound | fromEnum y >= fromEnum x = maxBound
             | otherwise                = minBound

Minimal complete definition

toEnum, fromEnum

Methods

succ :: a -> a Source #

the successor of a value. For numeric types, succ adds 1.

pred :: a -> a Source #

the predecessor of a value. For numeric types, pred subtracts 1.

toEnum :: Int -> a Source #

Convert from an Int.

fromEnum :: a -> Int Source #

Convert to an Int. It is implementation-dependent what fromEnum returns when applied to a value that is too large to fit in an Int.

enumFrom :: a -> [a] Source #

Used in Haskell's translation of [n..] with [n..] = enumFrom n, a possible implementation being enumFrom n = n : enumFrom (succ n). For example:

  • enumFrom 4 :: [Integer] = [4,5,6,7,...]
  • enumFrom 6 :: [Int] = [6,7,8,9,...,maxBound :: Int]

enumFromThen :: a -> a -> [a] Source #

Used in Haskell's translation of [n,n'..] with [n,n'..] = enumFromThen n n', a possible implementation being enumFromThen n n' = n : n' : worker (f x) (f x n'), worker s v = v : worker s (s v), x = fromEnum n' - fromEnum n and f n y | n > 0 = f (n - 1) (succ y) | n < 0 = f (n + 1) (pred y) | otherwise = y For example:

  • enumFromThen 4 6 :: [Integer] = [4,6,8,10...]
  • enumFromThen 6 2 :: [Int] = [6,2,-2,-6,...,minBound :: Int]

enumFromTo :: a -> a -> [a] Source #

Used in Haskell's translation of [n..m] with [n..m] = enumFromTo n m, a possible implementation being enumFromTo n m | n <= m = n : enumFromTo (succ n) m | otherwise = []. For example:

  • enumFromTo 6 10 :: [Int] = [6,7,8,9,10]
  • enumFromTo 42 1 :: [Integer] = []

enumFromThenTo :: a -> a -> a -> [a] Source #

Used in Haskell's translation of [n,n'..m] with [n,n'..m] = enumFromThenTo n n' m, a possible implementation being enumFromThenTo n n' m = worker (f x) (c x) n m, x = fromEnum n' - fromEnum n, c x = bool (>=) ((x 0) f n y | n > 0 = f (n - 1) (succ y) | n < 0 = f (n + 1) (pred y) | otherwise = y and worker s c v m | c v m = v : worker s c (s v) m | otherwise = [] For example:

  • enumFromThenTo 4 2 -6 :: [Integer] = [4,2,0,-2,-4,-6]
  • enumFromThenTo 6 8 2 :: [Int] = []

Instances

Instances details
Enum CBool # 
Instance details

Defined in Foreign.C.Types

Enum CChar # 
Instance details

Defined in Foreign.C.Types

Enum CClock # 
Instance details

Defined in Foreign.C.Types

Enum CDouble # 
Instance details

Defined in Foreign.C.Types

Enum CFloat # 
Instance details

Defined in Foreign.C.Types

Enum CInt # 
Instance details

Defined in Foreign.C.Types

Enum CIntMax # 
Instance details

Defined in Foreign.C.Types

Enum CIntPtr # 
Instance details

Defined in Foreign.C.Types

Enum CLLong # 
Instance details

Defined in Foreign.C.Types

Enum CLong # 
Instance details

Defined in Foreign.C.Types

Enum CPtrdiff # 
Instance details

Defined in Foreign.C.Types

Enum CSChar # 
Instance details

Defined in Foreign.C.Types

Enum CSUSeconds # 
Instance details

Defined in Foreign.C.Types

Enum CShort # 
Instance details

Defined in Foreign.C.Types

Enum CSigAtomic # 
Instance details

Defined in Foreign.C.Types

Enum CSize # 
Instance details

Defined in Foreign.C.Types

Enum CTime # 
Instance details

Defined in Foreign.C.Types

Enum CUChar # 
Instance details

Defined in Foreign.C.Types

Enum CUInt # 
Instance details

Defined in Foreign.C.Types

Enum CUIntMax # 
Instance details

Defined in Foreign.C.Types

Enum CUIntPtr # 
Instance details

Defined in Foreign.C.Types

Enum CULLong # 
Instance details

Defined in Foreign.C.Types

Enum CULong # 
Instance details

Defined in Foreign.C.Types

Enum CUSeconds # 
Instance details

Defined in Foreign.C.Types

Enum CUShort # 
Instance details

Defined in Foreign.C.Types

Enum CWchar # 
Instance details

Defined in Foreign.C.Types

Enum IntPtr # 
Instance details

Defined in Foreign.Ptr

Enum WordPtr # 
Instance details

Defined in Foreign.Ptr

Enum ByteOrder #

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Enum Associativity #

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Enum DecidedStrictness #

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Enum SourceStrictness #

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Enum SourceUnpackedness #

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Enum SeekMode #

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.Device

Enum IOMode #

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.IOMode

Enum Int16 #

Since: base-2.1

Instance details

Defined in GHC.Int

Enum Int32 #

Since: base-2.1

Instance details

Defined in GHC.Int

Enum Int64 #

Since: base-2.1

Instance details

Defined in GHC.Int

Enum Int8 #

Since: base-2.1

Instance details

Defined in GHC.Int

Enum DoCostCentres #

Since: base-4.8.0.0

Instance details

Defined in GHC.RTS.Flags

Enum DoHeapProfile #

Since: base-4.8.0.0

Instance details

Defined in GHC.RTS.Flags

Enum DoTrace #

Since: base-4.8.0.0

Instance details

Defined in GHC.RTS.Flags

Enum GiveGCStats #

Since: base-4.8.0.0

Instance details

Defined in GHC.RTS.Flags

Enum IoSubSystem #

Since: base-4.9.0.0

Instance details

Defined in GHC.RTS.Flags

Enum GeneralCategory #

Since: base-2.1

Instance details

Defined in GHC.Unicode

Enum Word16 #

Since: base-2.1

Instance details

Defined in GHC.Word

Enum Word32 #

Since: base-2.1

Instance details

Defined in GHC.Word

Enum Word64 #

Since: base-2.1

Instance details

Defined in GHC.Word

Enum Word8 #

Since: base-2.1

Instance details

Defined in GHC.Word

Enum CBlkCnt # 
Instance details

Defined in System.Posix.Types

Enum CBlkSize # 
Instance details

Defined in System.Posix.Types

Enum CCc # 
Instance details

Defined in System.Posix.Types

Enum CClockId # 
Instance details

Defined in System.Posix.Types

Enum CDev # 
Instance details

Defined in System.Posix.Types

Enum CFsBlkCnt # 
Instance details

Defined in System.Posix.Types

Enum CFsFilCnt # 
Instance details

Defined in System.Posix.Types

Enum CGid # 
Instance details

Defined in System.Posix.Types

Enum CId # 
Instance details

Defined in System.Posix.Types

Enum CIno # 
Instance details

Defined in System.Posix.Types

Enum CKey # 
Instance details

Defined in System.Posix.Types

Enum CMode # 
Instance details

Defined in System.Posix.Types

Enum CNfds # 
Instance details

Defined in System.Posix.Types

Enum CNlink # 
Instance details

Defined in System.Posix.Types

Enum COff # 
Instance details

Defined in System.Posix.Types

Enum CPid # 
Instance details

Defined in System.Posix.Types

Enum CRLim # 
Instance details

Defined in System.Posix.Types

Enum CSocklen # 
Instance details

Defined in System.Posix.Types

Enum CSpeed # 
Instance details

Defined in System.Posix.Types

Enum CSsize # 
Instance details

Defined in System.Posix.Types

Enum CTcflag # 
Instance details

Defined in System.Posix.Types

Enum CUid # 
Instance details

Defined in System.Posix.Types

Enum Fd # 
Instance details

Defined in System.Posix.Types

Methods

succ :: Fd -> Fd Source #

pred :: Fd -> Fd Source #

toEnum :: Int -> Fd Source #

fromEnum :: Fd -> Int Source #

enumFrom :: Fd -> [Fd] Source #

enumFromThen :: Fd -> Fd -> [Fd] Source #

enumFromTo :: Fd -> Fd -> [Fd] Source #

enumFromThenTo :: Fd -> Fd -> Fd -> [Fd] Source #

Enum Ordering #

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Integer #

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Natural #

Since: base-4.8.0.0

Instance details

Defined in GHC.Enum

Enum () #

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

succ :: () -> () Source #

pred :: () -> () Source #

toEnum :: Int -> () Source #

fromEnum :: () -> Int Source #

enumFrom :: () -> [()] Source #

enumFromThen :: () -> () -> [()] Source #

enumFromTo :: () -> () -> [()] Source #

enumFromThenTo :: () -> () -> () -> [()] Source #

Enum Bool #

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Char #

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Double #

Since: base-2.1

Instance details

Defined in GHC.Float

Enum Float #

Since: base-2.1

Instance details

Defined in GHC.Float

Enum Int #

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Levity #

Since: base-4.16.0.0

Instance details

Defined in GHC.Enum

Enum VecCount #

Since: base-4.10.0.0

Instance details

Defined in GHC.Enum

Enum VecElem #

Since: base-4.10.0.0

Instance details

Defined in GHC.Enum

Enum Word #

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum a => Enum (And a) #

Since: base-4.16

Instance details

Defined in Data.Bits

Methods

succ :: And a -> And a Source #

pred :: And a -> And a Source #

toEnum :: Int -> And a Source #

fromEnum :: And a -> Int Source #

enumFrom :: And a -> [And a] Source #

enumFromThen :: And a -> And a -> [And a] Source #

enumFromTo :: And a -> And a -> [And a] Source #

enumFromThenTo :: And a -> And a -> And a -> [And a] Source #

Enum a => Enum (Iff a) #

Since: base-4.16

Instance details

Defined in Data.Bits

Methods

succ :: Iff a -> Iff a Source #

pred :: Iff a -> Iff a Source #

toEnum :: Int -> Iff a Source #

fromEnum :: Iff a -> Int Source #

enumFrom :: Iff a -> [Iff a] Source #

enumFromThen :: Iff a -> Iff a -> [Iff a] Source #

enumFromTo :: Iff a -> Iff a -> [Iff a] Source #

enumFromThenTo :: Iff a -> Iff a -> Iff a -> [Iff a] Source #

Enum a => Enum (Ior a) #

Since: base-4.16

Instance details

Defined in Data.Bits

Methods

succ :: Ior a -> Ior a Source #

pred :: Ior a -> Ior a Source #

toEnum :: Int -> Ior a Source #

fromEnum :: Ior a -> Int Source #

enumFrom :: Ior a -> [Ior a] Source #

enumFromThen :: Ior a -> Ior a -> [Ior a] Source #

enumFromTo :: Ior a -> Ior a -> [Ior a] Source #

enumFromThenTo :: Ior a -> Ior a -> Ior a -> [Ior a] Source #

Enum a => Enum (Xor a) #

Since: base-4.16

Instance details

Defined in Data.Bits

Methods

succ :: Xor a -> Xor a Source #

pred :: Xor a -> Xor a Source #

toEnum :: Int -> Xor a Source #

fromEnum :: Xor a -> Int Source #

enumFrom :: Xor a -> [Xor a] Source #

enumFromThen :: Xor a -> Xor a -> [Xor a] Source #

enumFromTo :: Xor a -> Xor a -> [Xor a] Source #

enumFromThenTo :: Xor a -> Xor a -> Xor a -> [Xor a] Source #

Enum a => Enum (Identity a) #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Identity

Enum a => Enum (First a) #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

succ :: First a -> First a Source #

pred :: First a -> First a Source #

toEnum :: Int -> First a Source #

fromEnum :: First a -> Int Source #

enumFrom :: First a -> [First a] Source #

enumFromThen :: First a -> First a -> [First a] Source #

enumFromTo :: First a -> First a -> [First a] Source #

enumFromThenTo :: First a -> First a -> First a -> [First a] Source #

Enum a => Enum (Last a) #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

succ :: Last a -> Last a Source #

pred :: Last a -> Last a Source #

toEnum :: Int -> Last a Source #

fromEnum :: Last a -> Int Source #

enumFrom :: Last a -> [Last a] Source #

enumFromThen :: Last a -> Last a -> [Last a] Source #

enumFromTo :: Last a -> Last a -> [Last a] Source #

enumFromThenTo :: Last a -> Last a -> Last a -> [Last a] Source #

Enum a => Enum (Max a) #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

succ :: Max a -> Max a Source #

pred :: Max a -> Max a Source #

toEnum :: Int -> Max a Source #

fromEnum :: Max a -> Int Source #

enumFrom :: Max a -> [Max a] Source #

enumFromThen :: Max a -> Max a -> [Max a] Source #

enumFromTo :: Max a -> Max a -> [Max a] Source #

enumFromThenTo :: Max a -> Max a -> Max a -> [Max a] Source #

Enum a => Enum (Min a) #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

succ :: Min a -> Min a Source #

pred :: Min a -> Min a Source #

toEnum :: Int -> Min a Source #

fromEnum :: Min a -> Int Source #

enumFrom :: Min a -> [Min a] Source #

enumFromThen :: Min a -> Min a -> [Min a] Source #

enumFromTo :: Min a -> Min a -> [Min a] Source #

enumFromThenTo :: Min a -> Min a -> Min a -> [Min a] Source #

Enum a => Enum (WrappedMonoid a) #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Integral a => Enum (Ratio a) #

Since: base-2.0.1

Instance details

Defined in GHC.Real

Methods

succ :: Ratio a -> Ratio a Source #

pred :: Ratio a -> Ratio a Source #

toEnum :: Int -> Ratio a Source #

fromEnum :: Ratio a -> Int Source #

enumFrom :: Ratio a -> [Ratio a] Source #

enumFromThen :: Ratio a -> Ratio a -> [Ratio a] Source #

enumFromTo :: Ratio a -> Ratio a -> [Ratio a] Source #

enumFromThenTo :: Ratio a -> Ratio a -> Ratio a -> [Ratio a] Source #

Enum (Fixed a) #

Recall that, for numeric types, succ and pred typically add and subtract 1, respectively. This is not true in the case of Fixed, whose successor and predecessor functions intuitively return the "next" and "previous" values in the enumeration. The results of these functions thus depend on the resolution of the Fixed value. For example, when enumerating values of resolution 10^-3 of type Milli = Fixed E3,

  succ (0.000 :: Milli) == 1.001

and likewise

  pred (0.000 :: Milli) == -0.001

In other words, succ and pred increment and decrement a fixed-precision value by the least amount such that the value's resolution is unchanged. For example, 10^-12 is the smallest (positive) amount that can be added to a value of type Pico = Fixed E12 without changing its resolution, and so

  succ (0.000000000000 :: Pico) == 0.000000000001

and similarly

  pred (0.000000000000 :: Pico) == -0.000000000001

This is worth bearing in mind when defining Fixed arithmetic sequences. In particular, you may be forgiven for thinking the sequence

  [1..10] :: [Pico]

evaluates to [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] :: [Pico].

However, this is not true. On the contrary, similarly to the above implementations of succ and pred, enumFromTo :: Pico -> Pico -> [Pico] has a "step size" of 10^-12. Hence, the list [1..10] :: [Pico] has the form

  [1.000000000000, 1.00000000001, 1.00000000002, ..., 10.000000000000]

and contains 9 * 10^12 + 1 values.

Since: base-2.1

Instance details

Defined in Data.Fixed

Methods

succ :: Fixed a -> Fixed a Source #

pred :: Fixed a -> Fixed a Source #

toEnum :: Int -> Fixed a Source #

fromEnum :: Fixed a -> Int Source #

enumFrom :: Fixed a -> [Fixed a] Source #

enumFromThen :: Fixed a -> Fixed a -> [Fixed a] Source #

enumFromTo :: Fixed a -> Fixed a -> [Fixed a] Source #

enumFromThenTo :: Fixed a -> Fixed a -> Fixed a -> [Fixed a] Source #

Enum (Proxy s) #

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

Methods

succ :: Proxy s -> Proxy s Source #

pred :: Proxy s -> Proxy s Source #

toEnum :: Int -> Proxy s Source #

fromEnum :: Proxy s -> Int Source #

enumFrom :: Proxy s -> [Proxy s] Source #

enumFromThen :: Proxy s -> Proxy s -> [Proxy s] Source #

enumFromTo :: Proxy s -> Proxy s -> [Proxy s] Source #

enumFromThenTo :: Proxy s -> Proxy s -> Proxy s -> [Proxy s] Source #

Enum a => Enum (Const a b) #

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Const

Methods

succ :: Const a b -> Const a b Source #

pred :: Const a b -> Const a b Source #

toEnum :: Int -> Const a b Source #

fromEnum :: Const a b -> Int Source #

enumFrom :: Const a b -> [Const a b] Source #

enumFromThen :: Const a b -> Const a b -> [Const a b] Source #

enumFromTo :: Const a b -> Const a b -> [Const a b] Source #

enumFromThenTo :: Const a b -> Const a b -> Const a b -> [Const a b] Source #

Enum (f a) => Enum (Ap f a) #

Since: base-4.12.0.0

Instance details

Defined in Data.Monoid

Methods

succ :: Ap f a -> Ap f a Source #

pred :: Ap f a -> Ap f a Source #

toEnum :: Int -> Ap f a Source #

fromEnum :: Ap f a -> Int Source #

enumFrom :: Ap f a -> [Ap f a] Source #

enumFromThen :: Ap f a -> Ap f a -> [Ap f a] Source #

enumFromTo :: Ap f a -> Ap f a -> [Ap f a] Source #

enumFromThenTo :: Ap f a -> Ap f a -> Ap f a -> [Ap f a] Source #

Enum (f a) => Enum (Alt f a) #

Since: base-4.8.0.0

Instance details

Defined in Data.Semigroup.Internal

Methods

succ :: Alt f a -> Alt f a Source #

pred :: Alt f a -> Alt f a Source #

toEnum :: Int -> Alt f a Source #

fromEnum :: Alt f a -> Int Source #

enumFrom :: Alt f a -> [Alt f a] Source #

enumFromThen :: Alt f a -> Alt f a -> [Alt f a] Source #

enumFromTo :: Alt f a -> Alt f a -> [Alt f a] Source #

enumFromThenTo :: Alt f a -> Alt f a -> Alt f a -> [Alt f a] Source #

Coercible a b => Enum (Coercion a b) #

Since: base-4.7.0.0

Instance details

Defined in Data.Type.Coercion

Methods

succ :: Coercion a b -> Coercion a b Source #

pred :: Coercion a b -> Coercion a b Source #

toEnum :: Int -> Coercion a b Source #

fromEnum :: Coercion a b -> Int Source #

enumFrom :: Coercion a b -> [Coercion a b] Source #

enumFromThen :: Coercion a b -> Coercion a b -> [Coercion a b] Source #

enumFromTo :: Coercion a b -> Coercion a b -> [Coercion a b] Source #

enumFromThenTo :: Coercion a b -> Coercion a b -> Coercion a b -> [Coercion a b] Source #

a ~ b => Enum (a :~: b) #

Since: base-4.7.0.0

Instance details

Defined in Data.Type.Equality

Methods

succ :: (a :~: b) -> a :~: b Source #

pred :: (a :~: b) -> a :~: b Source #

toEnum :: Int -> a :~: b Source #

fromEnum :: (a :~: b) -> Int Source #

enumFrom :: (a :~: b) -> [a :~: b] Source #

enumFromThen :: (a :~: b) -> (a :~: b) -> [a :~: b] Source #

enumFromTo :: (a :~: b) -> (a :~: b) -> [a :~: b] Source #

enumFromThenTo :: (a :~: b) -> (a :~: b) -> (a :~: b) -> [a :~: b] Source #

a ~~ b => Enum (a :~~: b) #

Since: base-4.10.0.0

Instance details

Defined in Data.Type.Equality

Methods

succ :: (a :~~: b) -> a :~~: b Source #

pred :: (a :~~: b) -> a :~~: b Source #

toEnum :: Int -> a :~~: b Source #

fromEnum :: (a :~~: b) -> Int Source #

enumFrom :: (a :~~: b) -> [a :~~: b] Source #

enumFromThen :: (a :~~: b) -> (a :~~: b) -> [a :~~: b] Source #

enumFromTo :: (a :~~: b) -> (a :~~: b) -> [a :~~: b] Source #

enumFromThenTo :: (a :~~: b) -> (a :~~: b) -> (a :~~: b) -> [a :~~: b] Source #

boundedEnumFrom :: (Enum a, Bounded a) => a -> [a] Source #

boundedEnumFromThen :: (Enum a, Bounded a) => a -> a -> [a] Source #

toEnumError :: Show a => String -> Int -> (a, a) -> b Source #

fromEnumError :: Show a => String -> a -> b Source #