haskell2010-base
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Ix

Contents

Description

 
Synopsis

The Ix class

class Ord a => Ix a where #

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, when inRange (l,u) i
  • map (index (l,u)) (range (l,u))) == [0..rangeSize (l,u)-1]
  • rangeSize (l,u) == length (range (l,u))

Minimal complete instance: range, index and inRange.

Methods

range :: (a, a) -> [a] #

The list of values in the subrange defined by a bounding pair.

index :: (a, a) -> a -> Int #

The position of a subscript in the subrange.

inRange :: (a, a) -> a -> Bool #

Returns True the given subscript lies in the range defined the bounding pair.

rangeSize :: (a, a) -> Int #

The size of the subrange defined by a bounding pair.

Instances

Instances details
Ix Bool # 
Instance details

Defined in Data.Ix

Methods

range :: (Bool, Bool) -> [Bool] #

index :: (Bool, Bool) -> Bool -> Int #

inRange :: (Bool, Bool) -> Bool -> Bool #

rangeSize :: (Bool, Bool) -> Int #

Ix GeneralCategory # 
Instance details

Defined in Data.Char

Ix Int # 
Instance details

Defined in Data.Ix

Methods

range :: (Int, Int) -> [Int] #

index :: (Int, Int) -> Int -> Int #

inRange :: (Int, Int) -> Int -> Bool #

rangeSize :: (Int, Int) -> Int #

Ix Int16 # 
Instance details

Defined in Data.Ix

Methods

range :: (Int16, Int16) -> [Int16] #

index :: (Int16, Int16) -> Int16 -> Int #

inRange :: (Int16, Int16) -> Int16 -> Bool #

rangeSize :: (Int16, Int16) -> Int #

Ix Int32 # 
Instance details

Defined in Data.Ix

Methods

range :: (Int32, Int32) -> [Int32] #

index :: (Int32, Int32) -> Int32 -> Int #

inRange :: (Int32, Int32) -> Int32 -> Bool #

rangeSize :: (Int32, Int32) -> Int #

Ix Int64 # 
Instance details

Defined in Data.Ix

Methods

range :: (Int64, Int64) -> [Int64] #

index :: (Int64, Int64) -> Int64 -> Int #

inRange :: (Int64, Int64) -> Int64 -> Bool #

rangeSize :: (Int64, Int64) -> Int #

Ix Int8 # 
Instance details

Defined in Data.Ix

Methods

range :: (Int8, Int8) -> [Int8] #

index :: (Int8, Int8) -> Int8 -> Int #

inRange :: (Int8, Int8) -> Int8 -> Bool #

rangeSize :: (Int8, Int8) -> Int #

Ix Ordering # 
Instance details

Defined in Data.Ix

Ix Word # 
Instance details

Defined in Data.Ix

Methods

range :: (Word, Word) -> [Word] #

index :: (Word, Word) -> Word -> Int #

inRange :: (Word, Word) -> Word -> Bool #

rangeSize :: (Word, Word) -> Int #

Ix Word16 # 
Instance details

Defined in Data.Ix

Ix Word32 # 
Instance details

Defined in Data.Ix

Ix Word64 # 
Instance details

Defined in Data.Ix

Ix Word8 # 
Instance details

Defined in Data.Ix

Methods

range :: (Word8, Word8) -> [Word8] #

index :: (Word8, Word8) -> Word8 -> Int #

inRange :: (Word8, Word8) -> Word8 -> Bool #

rangeSize :: (Word8, Word8) -> Int #

Ix Char # 
Instance details

Defined in Data.Ix

Methods

range :: (Char, Char) -> [Char] #

index :: (Char, Char) -> Char -> Int #

inRange :: (Char, Char) -> Char -> Bool #

rangeSize :: (Char, Char) -> Int #

Ix Integer # 
Instance details

Defined in Data.Ix

Ix IOMode # 
Instance details

Defined in System.IO

Ix SeekMode # 
Instance details

Defined in System.IO

Ix () # 
Instance details

Defined in Data.Ix

Methods

range :: ((), ()) -> [()] #

index :: ((), ()) -> () -> Int #

inRange :: ((), ()) -> () -> Bool #

rangeSize :: ((), ()) -> Int #

(Ix a, Ix b) => Ix (a, b) # 
Instance details

Defined in Data.Ix

Methods

range :: ((a, b), (a, b)) -> [(a, b)] #

index :: ((a, b), (a, b)) -> (a, b) -> Int #

inRange :: ((a, b), (a, b)) -> (a, b) -> Bool #

rangeSize :: ((a, b), (a, b)) -> Int #

(Ix a1, Ix a2, Ix a3) => Ix (a1, a2, a3) # 
Instance details

Defined in Data.Ix

Methods

range :: ((a1, a2, a3), (a1, a2, a3)) -> [(a1, a2, a3)] #

index :: ((a1, a2, a3), (a1, a2, a3)) -> (a1, a2, a3) -> Int #

inRange :: ((a1, a2, a3), (a1, a2, a3)) -> (a1, a2, a3) -> Bool #

rangeSize :: ((a1, a2, a3), (a1, a2, a3)) -> Int #

(Ix a1, Ix a2, Ix a3, Ix a4) => Ix (a1, a2, a3, a4) # 
Instance details

Defined in Data.Ix

Methods

range :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> [(a1, a2, a3, a4)] #

index :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> (a1, a2, a3, a4) -> Int #

inRange :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> (a1, a2, a3, a4) -> Bool #

rangeSize :: ((a1, a2, a3, a4), (a1, a2, a3, a4)) -> Int #

(Ix a1, Ix a2, Ix a3, Ix a4, Ix a5) => Ix (a1, a2, a3, a4, a5) # 
Instance details

Defined in Data.Ix

Methods

range :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> [(a1, a2, a3, a4, a5)] #

index :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> (a1, a2, a3, a4, a5) -> Int #

inRange :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> (a1, a2, a3, a4, a5) -> Bool #

rangeSize :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> Int #