On this page
Data.Ix
Copyright | (c) The University of Glasgow 2001 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | libraries@haskell.org |
Stability | stable |
Portability | portable |
Safe Haskell | Trustworthy |
Language | Haskell2010 |
Contents
Description
The Ix
class is used to map a contiguous subrange of values in type onto integers. It is used primarily for array indexing (see the array package). Ix
uses row-major order.
The Ix class
class Ord a => Ix a where Source
The Ix
class is used to map a contiguous subrange of values in a type onto integers. It is used primarily for array indexing (see the array package).
The first argument (l,u)
of each of these operations is a pair specifying the lower and upper bounds of a contiguous subrange of values.
An implementation is entitled to assume the following laws about these operations:
inRange (l,u) i == elem i (range (l,u))
range (l,u) !! index (l,u) i == i
, wheninRange (l,u) i
map (index (l,u)) (range (l,u))) == [0..rangeSize (l,u)-1]
rangeSize (l,u) == length (range (l,u))
Minimal complete definition
range, (index | unsafeIndex), inRange
Methods
The list of values in the subrange defined by a bounding pair.
index :: (a, a) -> a -> Int Source
The position of a subscript in the subrange.
inRange :: (a, a) -> a -> Bool Source
Returns True
the given subscript lies in the range defined the bounding pair.
rangeSize :: (a, a) -> Int Source
The size of the subrange defined by a bounding pair.
Instances
Ix Void Source | Since: base-4.8.0.0 |
Ix CBool Source | |
Defined in Foreign.C.Types |
|
Ix CChar Source | |
Defined in Foreign.C.Types |
|
Ix CInt Source | |
Defined in Foreign.C.Types |
|
Ix CIntMax Source | |
Defined in Foreign.C.Types Methodsrange :: (CIntMax, CIntMax) -> [CIntMax] Source index :: (CIntMax, CIntMax) -> CIntMax -> Int Source unsafeIndex :: (CIntMax, CIntMax) -> CIntMax -> Int Source inRange :: (CIntMax, CIntMax) -> CIntMax -> Bool Source rangeSize :: (CIntMax, CIntMax) -> Int Source unsafeRangeSize :: (CIntMax, CIntMax) -> Int Source |
|
Ix CIntPtr Source | |
Defined in Foreign.C.Types Methodsrange :: (CIntPtr, CIntPtr) -> [CIntPtr] Source index :: (CIntPtr, CIntPtr) -> CIntPtr -> Int Source unsafeIndex :: (CIntPtr, CIntPtr) -> CIntPtr -> Int Source inRange :: (CIntPtr, CIntPtr) -> CIntPtr -> Bool Source rangeSize :: (CIntPtr, CIntPtr) -> Int Source unsafeRangeSize :: (CIntPtr, CIntPtr) -> Int Source |
|
Ix CLLong Source | |
Defined in Foreign.C.Types Methodsrange :: (CLLong, CLLong) -> [CLLong] Source index :: (CLLong, CLLong) -> CLLong -> Int Source unsafeIndex :: (CLLong, CLLong) -> CLLong -> Int Source inRange :: (CLLong, CLLong) -> CLLong -> Bool Source rangeSize :: (CLLong, CLLong) -> Int Source unsafeRangeSize :: (CLLong, CLLong) -> Int Source |
|
Ix CLong Source | |
Defined in Foreign.C.Types |
|
Ix CPtrdiff Source | |
Defined in Foreign.C.Types Methodsrange :: (CPtrdiff, CPtrdiff) -> [CPtrdiff] Source index :: (CPtrdiff, CPtrdiff) -> CPtrdiff -> Int Source unsafeIndex :: (CPtrdiff, CPtrdiff) -> CPtrdiff -> Int Source inRange :: (CPtrdiff, CPtrdiff) -> CPtrdiff -> Bool Source rangeSize :: (CPtrdiff, CPtrdiff) -> Int Source unsafeRangeSize :: (CPtrdiff, CPtrdiff) -> Int Source |
|
Ix CSChar Source | |
Defined in Foreign.C.Types Methodsrange :: (CSChar, CSChar) -> [CSChar] Source index :: (CSChar, CSChar) -> CSChar -> Int Source unsafeIndex :: (CSChar, CSChar) -> CSChar -> Int Source inRange :: (CSChar, CSChar) -> CSChar -> Bool Source rangeSize :: (CSChar, CSChar) -> Int Source unsafeRangeSize :: (CSChar, CSChar) -> Int Source |
|
Ix CShort Source | |
Defined in Foreign.C.Types Methodsrange :: (CShort, CShort) -> [CShort] Source index :: (CShort, CShort) -> CShort -> Int Source unsafeIndex :: (CShort, CShort) -> CShort -> Int Source inRange :: (CShort, CShort) -> CShort -> Bool Source rangeSize :: (CShort, CShort) -> Int Source unsafeRangeSize :: (CShort, CShort) -> Int Source |
|
Ix CSigAtomic Source | |
Defined in Foreign.C.Types Methodsrange :: (CSigAtomic, CSigAtomic) -> [CSigAtomic] Source index :: (CSigAtomic, CSigAtomic) -> CSigAtomic -> Int Source unsafeIndex :: (CSigAtomic, CSigAtomic) -> CSigAtomic -> Int Source inRange :: (CSigAtomic, CSigAtomic) -> CSigAtomic -> Bool Source rangeSize :: (CSigAtomic, CSigAtomic) -> Int Source unsafeRangeSize :: (CSigAtomic, CSigAtomic) -> Int Source |
|
Ix CSize Source | |
Defined in Foreign.C.Types |
|
Ix CUChar Source | |
Defined in Foreign.C.Types Methodsrange :: (CUChar, CUChar) -> [CUChar] Source index :: (CUChar, CUChar) -> CUChar -> Int Source unsafeIndex :: (CUChar, CUChar) -> CUChar -> Int Source inRange :: (CUChar, CUChar) -> CUChar -> Bool Source rangeSize :: (CUChar, CUChar) -> Int Source unsafeRangeSize :: (CUChar, CUChar) -> Int Source |
|
Ix CUInt Source | |
Defined in Foreign.C.Types |
|
Ix CUIntMax Source | |
Defined in Foreign.C.Types Methodsrange :: (CUIntMax, CUIntMax) -> [CUIntMax] Source index :: (CUIntMax, CUIntMax) -> CUIntMax -> Int Source unsafeIndex :: (CUIntMax, CUIntMax) -> CUIntMax -> Int Source inRange :: (CUIntMax, CUIntMax) -> CUIntMax -> Bool Source rangeSize :: (CUIntMax, CUIntMax) -> Int Source unsafeRangeSize :: (CUIntMax, CUIntMax) -> Int Source |
|
Ix CUIntPtr Source | |
Defined in Foreign.C.Types Methodsrange :: (CUIntPtr, CUIntPtr) -> [CUIntPtr] Source index :: (CUIntPtr, CUIntPtr) -> CUIntPtr -> Int Source unsafeIndex :: (CUIntPtr, CUIntPtr) -> CUIntPtr -> Int Source inRange :: (CUIntPtr, CUIntPtr) -> CUIntPtr -> Bool Source rangeSize :: (CUIntPtr, CUIntPtr) -> Int Source unsafeRangeSize :: (CUIntPtr, CUIntPtr) -> Int Source |
|
Ix CULLong Source | |
Defined in Foreign.C.Types Methodsrange :: (CULLong, CULLong) -> [CULLong] Source index :: (CULLong, CULLong) -> CULLong -> Int Source unsafeIndex :: (CULLong, CULLong) -> CULLong -> Int Source inRange :: (CULLong, CULLong) -> CULLong -> Bool Source rangeSize :: (CULLong, CULLong) -> Int Source unsafeRangeSize :: (CULLong, CULLong) -> Int Source |
|
Ix CULong Source | |
Defined in Foreign.C.Types Methodsrange :: (CULong, CULong) -> [CULong] Source index :: (CULong, CULong) -> CULong -> Int Source unsafeIndex :: (CULong, CULong) -> CULong -> Int Source inRange :: (CULong, CULong) -> CULong -> Bool Source rangeSize :: (CULong, CULong) -> Int Source unsafeRangeSize :: (CULong, CULong) -> Int Source |
|
Ix CUShort Source | |
Defined in Foreign.C.Types Methodsrange :: (CUShort, CUShort) -> [CUShort] Source index :: (CUShort, CUShort) -> CUShort -> Int Source unsafeIndex :: (CUShort, CUShort) -> CUShort -> Int Source inRange :: (CUShort, CUShort) -> CUShort -> Bool Source rangeSize :: (CUShort, CUShort) -> Int Source unsafeRangeSize :: (CUShort, CUShort) -> Int Source |
|
Ix CWchar Source | |
Defined in Foreign.C.Types Methodsrange :: (CWchar, CWchar) -> [CWchar] Source index :: (CWchar, CWchar) -> CWchar -> Int Source unsafeIndex :: (CWchar, CWchar) -> CWchar -> Int Source inRange :: (CWchar, CWchar) -> CWchar -> Bool Source rangeSize :: (CWchar, CWchar) -> Int Source unsafeRangeSize :: (CWchar, CWchar) -> Int Source |
|
Ix IntPtr Source | |
Defined in Foreign.Ptr Methodsrange :: (IntPtr, IntPtr) -> [IntPtr] Source index :: (IntPtr, IntPtr) -> IntPtr -> Int Source unsafeIndex :: (IntPtr, IntPtr) -> IntPtr -> Int Source inRange :: (IntPtr, IntPtr) -> IntPtr -> Bool Source rangeSize :: (IntPtr, IntPtr) -> Int Source unsafeRangeSize :: (IntPtr, IntPtr) -> Int Source |
|
Ix WordPtr Source | |
Defined in Foreign.Ptr Methodsrange :: (WordPtr, WordPtr) -> [WordPtr] Source index :: (WordPtr, WordPtr) -> WordPtr -> Int Source unsafeIndex :: (WordPtr, WordPtr) -> WordPtr -> Int Source inRange :: (WordPtr, WordPtr) -> WordPtr -> Bool Source rangeSize :: (WordPtr, WordPtr) -> Int Source unsafeRangeSize :: (WordPtr, WordPtr) -> Int Source |
|
Ix Associativity Source | Since: base-4.9.0.0 |
Defined in GHC.Generics Methodsrange :: (Associativity, Associativity) -> [Associativity] Source index :: (Associativity, Associativity) -> Associativity -> Int Source unsafeIndex :: (Associativity, Associativity) -> Associativity -> Int Source inRange :: (Associativity, Associativity) -> Associativity -> Bool Source rangeSize :: (Associativity, Associativity) -> Int Source unsafeRangeSize :: (Associativity, Associativity) -> Int Source |
|
Ix DecidedStrictness Source | Since: base-4.9.0.0 |
Defined in GHC.Generics Methodsrange :: (DecidedStrictness, DecidedStrictness) -> [DecidedStrictness] Source index :: (DecidedStrictness, DecidedStrictness) -> DecidedStrictness -> Int Source unsafeIndex :: (DecidedStrictness, DecidedStrictness) -> DecidedStrictness -> Int Source inRange :: (DecidedStrictness, DecidedStrictness) -> DecidedStrictness -> Bool Source rangeSize :: (DecidedStrictness, DecidedStrictness) -> Int Source unsafeRangeSize :: (DecidedStrictness, DecidedStrictness) -> Int Source |
|
Ix SourceStrictness Source | Since: base-4.9.0.0 |
Defined in GHC.Generics Methodsrange :: (SourceStrictness, SourceStrictness) -> [SourceStrictness] Source index :: (SourceStrictness, SourceStrictness) -> SourceStrictness -> Int Source unsafeIndex :: (SourceStrictness, SourceStrictness) -> SourceStrictness -> Int Source inRange :: (SourceStrictness, SourceStrictness) -> SourceStrictness -> Bool Source rangeSize :: (SourceStrictness, SourceStrictness) -> Int Source unsafeRangeSize :: (SourceStrictness, SourceStrictness) -> Int Source |
|
Ix SourceUnpackedness Source | Since: base-4.9.0.0 |
Defined in GHC.Generics Methodsrange :: (SourceUnpackedness, SourceUnpackedness) -> [SourceUnpackedness] Source index :: (SourceUnpackedness, SourceUnpackedness) -> SourceUnpackedness -> Int Source unsafeIndex :: (SourceUnpackedness, SourceUnpackedness) -> SourceUnpackedness -> Int Source inRange :: (SourceUnpackedness, SourceUnpackedness) -> SourceUnpackedness -> Bool Source rangeSize :: (SourceUnpackedness, SourceUnpackedness) -> Int Source unsafeRangeSize :: (SourceUnpackedness, SourceUnpackedness) -> Int Source |
|
Ix SeekMode Source | Since: base-4.2.0.0 |
Defined in GHC.IO.Device Methodsrange :: (SeekMode, SeekMode) -> [SeekMode] Source index :: (SeekMode, SeekMode) -> SeekMode -> Int Source unsafeIndex :: (SeekMode, SeekMode) -> SeekMode -> Int Source inRange :: (SeekMode, SeekMode) -> SeekMode -> Bool Source rangeSize :: (SeekMode, SeekMode) -> Int Source unsafeRangeSize :: (SeekMode, SeekMode) -> Int Source |
|
Ix IOMode Source | Since: base-4.2.0.0 |
Defined in GHC.IO.IOMode Methodsrange :: (IOMode, IOMode) -> [IOMode] Source index :: (IOMode, IOMode) -> IOMode -> Int Source unsafeIndex :: (IOMode, IOMode) -> IOMode -> Int Source inRange :: (IOMode, IOMode) -> IOMode -> Bool Source rangeSize :: (IOMode, IOMode) -> Int Source unsafeRangeSize :: (IOMode, IOMode) -> Int Source |
|
Ix Int16 Source | Since: base-2.1 |
Defined in GHC.Int |
|
Ix Int32 Source | Since: base-2.1 |
Defined in GHC.Int |
|
Ix Int64 Source | Since: base-2.1 |
Defined in GHC.Int |
|
Ix Int8 Source | Since: base-2.1 |
Ix GeneralCategory Source | Since: base-2.1 |
Defined in GHC.Unicode Methodsrange :: (GeneralCategory, GeneralCategory) -> [GeneralCategory] Source index :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Int Source unsafeIndex :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Int Source inRange :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Bool Source rangeSize :: (GeneralCategory, GeneralCategory) -> Int Source unsafeRangeSize :: (GeneralCategory, GeneralCategory) -> Int Source |
|
Ix Word16 Source | Since: base-2.1 |
Defined in GHC.Word Methodsrange :: (Word16, Word16) -> [Word16] Source index :: (Word16, Word16) -> Word16 -> Int Source unsafeIndex :: (Word16, Word16) -> Word16 -> Int Source inRange :: (Word16, Word16) -> Word16 -> Bool Source rangeSize :: (Word16, Word16) -> Int Source unsafeRangeSize :: (Word16, Word16) -> Int Source |
|
Ix Word32 Source | Since: base-2.1 |
Defined in GHC.Word Methodsrange :: (Word32, Word32) -> [Word32] Source index :: (Word32, Word32) -> Word32 -> Int Source unsafeIndex :: (Word32, Word32) -> Word32 -> Int Source inRange :: (Word32, Word32) -> Word32 -> Bool Source rangeSize :: (Word32, Word32) -> Int Source unsafeRangeSize :: (Word32, Word32) -> Int Source |
|
Ix Word64 Source | Since: base-2.1 |
Defined in GHC.Word Methodsrange :: (Word64, Word64) -> [Word64] Source index :: (Word64, Word64) -> Word64 -> Int Source unsafeIndex :: (Word64, Word64) -> Word64 -> Int Source inRange :: (Word64, Word64) -> Word64 -> Bool Source rangeSize :: (Word64, Word64) -> Int Source unsafeRangeSize :: (Word64, Word64) -> Int Source |
|
Ix Word8 Source | Since: base-2.1 |
Defined in GHC.Word |
|
Ix CBlkCnt Source | |
Defined in System.Posix.Types Methodsrange :: (CBlkCnt, CBlkCnt) -> [CBlkCnt] Source index :: (CBlkCnt, CBlkCnt) -> CBlkCnt -> Int Source unsafeIndex :: (CBlkCnt, CBlkCnt) -> CBlkCnt -> Int Source inRange :: (CBlkCnt, CBlkCnt) -> CBlkCnt -> Bool Source rangeSize :: (CBlkCnt, CBlkCnt) -> Int Source unsafeRangeSize :: (CBlkCnt, CBlkCnt) -> Int Source |
|
Ix CBlkSize Source | |
Defined in System.Posix.Types Methodsrange :: (CBlkSize, CBlkSize) -> [CBlkSize] Source index :: (CBlkSize, CBlkSize) -> CBlkSize -> Int Source unsafeIndex :: (CBlkSize, CBlkSize) -> CBlkSize -> Int Source inRange :: (CBlkSize, CBlkSize) -> CBlkSize -> Bool Source rangeSize :: (CBlkSize, CBlkSize) -> Int Source unsafeRangeSize :: (CBlkSize, CBlkSize) -> Int Source |
|
Ix CClockId Source | |
Defined in System.Posix.Types Methodsrange :: (CClockId, CClockId) -> [CClockId] Source index :: (CClockId, CClockId) -> CClockId -> Int Source unsafeIndex :: (CClockId, CClockId) -> CClockId -> Int Source inRange :: (CClockId, CClockId) -> CClockId -> Bool Source rangeSize :: (CClockId, CClockId) -> Int Source unsafeRangeSize :: (CClockId, CClockId) -> Int Source |
|
Ix CDev Source | |
Defined in System.Posix.Types |
|
Ix CFsBlkCnt Source | |
Defined in System.Posix.Types Methodsrange :: (CFsBlkCnt, CFsBlkCnt) -> [CFsBlkCnt] Source index :: (CFsBlkCnt, CFsBlkCnt) -> CFsBlkCnt -> Int Source unsafeIndex :: (CFsBlkCnt, CFsBlkCnt) -> CFsBlkCnt -> Int Source inRange :: (CFsBlkCnt, CFsBlkCnt) -> CFsBlkCnt -> Bool Source rangeSize :: (CFsBlkCnt, CFsBlkCnt) -> Int Source unsafeRangeSize :: (CFsBlkCnt, CFsBlkCnt) -> Int Source |
|
Ix CFsFilCnt Source | |
Defined in System.Posix.Types Methodsrange :: (CFsFilCnt, CFsFilCnt) -> [CFsFilCnt] Source index :: (CFsFilCnt, CFsFilCnt) -> CFsFilCnt -> Int Source unsafeIndex :: (CFsFilCnt, CFsFilCnt) -> CFsFilCnt -> Int Source inRange :: (CFsFilCnt, CFsFilCnt) -> CFsFilCnt -> Bool Source rangeSize :: (CFsFilCnt, CFsFilCnt) -> Int Source unsafeRangeSize :: (CFsFilCnt, CFsFilCnt) -> Int Source |
|
Ix CGid Source | |
Defined in System.Posix.Types |
|
Ix CId Source | |
Ix CIno Source | |
Defined in System.Posix.Types |
|
Ix CKey Source | |
Defined in System.Posix.Types |
|
Ix CMode Source | |
Defined in System.Posix.Types |
|
Ix CNfds Source | |
Defined in System.Posix.Types |
|
Ix CNlink Source | |
Defined in System.Posix.Types Methodsrange :: (CNlink, CNlink) -> [CNlink] Source index :: (CNlink, CNlink) -> CNlink -> Int Source unsafeIndex :: (CNlink, CNlink) -> CNlink -> Int Source inRange :: (CNlink, CNlink) -> CNlink -> Bool Source rangeSize :: (CNlink, CNlink) -> Int Source unsafeRangeSize :: (CNlink, CNlink) -> Int Source |
|
Ix COff Source | |
Defined in System.Posix.Types |
|
Ix CPid Source | |
Defined in System.Posix.Types |
|
Ix CRLim Source | |
Defined in System.Posix.Types |
|
Ix CSocklen Source | |
Defined in System.Posix.Types Methodsrange :: (CSocklen, CSocklen) -> [CSocklen] Source index :: (CSocklen, CSocklen) -> CSocklen -> Int Source unsafeIndex :: (CSocklen, CSocklen) -> CSocklen -> Int Source inRange :: (CSocklen, CSocklen) -> CSocklen -> Bool Source rangeSize :: (CSocklen, CSocklen) -> Int Source unsafeRangeSize :: (CSocklen, CSocklen) -> Int Source |
|
Ix CSsize Source | |
Defined in System.Posix.Types Methodsrange :: (CSsize, CSsize) -> [CSsize] Source index :: (CSsize, CSsize) -> CSsize -> Int Source unsafeIndex :: (CSsize, CSsize) -> CSsize -> Int Source inRange :: (CSsize, CSsize) -> CSsize -> Bool Source rangeSize :: (CSsize, CSsize) -> Int Source unsafeRangeSize :: (CSsize, CSsize) -> Int Source |
|
Ix CTcflag Source | |
Defined in System.Posix.Types Methodsrange :: (CTcflag, CTcflag) -> [CTcflag] Source index :: (CTcflag, CTcflag) -> CTcflag -> Int Source unsafeIndex :: (CTcflag, CTcflag) -> CTcflag -> Int Source inRange :: (CTcflag, CTcflag) -> CTcflag -> Bool Source rangeSize :: (CTcflag, CTcflag) -> Int Source unsafeRangeSize :: (CTcflag, CTcflag) -> Int Source |
|
Ix CUid Source | |
Defined in System.Posix.Types |
|
Ix Fd Source | |
Ix Ordering Source | Since: base-2.1 |
Defined in GHC.Ix Methodsrange :: (Ordering, Ordering) -> [Ordering] Source index :: (Ordering, Ordering) -> Ordering -> Int Source unsafeIndex :: (Ordering, Ordering) -> Ordering -> Int Source inRange :: (Ordering, Ordering) -> Ordering -> Bool Source rangeSize :: (Ordering, Ordering) -> Int Source unsafeRangeSize :: (Ordering, Ordering) -> Int Source |
|
Ix Integer Source | Since: base-2.1 |
Defined in GHC.Ix Methodsrange :: (Integer, Integer) -> [Integer] Source index :: (Integer, Integer) -> Integer -> Int Source unsafeIndex :: (Integer, Integer) -> Integer -> Int Source inRange :: (Integer, Integer) -> Integer -> Bool Source rangeSize :: (Integer, Integer) -> Int Source unsafeRangeSize :: (Integer, Integer) -> Int Source |
|
Ix Natural Source | Since: base-4.8.0.0 |
Defined in GHC.Ix Methodsrange :: (Natural, Natural) -> [Natural] Source index :: (Natural, Natural) -> Natural -> Int Source unsafeIndex :: (Natural, Natural) -> Natural -> Int Source inRange :: (Natural, Natural) -> Natural -> Bool Source rangeSize :: (Natural, Natural) -> Int Source unsafeRangeSize :: (Natural, Natural) -> Int Source |
|
Ix () Source | Since: base-2.1 |
Ix Bool Source | Since: base-2.1 |
Ix Char Source | Since: base-2.1 |
Ix Int Source | Since: base-2.1 |
Ix Word Source | Since: base-4.6.0.0 |
Ix a => Ix (Identity a) Source | Since: base-4.9.0.0 |
Defined in Data.Functor.Identity Methodsrange :: (Identity a, Identity a) -> [Identity a] Source index :: (Identity a, Identity a) -> Identity a -> Int Source unsafeIndex :: (Identity a, Identity a) -> Identity a -> Int Source inRange :: (Identity a, Identity a) -> Identity a -> Bool Source rangeSize :: (Identity a, Identity a) -> Int Source unsafeRangeSize :: (Identity a, Identity a) -> Int Source |
|
Ix a => Ix (Down a) Source | Since: base-4.14.0.0 |
Defined in Data.Ord Methodsrange :: (Down a, Down a) -> [Down a] Source index :: (Down a, Down a) -> Down a -> Int Source unsafeIndex :: (Down a, Down a) -> Down a -> Int Source inRange :: (Down a, Down a) -> Down a -> Bool Source rangeSize :: (Down a, Down a) -> Int Source unsafeRangeSize :: (Down a, Down a) -> Int Source |
|
Ix a => Ix (a) Source | |
Ix (Proxy s) Source | Since: base-4.7.0.0 |
Defined in Data.Proxy Methodsrange :: (Proxy s, Proxy s) -> [Proxy s] Source index :: (Proxy s, Proxy s) -> Proxy s -> Int Source unsafeIndex :: (Proxy s, Proxy s) -> Proxy s -> Int Source inRange :: (Proxy s, Proxy s) -> Proxy s -> Bool Source rangeSize :: (Proxy s, Proxy s) -> Int Source unsafeRangeSize :: (Proxy s, Proxy s) -> Int Source |
|
(Ix a, Ix b) => Ix (a, b) Source | Since: base-2.1 |
Defined in GHC.Ix Methodsrange :: ((a, b), (a, b)) -> [(a, b)] Source index :: ((a, b), (a, b)) -> (a, b) -> Int Source unsafeIndex :: ((a, b), (a, b)) -> (a, b) -> Int Source inRange :: ((a, b), (a, b)) -> (a, b) -> Bool Source rangeSize :: ((a, b), (a, b)) -> Int Source unsafeRangeSize :: ((a, b), (a, b)) -> Int Source |
|
Ix a => Ix (Const a b) Source | Since: base-4.9.0.0 |
Defined in Data.Functor.Const Methodsrange :: (Const a b, Const a b) -> [Const a b] Source index :: (Const a b, Const a b) -> Const a b -> Int Source unsafeIndex :: (Const a b, Const a b) -> Const a b -> Int Source inRange :: (Const a b, Const a b) -> Const a b -> Bool Source rangeSize :: (Const a b, Const a b) -> Int Source unsafeRangeSize :: (Const a b, Const a b) -> Int Source |
|
(Ix a1, Ix a2, Ix a3) => Ix (a1, a2, a3) Source | Since: base-2.1 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3), (a1, a2, a3)) -> [(a1, a2, a3)] Source index :: ((a1, a2, a3), (a1, a2, a3)) -> (a1, a2, a3) -> Int Source unsafeIndex :: ((a1, a2, a3), (a1, a2, a3)) -> (a1, a2, a3) -> Int Source inRange :: ((a1, a2, a3), (a1, a2, a3)) -> (a1, a2, a3) -> Bool Source rangeSize :: ((a1, a2, a3), (a1, a2, a3)) -> Int Source unsafeRangeSize :: ((a1, a2, a3), (a1, a2, a3)) -> Int Source |
|
(Ix a1, Ix a2, Ix a3, Ix a4) => Ix (a1, a2, a3, a4) Source | Since: base-2.1 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> [(a1, a2, a3, a4)] Source index :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> (a1, a2, a3, a4) -> Int Source unsafeIndex :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> (a1, a2, a3, a4) -> Int Source inRange :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> (a1, a2, a3, a4) -> Bool Source rangeSize :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> Int Source |
|
(Ix a1, Ix a2, Ix a3, Ix a4, Ix a5) => Ix (a1, a2, a3, a4, a5) Source | Since: base-2.1 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> [(a1, a2, a3, a4, a5)] Source index :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> (a1, a2, a3, a4, a5) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> (a1, a2, a3, a4, a5) -> Int Source inRange :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> (a1, a2, a3, a4, a5) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> Int Source |
|
(Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6) => Ix (a1, a2, a3, a4, a5, a6) Source | Since: base-4.15.0.0 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6), (a1, a2, a3, a4, a5, a6)) -> [(a1, a2, a3, a4, a5, a6)] Source index :: ((a1, a2, a3, a4, a5, a6), (a1, a2, a3, a4, a5, a6)) -> (a1, a2, a3, a4, a5, a6) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6), (a1, a2, a3, a4, a5, a6)) -> (a1, a2, a3, a4, a5, a6) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6), (a1, a2, a3, a4, a5, a6)) -> (a1, a2, a3, a4, a5, a6) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6), (a1, a2, a3, a4, a5, a6)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6), (a1, a2, a3, a4, a5, a6)) -> Int Source |
|
(Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7) => Ix (a1, a2, a3, a4, a5, a6, a7) Source | Since: base-4.15.0.0 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6, a7), (a1, a2, a3, a4, a5, a6, a7)) -> [(a1, a2, a3, a4, a5, a6, a7)] Source index :: ((a1, a2, a3, a4, a5, a6, a7), (a1, a2, a3, a4, a5, a6, a7)) -> (a1, a2, a3, a4, a5, a6, a7) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7), (a1, a2, a3, a4, a5, a6, a7)) -> (a1, a2, a3, a4, a5, a6, a7) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6, a7), (a1, a2, a3, a4, a5, a6, a7)) -> (a1, a2, a3, a4, a5, a6, a7) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6, a7), (a1, a2, a3, a4, a5, a6, a7)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7), (a1, a2, a3, a4, a5, a6, a7)) -> Int Source |
|
(Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8) => Ix (a1, a2, a3, a4, a5, a6, a7, a8) Source | Since: base-4.15.0.0 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6, a7, a8), (a1, a2, a3, a4, a5, a6, a7, a8)) -> [(a1, a2, a3, a4, a5, a6, a7, a8)] Source index :: ((a1, a2, a3, a4, a5, a6, a7, a8), (a1, a2, a3, a4, a5, a6, a7, a8)) -> (a1, a2, a3, a4, a5, a6, a7, a8) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8), (a1, a2, a3, a4, a5, a6, a7, a8)) -> (a1, a2, a3, a4, a5, a6, a7, a8) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8), (a1, a2, a3, a4, a5, a6, a7, a8)) -> (a1, a2, a3, a4, a5, a6, a7, a8) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8), (a1, a2, a3, a4, a5, a6, a7, a8)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8), (a1, a2, a3, a4, a5, a6, a7, a8)) -> Int Source |
|
(Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9) Source | Since: base-4.15.0.0 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9)] Source index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9), (a1, a2, a3, a4, a5, a6, a7, a8, a9)) -> Int Source |
|
(Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9, Ix aA) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA) Source | Since: base-4.15.0.0 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)] Source index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA)) -> Int Source |
|
(Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9, Ix aA, Ix aB) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB) Source | Since: base-4.15.0.0 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)] Source index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB)) -> Int Source |
|
(Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9, Ix aA, Ix aB, Ix aC) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC) Source | Since: base-4.15.0.0 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)] Source index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC)) -> Int Source |
|
(Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9, Ix aA, Ix aB, Ix aC, Ix aD) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD) Source | Since: base-4.15.0.0 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)] Source index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD)) -> Int Source |
|
(Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9, Ix aA, Ix aB, Ix aC, Ix aD, Ix aE) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE) Source | Since: base-4.15.0.0 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)] Source index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE)) -> Int Source |
|
(Ix a1, Ix a2, Ix a3, Ix a4, Ix a5, Ix a6, Ix a7, Ix a8, Ix a9, Ix aA, Ix aB, Ix aC, Ix aD, Ix aE, Ix aF) => Ix (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF) Source | Since: base-4.15.0.0 |
Defined in GHC.Ix Methodsrange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)) -> [(a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)] Source index :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF) -> Int Source unsafeIndex :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF) -> Int Source inRange :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)) -> (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF) -> Bool Source rangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)) -> Int Source unsafeRangeSize :: ((a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF), (a1, a2, a3, a4, a5, a6, a7, a8, a9, aA, aB, aC, aD, aE, aF)) -> Int Source |
Deriving Instances of Ix
Derived instance declarations for the class Ix
are only possible for enumerations (i.e. datatypes having only nullary constructors) and single-constructor datatypes, including arbitrarily large tuples, whose constituent types are instances of Ix
.
- For an enumeration, the nullary constructors are assumed to be numbered left-to-right with the indices being 0 to n-1 inclusive. This is the same numbering defined by the
Enum
class. For example, given the datatype:
data Colour = Red | Orange | Yellow | Green | Blue | Indigo | Violet
we would have:
range (Yellow,Blue) == [Yellow,Green,Blue]
index (Yellow,Blue) Green == 1
inRange (Yellow,Blue) Red == False
- For single-constructor datatypes, the derived instance declarations are as shown for tuples in chapter 19, section 2 of the Haskell 2010 report: https://www.haskell.org/onlinereport/haskell2010/haskellch19.html.
© 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/Data-Ix.html