
Data.Ix  Portability  portable  Stability  stable  Maintainer  libraries@haskell.org 





Description 
Class of index types.
The Ix class is used to map a continuous subrange of values in a type onto
integers. It is used primarily for array indexing (see Section 6
http://www.haskell.org/onlinelibrary/array.html#arrays). The Ix
class contains the methods range, index, and inRange. The index operation
maps a bounding pair, which defines the lower and upper bounds of the range,
and a subscript, to an integer. The range operation enumerates all
subscripts; the inRange operation tells whether a particular subscript
lies in the range defined by a bounding pair.
An implementation is entitled to assume the following laws about these
operations:
range (l,u) !! index (l,u) i == i  when i is in range
inRange (l,u) i == i `elem` range (l,u)


Synopsis 

class Ord a => Ix a where  


Documentation 

class Ord a => Ix a where 
 Methods  range :: (a, a) > [a]   index :: (a, a) > a > Int   inRange :: (a, a) > a > Bool   rangeSize :: (a, a) > Int 
  Instances  Ix Char  Ix Int  Ix Integer  Ix Bool  Ix Ordering  Ix ()  (Ix a, Ix b) => Ix (a, b)  (Ix a1, Ix a2, Ix a3) => Ix (a1, a2, a3)  (Ix a1, Ix a2, Ix a3, Ix a4) => Ix (a1, a2, a3, a4)  (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5) => Ix (a1, a2, a3, a4, a5)  Ix SeekMode  Ix IOMode  Ix Int8  Ix Int16  Ix Int32  Ix Int64  Ix Word  Ix Word8  Ix Word16  Ix Word32  Ix Word64  Ix Month  Ix Day 



Deriving Instances of Ix 

Derived instance declarations for the class Ix are only possible
for enumerations (i.e. datatypes having only nullary constructors)
and singleconstructor datatypes, including arbitrarily large tuples,
whose constituent types are instances of Ix.
 For an enumeration, the nullary constructors are assumed to be
numbered lefttoright with the indices being 0 to n1 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


Produced by Haddock version 0.6 