base-4.20.0.1: Core data structures and operations
Copyright(c) The University of Glasgow 1992-2002
Licensesee libraries/base/LICENSE
Maintainerghc-devs@haskell.org
Stabilitystable
Portabilitynon-portable (GHC extensions)
Safe HaskellSafe
LanguageHaskell2010

Data.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 ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.Internal.ByteOrder

Bounded All

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Bounded Any

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Bounded CBool 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CChar 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CInt 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CIntMax 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CIntPtr 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CLLong 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CLong 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CPtrdiff 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CSChar 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CShort 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CSigAtomic 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CSize 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CUChar 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CUInt 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CUIntMax 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CUIntPtr 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CULLong 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CULong 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CUShort 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CWchar 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded IntPtr 
Instance details

Defined in GHC.Internal.Foreign.Ptr

Bounded WordPtr 
Instance details

Defined in GHC.Internal.Foreign.Ptr

Bounded Associativity

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Bounded DecidedStrictness

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Bounded SourceStrictness

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Bounded SourceUnpackedness

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Bounded Int16

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Bounded Int32

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Bounded Int64

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Bounded Int8

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Bounded CBlkCnt 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CBlkSize 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CClockId 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CDev 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CFsBlkCnt 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CFsFilCnt 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CGid 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CId 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CIno 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CKey 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CMode 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CNfds 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CNlink 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded COff 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CPid 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CRLim 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CSocklen 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CSsize 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CTcflag 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded CUid 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded Fd 
Instance details

Defined in GHC.Internal.System.Posix.Types

Bounded GeneralCategory

Since: base-2.1

Instance details

Defined in GHC.Internal.Unicode

Bounded Word16

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Bounded Word32

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Bounded Word64

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Bounded Word8

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Bounded Ordering

Since: base-2.1

Instance details

Defined in GHC.Internal.Enum

Bounded ()

Since: base-2.1

Instance details

Defined in GHC.Internal.Enum

Methods

minBound :: () Source #

maxBound :: () Source #

Bounded Bool

Since: base-2.1

Instance details

Defined in GHC.Internal.Enum

Bounded Char

Since: base-2.1

Instance details

Defined in GHC.Internal.Enum

Bounded Int

Since: base-2.1

Instance details

Defined in GHC.Internal.Enum

Bounded Levity

Since: base-4.16.0.0

Instance details

Defined in GHC.Internal.Enum

Bounded VecCount

Since: base-4.10.0.0

Instance details

Defined in GHC.Internal.Enum

Bounded VecElem

Since: base-4.10.0.0

Instance details

Defined in GHC.Internal.Enum

Bounded Word

Since: base-2.1

Instance details

Defined in GHC.Internal.Enum

Bounded a => Bounded (First a) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Bounded a => Bounded (Last a) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Bounded a => Bounded (Max a) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Bounded a => Bounded (Min a) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Bounded m => Bounded (WrappedMonoid m) Source #

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Bounded a => Bounded (And a)

Since: base-4.16

Instance details

Defined in GHC.Internal.Data.Bits

Bounded a => Bounded (Iff a)

Since: base-4.16

Instance details

Defined in GHC.Internal.Data.Bits

Bounded a => Bounded (Ior a)

Since: base-4.16

Instance details

Defined in GHC.Internal.Data.Bits

Bounded a => Bounded (Xor a)

Since: base-4.16

Instance details

Defined in GHC.Internal.Data.Bits

Bounded a => Bounded (Identity a)

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.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 GHC.Internal.Data.Ord

Bounded a => Bounded (Dual a)

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Bounded a => Bounded (Product a)

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Bounded a => Bounded (Sum a)

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Semigroup.Internal

Bounded a => Bounded (Solo a) 
Instance details

Defined in GHC.Internal.Enum

Bounded (Proxy t)

Since: base-4.7.0.0

Instance details

Defined in GHC.Internal.Data.Proxy

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

Since: base-2.1

Instance details

Defined in GHC.Internal.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 GHC.Internal.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 GHC.Internal.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 GHC.Internal.Data.Type.Coercion

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

Since: base-4.7.0.0

Instance details

Defined in GHC.Internal.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.Internal.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 GHC.Internal.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.Internal.Enum

Methods

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

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

Bounded (f (g a)) => Bounded (Compose f g a) Source #

Since: base-4.19.0.0

Instance details

Defined in Data.Functor.Compose

Methods

minBound :: Compose f g a Source #

maxBound :: Compose f g a 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.Internal.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.Internal.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.Internal.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.Internal.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.Internal.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.Internal.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.Internal.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.Internal.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.Internal.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.Internal.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.Internal.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 #

Successor of a value. For numeric types, succ adds 1.

pred :: a -> a Source #

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).

Examples

Expand
  • 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
  

Examples

Expand
  • 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 = []
  

Examples

Expand
  • 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 = []
  

Examples

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

Instances

Instances details
Enum ByteOrder

Since: base-4.11.0.0

Instance details

Defined in GHC.Internal.ByteOrder

Enum ClosureType 
Instance details

Defined in GHC.Internal.ClosureTypes

