haskell / 9 / libraries / base-4.17.0.0 / ghc-enum.html

GHC.Enum

Copyright (c) The University of Glasgow 1992-2002
License see libraries/base/LICENSE
Maintainer cvs-ghc@haskell.org
Stability internal
Portability non-portable (GHC extensions)
Safe Haskell Trustworthy
Language Haskell2010

Description

The Enum and Bounded classes.

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 Source

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Bounded Any Source

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Bounded CBool Source
Instance details

Defined in Foreign.C.Types

Bounded CChar Source
Instance details

Defined in Foreign.C.Types

Bounded CInt Source
Instance details

Defined in Foreign.C.Types

Bounded CIntMax Source
Instance details

Defined in Foreign.C.Types

Bounded CIntPtr Source
Instance details

Defined in Foreign.C.Types

Bounded CLLong Source
Instance details

Defined in Foreign.C.Types

Bounded CLong Source
Instance details

Defined in Foreign.C.Types

Bounded CPtrdiff Source
Instance details

Defined in Foreign.C.Types

Bounded CSChar Source
Instance details

Defined in Foreign.C.Types

Bounded CShort Source
Instance details

Defined in Foreign.C.Types

Bounded CSigAtomic Source
Instance details

Defined in Foreign.C.Types

Bounded CSize Source
Instance details

Defined in Foreign.C.Types

Bounded CUChar Source
Instance details

Defined in Foreign.C.Types

Bounded CUInt Source
Instance details

Defined in Foreign.C.Types

Bounded CUIntMax Source
Instance details

Defined in Foreign.C.Types

Bounded CUIntPtr Source
Instance details

Defined in Foreign.C.Types

Bounded CULLong Source
Instance details

Defined in Foreign.C.Types

Bounded CULong Source
Instance details

Defined in Foreign.C.Types

Bounded CUShort Source
Instance details

Defined in Foreign.C.Types

Bounded CWchar Source
Instance details

Defined in Foreign.C.Types

Bounded IntPtr Source
Instance details

Defined in Foreign.Ptr

Bounded WordPtr Source
Instance details

Defined in Foreign.Ptr

Bounded ByteOrder Source

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Bounded Associativity Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Bounded DecidedStrictness Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Bounded SourceStrictness Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Bounded SourceUnpackedness Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Bounded Int16 Source

Since: base-2.1

Instance details

Defined in GHC.Int

Bounded Int32 Source

Since: base-2.1

Instance details

Defined in GHC.Int

Bounded Int64 Source

Since: base-2.1

Instance details

Defined in GHC.Int

Bounded Int8 Source

Since: base-2.1

Instance details

Defined in GHC.Int

Bounded GeneralCategory Source

Since: base-2.1

Instance details

Defined in GHC.Unicode

Bounded Word16 Source

Since: base-2.1

Instance details

Defined in GHC.Word

Bounded Word32 Source

Since: base-2.1

Instance details

Defined in GHC.Word

Bounded Word64 Source

Since: base-2.1

Instance details

Defined in GHC.Word

Bounded Word8 Source

Since: base-2.1

Instance details

Defined in GHC.Word

Bounded CBlkCnt Source
Instance details

Defined in System.Posix.Types

Bounded CBlkSize Source
Instance details

Defined in System.Posix.Types

Bounded CClockId Source
Instance details

Defined in System.Posix.Types

Bounded CDev Source
Instance details

Defined in System.Posix.Types

Bounded CFsBlkCnt Source
Instance details

Defined in System.Posix.Types

Bounded CFsFilCnt Source
Instance details

Defined in System.Posix.Types

Bounded CGid Source
Instance details

Defined in System.Posix.Types

Bounded CId Source
Instance details

Defined in System.Posix.Types

Bounded CIno Source
Instance details

Defined in System.Posix.Types

Bounded CKey Source
Instance details

Defined in System.Posix.Types

Bounded CMode Source
Instance details

Defined in System.Posix.Types

Bounded CNfds Source
Instance details

Defined in System.Posix.Types

Bounded CNlink Source
Instance details

Defined in System.Posix.Types

Bounded COff Source
Instance details

Defined in System.Posix.Types

Bounded CPid Source
Instance details

Defined in System.Posix.Types

Bounded CRLim Source
Instance details

Defined in System.Posix.Types

Bounded CSocklen Source
Instance details

Defined in System.Posix.Types

Bounded CSsize Source
Instance details

Defined in System.Posix.Types

Bounded CTcflag Source
Instance details

Defined in System.Posix.Types

Bounded CUid Source
Instance details

Defined in System.Posix.Types

Bounded Fd Source
Instance details

Defined in System.Posix.Types

Bounded Ordering Source

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded () Source

Since: base-2.1

Instance details

Defined in GHC.Enum

Methods

minBound :: () Source

