Module Data.Ix

Imports

Table of Content

Definitions

class (Eq a, Ord a) ⇒ Ix a

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

Known Instances

Char, (,), (), (,,,), (,,), Bool, (,,,,), Integer, Int, Ordering

Member Functions

inRangeIx a ⇒ (a, a) → a → Bool

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

indexIx a ⇒ (a, a) → a → Int

The position of a subscript in the subrange.

Must specify one of index, unsafeIndex

Ix.index is typically over-ridden in instances, with essentially the same code, but using indexError instead of error Reason: we have Show at the instances

rangeIx a ⇒ (a, a) → [a]

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

rangeSizeIx a ⇒ (a, a) → Int

The size of the subrange defined by a bounding pair.

unsafeIndexIx a ⇒ (a, a) → a → Int

Like Ix.index, but without checking that the value is in range.

unsafeRangeSizeIx a ⇒ (a, a) → Int

like Ix.rangeSize, but without checking that the upper bound is in range.

indexErrorShow a ⇒ (a, a) → a → String → b

nowarn: diverge

Instances

instance Ix ()

Member Functions

inRange((), ())()Bool
index((), ())()Int
range((), ()) → [()]
rangeSize((), ())Int

inherited from Ix.rangeSize

unsafeIndex((), ())()Int
unsafeRangeSize((), ())Int

inherited from Ix.unsafeRangeSize

instance (Ix a, Ix b) ⇒ Ix (a, b)

Member Functions

inRange ∷ (Ix β, Ix α) ⇒ ((β, α), (β, α))(β, α)Bool
index ∷ (Ix β, Ix α) ⇒ ((β, α), (β, α))(β, α)Int

inherited from Ix.index

range ∷ (Ix β, Ix α) ⇒ ((β, α), (β, α)) → [(β, α)]
rangeSize ∷ (Ix β, Ix α) ⇒ ((β, α), (β, α))Int

inherited from Ix.rangeSize

unsafeIndex ∷ (Ix β, Ix α) ⇒ ((β, α), (β, α))(β, α)Int
unsafeRangeSize ∷ (Ix β, Ix α) ⇒ ((β, α), (β, α))Int

inherited from Ix.unsafeRangeSize

instance (Ix a1, Ix a2, Ix a3) ⇒ Ix (a1, a2, a3)

Member Functions

inRange ∷ (Ix β, Ix γ, Ix α) ⇒ ((β, γ, α), (β, γ, α))(β, γ, α)Bool
index ∷ (Ix β, Ix γ, Ix α) ⇒ ((β, γ, α), (β, γ, α))(β, γ, α)Int

inherited from Ix.index

range ∷ (Ix β, Ix γ, Ix α) ⇒ ((β, γ, α), (β, γ, α)) → [(β, γ, α)]
rangeSize ∷ (Ix β, Ix γ, Ix α) ⇒ ((β, γ, α), (β, γ, α))Int

inherited from Ix.rangeSize

unsafeIndex ∷ (Ix β, Ix γ, Ix α) ⇒ ((β, γ, α), (β, γ, α))(β, γ, α)Int
unsafeRangeSize ∷ (Ix β, Ix γ, Ix α) ⇒ ((β, γ, α), (β, γ, α))Int

inherited from Ix.unsafeRangeSize

instance (Ix a1, Ix a2, Ix a3, Ix a4) ⇒ Ix (a1, a2, a3, a4)

Member Functions

inRange ∷ (Ix γ, Ix δ, Ix β, Ix α) ⇒ ((γ, δ, β, α), (γ, δ, β, α))(γ, δ, β, α)Bool
index ∷ (Ix γ, Ix δ, Ix β, Ix α) ⇒ ((γ, δ, β, α), (γ, δ, β, α))(γ, δ, β, α)Int

inherited from Ix.index

range ∷ (Ix γ, Ix δ, Ix β, Ix α) ⇒ ((γ, δ, β, α), (γ, δ, β, α)) → [(γ, δ, β, α)]
rangeSize ∷ (Ix γ, Ix δ, Ix β, Ix α) ⇒ ((γ, δ, β, α), (γ, δ, β, α))Int

inherited from Ix.rangeSize

unsafeIndex ∷ (Ix γ, Ix δ, Ix β, Ix α) ⇒ ((γ, δ, β, α), (γ, δ, β, α))(γ, δ, β, α)Int
unsafeRangeSize ∷ (Ix γ, Ix δ, Ix β, Ix α) ⇒ ((γ, δ, β, α), (γ, δ, β, α))Int

inherited from Ix.unsafeRangeSize

