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:
range, (index | unsafeIndex), inRange
range :: (a, a) -> [a] Source #
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 # | |
Ix CIntMax Source # | |
Ix CIntPtr Source # | |
Ix CLLong Source # | |
Ix CLong Source # | |
Defined in Foreign.C.Types | |
Ix CPtrdiff Source # | |
Defined in Foreign.C.Types | |
Ix CSChar Source # | |
Ix CShort Source # | |
Ix CSigAtomic Source # | |
Defined in Foreign.C.Types range :: (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 # | |
Ix CUInt Source # | |
Defined in Foreign.C.Types | |
Ix CUIntMax Source # | |
Defined in Foreign.C.Types | |
Ix CUIntPtr Source # | |
Defined in Foreign.C.Types | |
Ix CULLong Source # | |
Ix CULong Source # | |
Ix CUShort Source # | |
Ix CWchar Source # | |
Ix IntPtr Source # | |
Ix WordPtr Source # | |
Ix Associativity Source # | Since: base-4.9.0.0 |
Defined in GHC.Generics range :: (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 range :: (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 range :: (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 range :: (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 | |
Ix IOMode Source # | Since: base-4.2.0.0 |
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 range :: (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 |
Ix Word32 Source # | Since: base-2.1 |
Ix Word64 Source # | Since: base-2.1 |
Ix Word8 Source # | Since: base-2.1 |
Defined in GHC.Word | |
Ix CBlkCnt Source # | |
Ix CBlkSize Source # | |
Defined in System.Posix.Types | |
Ix CClockId Source # | |
Defined in System.Posix.Types | |
Ix CDev Source # | |
Defined in System.Posix.Types | |
Ix CFsBlkCnt Source # | |
Defined in System.Posix.Types | |
Ix CFsFilCnt Source # | |
Defined in System.Posix.Types | |
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 # | |
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 | |
Ix CSsize Source # | |
Ix CTcflag Source # | |
Ix CUid Source # | |
Defined in System.Posix.Types | |
Ix Fd Source # | |
Ix Ordering Source # | Since: base-2.1 |
Ix Integer Source # | Since: base-2.1 |
Ix Natural Source # | Since: base-4.8.0.0 |
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 range :: (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 # | |
Ix a => Ix (Down a) Source # | Since: base-4.14.0.0 |
Ix a => Ix (a) Source # | |
Ix (Proxy s) Source # | Since: base-4.7.0.0 |
(Ix a, Ix b) => Ix (a, b) Source # | Since: base-2.1 |
Defined in GHC.Ix range :: ((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 | |
(Ix a1, Ix a2, Ix a3) => Ix (a1, a2, a3) Source # | Since: base-2.1 |
Defined in GHC.Ix range :: ((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 range :: ((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 range :: ((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 range :: ((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 range :: ((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 range :: ((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 range :: ((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 range :: ((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 range :: ((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 range :: ((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 range :: ((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 range :: ((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 range :: ((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.