maxBound :: () Source

Bounded Bool Source

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded Char Source

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded Int Source

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded Levity Source

Since: base-4.16.0.0

Instance details

Defined in GHC.Enum

Bounded VecCount Source

Since: base-4.10.0.0

Instance details

Defined in GHC.Enum

Bounded VecElem Source

Since: base-4.10.0.0

Instance details

Defined in GHC.Enum

Bounded Word Source

Since: base-2.1

Instance details

Defined in GHC.Enum

Bounded a => Bounded (And a) Source

Since: base-4.16

Instance details

Defined in Data.Bits

Methods

minBound :: And a Source

maxBound :: And a Source

Bounded a => Bounded (Iff a) Source

Since: base-4.16

Instance details

Defined in Data.Bits

Methods

minBound :: Iff a Source

maxBound :: Iff a Source

Bounded a => Bounded (Ior a) Source

Since: base-4.16

Instance details

Defined in Data.Bits

Methods

minBound :: Ior a Source

maxBound :: Ior a Source

Bounded a => Bounded (Xor a) Source

Since: base-4.16

Instance details

Defined in Data.Bits

Methods

minBound :: Xor a Source

maxBound :: Xor a Source

Bounded a => Bounded (Identity a) Source

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Identity

Bounded a => Bounded (Down a) Source

Swaps minBound and maxBound of the underlying type.

Since: base-4.14.0.0

Instance details

Defined in Data.Ord

Methods

minBound :: Down a Source

maxBound :: Down a Source

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

Methods

minBound :: Last a Source

maxBound :: Last a Source

Bounded a => Bounded (Max a) Source

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

minBound :: Max a Source

maxBound :: Max a Source

Bounded a => Bounded (Min a) Source

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Methods

minBound :: Min a Source

maxBound :: Min a Source

Bounded m => Bounded (WrappedMonoid m) Source

Since: base-4.9.0.0

Instance details

Defined in Data.Semigroup

Bounded a => Bounded (Dual a) Source

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Methods

minBound :: Dual a Source

maxBound :: Dual a Source

Bounded a => Bounded (Product a) Source

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Bounded a => Bounded (Sum a) Source

Since: base-2.1

Instance details

Defined in Data.Semigroup.Internal

Methods

minBound :: Sum a Source

maxBound :: Sum a Source

Bounded a => Bounded (a) Source
Instance details

Defined in GHC.Enum

Methods

minBound :: (a) Source

maxBound :: (a) Source

Bounded (Proxy t) Source

Since: base-4.7.0.0

Instance details

Defined in Data.Proxy

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

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

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

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

Since: base-4.7.0.0

Instance details

Defined in Data.Type.Coercion

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Source
Instance details

Defined in Foreign.C.Types

Enum CChar Source
Instance details

Defined in Foreign.C.Types

Enum CClock Source
Instance details

Defined in Foreign.C.Types

Enum CDouble Source
Instance details

Defined in Foreign.C.Types

Enum CFloat Source
Instance details

Defined in Foreign.C.Types

Enum CInt Source
Instance details

Defined in Foreign.C.Types

Enum CIntMax Source
Instance details

Defined in Foreign.C.Types

Enum CIntPtr Source
Instance details

Defined in Foreign.C.Types

Enum CLLong Source
Instance details

Defined in Foreign.C.Types

Enum CLong Source
Instance details

Defined in Foreign.C.Types

Enum CPtrdiff Source
Instance details

Defined in Foreign.C.Types

Enum CSChar Source
Instance details

Defined in Foreign.C.Types

Enum CSUSeconds Source
Instance details

Defined in Foreign.C.Types

Enum CShort Source
Instance details

Defined in Foreign.C.Types

Enum CSigAtomic Source
Instance details

Defined in Foreign.C.Types

Enum CSize Source
Instance details

Defined in Foreign.C.Types

Enum CTime Source
Instance details

Defined in Foreign.C.Types

Enum CUChar Source
Instance details

Defined in Foreign.C.Types

Enum CUInt Source
Instance details

Defined in Foreign.C.Types

Enum CUIntMax Source
Instance details

Defined in Foreign.C.Types

Enum CUIntPtr Source
Instance details

Defined in Foreign.C.Types

Enum CULLong Source
Instance details

Defined in Foreign.C.Types

Enum CULong Source
Instance details

Defined in Foreign.C.Types

Enum CUSeconds Source
Instance details

Defined in Foreign.C.Types

Enum CUShort Source
Instance details

Defined in Foreign.C.Types

Enum CWchar Source
Instance details

Defined in Foreign.C.Types

Enum IntPtr Source
Instance details

Defined in Foreign.Ptr

Enum WordPtr Source
Instance details

Defined in Foreign.Ptr

Enum ByteOrder Source

Since: base-4.11.0.0

Instance details