Enum CBool 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CChar 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CClock 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CDouble 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CFloat 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CInt 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CIntMax 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CIntPtr 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CLLong 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CLong 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CPtrdiff 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CSChar 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CSUSeconds 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CShort 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CSigAtomic 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CSize 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CTime 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CUChar 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CUInt 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CUIntMax 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CUIntPtr 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CULLong 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CULong 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CUSeconds 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CUShort 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CWchar 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum IntPtr 
Instance details

Defined in GHC.Internal.Foreign.Ptr

Enum WordPtr 
Instance details

Defined in GHC.Internal.Foreign.Ptr

Enum Associativity

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Enum DecidedStrictness

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Enum SourceStrictness

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Enum SourceUnpackedness

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.Generics

Enum SeekMode

Since: base-4.2.0.0

Instance details

Defined in GHC.Internal.IO.Device

Enum IOMode

Since: base-4.2.0.0

Instance details

Defined in GHC.Internal.IO.IOMode

Enum Int16

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Enum Int32

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Enum Int64

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Enum Int8

Since: base-2.1

Instance details

Defined in GHC.Internal.Int

Enum DoCostCentres

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.RTS.Flags

Enum DoHeapProfile

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.RTS.Flags

Enum DoTrace

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.RTS.Flags

Enum GiveGCStats

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.RTS.Flags

Enum IoSubSystem

Since: base-4.9.0.0

Instance details

Defined in GHC.Internal.RTS.Flags

Enum CBlkCnt 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CBlkSize 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CCc 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CClockId 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CDev 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CFsBlkCnt 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CFsFilCnt 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CGid 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CId 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CIno 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CKey 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CMode 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CNfds 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CNlink 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum COff 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CPid 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CRLim 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CSocklen 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CSpeed 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CSsize 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CTcflag 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum CUid 
Instance details

Defined in GHC.Internal.System.Posix.Types

Enum Fd 
Instance details

Defined in GHC.Internal.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 GeneralCategory

Since: base-2.1

Instance details

Defined in GHC.Internal.Unicode

Enum Word16

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Enum Word32

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Enum Word64

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Enum Word8

Since: base-2.1

Instance details

Defined in GHC.Internal.Word

Enum Ordering

Since: base-2.1

Instance details

Defined in GHC.Internal.Enum

Enum Integer

Since: base-2.1

Instance details

Defined in GHC.Internal.Enum

Enum Natural

Since: base-4.8.0.0

Instance details

Defined in GHC.Internal.Enum

Enum ()

Since: base-2.1

Instance details

Defined in GHC.Internal.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.Internal.Enum

Enum Char

Since: base-2.1

Instance details

Defined in GHC.Internal.Enum

Enum Int

Since: base-2.1

Instance details

Defined in GHC.Internal.Enum

Enum Levity

Since: base-4.16.0.0

Instance details

Defined in GHC.Internal.Enum

Enum VecCount

Since: base-4.10.0.0

Instance details

Defined in GHC.Internal.Enum

Enum VecElem

Since: base-4.10.0.0

Instance details

Defined in GHC.Internal.Enum

Enum Word

Since: base-2.1

Instance details

Defined in GHC.Internal.Enum

Enum a => Enum (First a) Source #

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

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

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

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

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Enum a => Enum (And a)

Since: base-4.16

Instance details

Defined in GHC.Internal.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 GHC.Internal.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 GHC.Internal.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 GHC.Internal.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 GHC.Internal.Data.Functor.Identity

(Enum a, Bounded a, Eq a) => Enum (Down a)

Swaps succ and pred of the underlying type.

Since: base-4.18.0.0

Instance details

Defined in GHC.Internal.Data.Ord

Methods

succ :: Down a -> Down a Source #

pred :: Down a -> Down a Source #

toEnum :: Int -> Down a Source #

fromEnum :: Down a -> Int Source #

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

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

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

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

Integral a => Enum (Ratio a)

Since: base-2.0.1

Instance details

Defined in GHC.Internal.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 a => Enum (Solo a) 
Instance details

Defined in GHC.Internal.Enum

Methods

succ :: Solo a -> Solo a Source #

pred :: Solo a -> Solo a Source #

toEnum :: Int -> Solo a Source #

fromEnum :: Solo a -> Int Source #

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

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

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

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

Enum (Fixed a) Source #

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)
0.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 GHC.Internal.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 GHC.Internal.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 GHC.Internal.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 GHC.Internal.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 GHC.Internal.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 GHC.Internal.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 GHC.Internal.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 #

Enum (f (g a)) => Enum (Compose f g a) Source #

Since: base-4.19.0.0

Instance details

Defined in Data.Functor.Compose

Methods

succ :: Compose f g a -> Compose f g a Source #

pred :: Compose f g a -> Compose f g a Source #

toEnum :: Int -> Compose f g a Source #

fromEnum :: Compose f g a -> Int Source #

enumFrom :: Compose f g a -> [Compose f g a] Source #

enumFromThen :: Compose f g a -> Compose f g a -> [Compose f g a] Source #

enumFromTo :: Compose f g a -> Compose f g a -> [Compose f g a] Source #

enumFromThenTo :: Compose f g a -> Compose f g a -> Compose f g a -> [Compose f g a] Source #