instance (Ix a1, Ix a2, Ix a3, Ix a4, Ix a5) ⇒ Ix (a1, a2, a3, a4, a5)

Member Functions

inRange ∷ (Ix δ, Ix ε, Ix β, Ix γ, Ix α) ⇒ ((δ, ε, β, γ, α), (δ, ε, β, γ, α))(δ, ε, β, γ, α)Bool
index ∷ (Ix δ, Ix ε, Ix β, Ix γ, Ix α) ⇒ ((δ, ε, β, γ, α), (δ, ε, β, γ, α))(δ, ε, β, γ, α)Int

inherited from Ix.index

range ∷ (Ix δ, Ix ε, Ix β, Ix γ, Ix α) ⇒ ((δ, ε, β, γ, α), (δ, ε, β, γ, α)) → [(δ, ε, β, γ, α)]
rangeSize ∷ (Ix δ, Ix ε, Ix β, Ix γ, Ix α) ⇒ ((δ, ε, β, γ, α), (δ, ε, β, γ, α))Int

inherited from Ix.rangeSize

unsafeIndex ∷ (Ix δ, Ix ε, Ix β, Ix γ, Ix α) ⇒ ((δ, ε, β, γ, α), (δ, ε, β, γ, α))(δ, ε, β, γ, α)Int
unsafeRangeSize ∷ (Ix δ, Ix ε, Ix β, Ix γ, Ix α) ⇒ ((δ, ε, β, γ, α), (δ, ε, β, γ, α))Int

inherited from Ix.unsafeRangeSize

instance Ix Bool

Member Functions

inRange(Bool, Bool)BoolBool
index(Bool, Bool)BoolInt
range(Bool, Bool) → [Bool]
rangeSize(Bool, Bool)Int

inherited from Ix.rangeSize

unsafeIndex(Bool, Bool)BoolInt
unsafeRangeSize(Bool, Bool)Int

inherited from Ix.unsafeRangeSize

instance Ix Char

Member Functions

inRange(Char, Char)CharBool
index(Char, Char)CharInt
range(Char, Char) → [Char]
rangeSize(Char, Char)Int

inherited from Ix.rangeSize

unsafeIndex(Char, Char)CharInt
unsafeRangeSize(Char, Char)Int

inherited from Ix.unsafeRangeSize

instance Ix Int

Member Functions

inRange(Int, Int)IntBool
index(Int, Int)IntInt
range(Int, Int) → [Int]
rangeSize(Int, Int)Int

inherited from Ix.rangeSize

unsafeIndex(Int, Int)IntInt
unsafeRangeSize(Int, Int)Int

inherited from Ix.unsafeRangeSize

instance Ix Integer

Member Functions

inRange(Integer, Integer)IntegerBool
index(Integer, Integer)IntegerInt
range(Integer, Integer) → [Integer]
rangeSize(Integer, Integer)Int

inherited from Ix.rangeSize

unsafeIndex(Integer, Integer)IntegerInt
unsafeRangeSize(Integer, Integer)Int

inherited from Ix.unsafeRangeSize

instance Ix Ordering

Member Functions

inRange(Ordering, Ordering)OrderingBool
index(Ordering, Ordering)OrderingInt
range(Ordering, Ordering) → [Ordering]
rangeSize(Ordering, Ordering)Int

inherited from Ix.rangeSize

unsafeIndex(Ordering, Ordering)OrderingInt
unsafeRangeSize(Ordering, Ordering)Int

inherited from Ix.unsafeRangeSize

Functions and Values by Type

((), ()) → ()Bool

Ix_().inRange

((), ()) → ()Int

Ix_().unsafeIndex, Ix_().index

((), ()) → [()]

Ix_().range

((), ()) → Int

Ix_().unsafeRangeSize, Ix_().rangeSize

(Bool, Bool) → BoolBool

Ix_Bool.inRange

(Bool, Bool) → BoolInt

Ix_Bool.unsafeIndex, Ix_Bool.index

(Bool, Bool) → [Bool]

Ix_Bool.range

(Bool, Bool) → Int

Ix_Bool.unsafeRangeSize, Ix_Bool.rangeSize

(Char, Char) → CharBool

Ix_Char.inRange

(Char, Char) → CharInt

Ix_Char.unsafeIndex, Ix_Char.index

(Char, Char) → [Char]

Ix_Char.range

(Char, Char) → Int

Ix_Char.unsafeRangeSize, Ix_Char.rangeSize

(Int, Int) → IntBool

Ix_Int.inRange

(Int, Int) → IntInt