Defined in GHC.ByteOrder

Enum Associativity Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Enum DecidedStrictness Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Enum SourceStrictness Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Enum SourceUnpackedness Source

Since: base-4.9.0.0

Instance details

Defined in GHC.Generics

Enum SeekMode Source

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.Device

Enum IOMode Source

Since: base-4.2.0.0

Instance details

Defined in GHC.IO.IOMode

Enum Int16 Source

Since: base-2.1

Instance details

Defined in GHC.Int

Enum Int32 Source

Since: base-2.1

Instance details

Defined in GHC.Int

Enum Int64 Source

Since: base-2.1

Instance details

Defined in GHC.Int

Enum Int8 Source

Since: base-2.1

Instance details

Defined in GHC.Int

Enum DoCostCentres Source

Since: base-4.8.0.0

Instance details

Defined in GHC.RTS.Flags

Enum DoHeapProfile Source

Since: base-4.8.0.0

Instance details

Defined in GHC.RTS.Flags

Enum DoTrace Source

Since: base-4.8.0.0

Instance details

Defined in GHC.RTS.Flags

Enum GiveGCStats Source

Since: base-4.8.0.0

Instance details

Defined in GHC.RTS.Flags

Enum IoSubSystem Source

Since: base-4.9.0.0

Instance details

Defined in GHC.RTS.Flags

Enum GeneralCategory Source

Since: base-2.1

Instance details

Defined in GHC.Unicode

Enum Word16 Source

Since: base-2.1

Instance details

Defined in GHC.Word

Enum Word32 Source

Since: base-2.1

Instance details

Defined in GHC.Word

Enum Word64 Source

Since: base-2.1

Instance details

Defined in GHC.Word

Enum Word8 Source

Since: base-2.1

Instance details

Defined in GHC.Word

Enum CBlkCnt Source
Instance details

Defined in System.Posix.Types

Enum CBlkSize Source
Instance details

Defined in System.Posix.Types

Enum CCc Source
Instance details

Defined in System.Posix.Types

Enum CClockId Source
Instance details

Defined in System.Posix.Types

Enum CDev Source
Instance details

Defined in System.Posix.Types

Enum CFsBlkCnt Source
Instance details

Defined in System.Posix.Types

Enum CFsFilCnt Source
Instance details

Defined in System.Posix.Types

Enum CGid Source
Instance details

Defined in System.Posix.Types

Enum CId Source
Instance details

Defined in System.Posix.Types

Enum CIno Source
Instance details

Defined in System.Posix.Types

Enum CKey Source
Instance details

Defined in System.Posix.Types

Enum CMode Source
Instance details

Defined in System.Posix.Types

Enum CNfds Source
Instance details

Defined in System.Posix.Types

Enum CNlink Source
Instance details

Defined in System.Posix.Types

Enum COff Source
Instance details

Defined in System.Posix.Types

Enum CPid Source
Instance details

Defined in System.Posix.Types

Enum CRLim Source
Instance details

Defined in System.Posix.Types

Enum CSocklen Source
Instance details

Defined in System.Posix.Types

Enum CSpeed Source
Instance details

Defined in System.Posix.Types

Enum CSsize Source
Instance details

Defined in System.Posix.Types

Enum CTcflag Source
Instance details

Defined in System.Posix.Types

Enum CUid Source
Instance details

Defined in System.Posix.Types

Enum Fd Source
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 Source

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Integer Source

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Natural Source

Since: base-4.8.0.0

Instance details

Defined in GHC.Enum

Enum () Source

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 Source

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Char Source

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Double Source

Since: base-2.1

Instance details

Defined in GHC.Float

Enum Float Source

Since: base-2.1

Instance details

Defined in GHC.Float

Enum Int Source

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum Levity Source

Since: base-4.16.0.0

Instance details

Defined in GHC.Enum

Enum VecCount Source

Since: base-4.10.0.0

Instance details

Defined in GHC.Enum

Enum VecElem Source

Since: base-4.10.0.0

Instance details

Defined in GHC.Enum

Enum Word Source

Since: base-2.1

Instance details

Defined in GHC.Enum

Enum a => Enum (And a) Source

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

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

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

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

Since: base-4.9.0.0

Instance details

Defined in Data.Functor.Identity

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

Integral a => Enum (Ratio a) Source

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 a => Enum (a) Source
Instance details

Defined in GHC.Enum

Methods

succ :: (a) -> (a) Source

pred :: (a) -> (a) Source

toEnum :: Int -> (a) Source

fromEnum :: (a) -> Int Source

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

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

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

enumFromThenTo :: (a) -> (a) -> (a) -> [(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) Source

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

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

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

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

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

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

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

succError :: String -> a Source

predError :: String -> a Source

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.4.2/docs/libraries/base-4.17.0.0/GHC-Enum.html