Ix_Int.unsafeIndex, Ix_Int.index

(Int, Int) → [Int]

Ix_Int.range

(Int, Int) → Int

Ix_Int.unsafeRangeSize, Ix_Int.rangeSize

(Integer, Integer) → IntegerBool

Ix_Integer.inRange

(Integer, Integer) → IntegerInt

Ix_Integer.unsafeIndex, Ix_Integer.index

(Integer, Integer) → [Integer]

Ix_Integer.range

(Integer, Integer) → Int

Ix_Integer.unsafeRangeSize, Ix_Integer.rangeSize

(Ordering, Ordering) → OrderingBool

Ix_Ordering.inRange

(Ordering, Ordering) → OrderingInt

Ix_Ordering.unsafeIndex, Ix_Ordering.index

(Ordering, Ordering) → [Ordering]

Ix_Ordering.range

(Ordering, Ordering) → Int

Ix_Ordering.unsafeRangeSize, Ix_Ordering.rangeSize

Ix a ⇒ (a, a) → a → Bool

Ix.inRange

Ix a ⇒ (a, a) → a → Int

Ix.unsafeIndex, Ix.index

Ix a ⇒ (a, a) → [a]

Ix.range

Ix a ⇒ (a, a) → Int

Ix.unsafeRangeSize, Ix.rangeSize

(Ix β, Ix α) ⇒ ((β, α), (β, α)) → (β, α) → Bool

Ix_(,).inRange

(Ix β, Ix α) ⇒ ((β, α), (β, α)) → (β, α) → Int

Ix_(,).unsafeIndex, Ix_(,).index

(Ix β, Ix α) ⇒ ((β, α), (β, α)) → [(β, α)]

Ix_(,).range

(Ix β, Ix α) ⇒ ((β, α), (β, α)) → Int

Ix_(,).unsafeRangeSize, Ix_(,).rangeSize

Show a ⇒ (a, a) → a → String → b

indexError

(Ix β, Ix γ, Ix α) ⇒ ((β, γ, α), (β, γ, α)) → (β, γ, α) → Bool

Ix_(,,).inRange

(Ix β, Ix γ, Ix α) ⇒ ((β, γ, α), (β, γ, α)) → (β, γ, α) → Int

Ix_(,,).unsafeIndex, Ix_(,,).index

(Ix β, Ix γ, Ix α) ⇒ ((β, γ, α), (β, γ, α)) → [(β, γ, α)]

Ix_(,,).range

(Ix β, Ix γ, Ix α) ⇒ ((β, γ, α), (β, γ, α)) → Int

Ix_(,,).unsafeRangeSize, Ix_(,,).rangeSize

(Ix γ, Ix δ, Ix β, Ix α) ⇒ ((γ, δ, β, α), (γ, δ, β, α)) → (γ, δ, β, α) → Bool

Ix_(,,,).inRange

(Ix γ, Ix δ, Ix β, Ix α) ⇒ ((γ, δ, β, α), (γ, δ, β, α)) → (γ, δ, β, α) → Int

Ix_(,,,).unsafeIndex, Ix_(,,,).index

(Ix γ, Ix δ, Ix β, Ix α) ⇒ ((γ, δ, β, α), (γ, δ, β, α)) → [(γ, δ, β, α)]

Ix_(,,,).range

(Ix γ, Ix δ, Ix β, Ix α) ⇒ ((γ, δ, β, α), (γ, δ, β, α)) → Int

Ix_(,,,).unsafeRangeSize, Ix_(,,,).rangeSize

(Ix δ, Ix ε, Ix β, Ix γ, Ix α) ⇒ ((δ, ε, β, γ, α), (δ, ε, β, γ, α)) → (δ, ε, β, γ, α) → Bool

Ix_(,,,,).inRange

(Ix δ, Ix ε, Ix β, Ix γ, Ix α) ⇒ ((δ, ε, β, γ, α), (δ, ε, β, γ, α)) → (δ, ε, β, γ, α) → Int

Ix_(,,,,).unsafeIndex, Ix_(,,,,).index

(Ix δ, Ix ε, Ix β, Ix γ, Ix α) ⇒ ((δ, ε, β, γ, α), (δ, ε, β, γ, α)) → [(δ, ε, β, γ, α)]

Ix_(,,,,).range

(Ix δ, Ix ε, Ix β, Ix γ, Ix α) ⇒ ((δ, ε, β, γ, α), (δ, ε, β, γ, α)) → Int

Ix_(,,,,).unsafeRangeSize, Ix_(,,,,).rangeSize

Valid HTML 4.01 Strict