Copyright | (c) The University of Glasgow 1994-2000 |
---|---|
License | see libraries/base/LICENSE |
Maintainer | cvs-ghc@haskell.org |
Stability | internal |
Portability | non-portable (GHC extensions) |
Safe Haskell | None |
Language | Haskell2010 |
GHC's Ix typeclass implementation.
Documentation
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
The list of values in the subrange defined by a bounding pair.
The position of a subscript in the subrange.
unsafeIndex :: (a, a) -> a -> Int #
Like index
, but without checking that the value is in range.
inRange :: (a, a) -> a -> Bool #
Returns True
the given subscript lies in the range defined
the bounding pair.
The size of the subrange defined by a bounding pair.
unsafeRangeSize :: (a, a) -> Int #
like rangeSize
, but without checking that the upper bound is
in range.
Instances
Ix Bool # | Since: base-2.1 |
Ix Char # | Since: base-2.1 |
Ix Int # | Since: base-2.1 |
Ix Int8 # | Since: base-2.1 |
Ix Int16 # | Since: base-2.1 |
Ix Int32 # | Since: base-2.1 |
Ix Int64 # | Since: base-2.1 |
Ix Integer # | Since: base-2.1 |
Ix Natural # | Since: base-4.8.0.0 |
Ix Ordering # | Since: base-2.1 |
Defined in GHC.Ix | |
Ix Word # | Since: base-4.6.0.0 |
Ix Word8 # | Since: base-2.1 |
Ix Word16 # | Since: base-2.1 |
Ix Word32 # | Since: base-2.1 |
Ix Word64 # | Since: base-2.1 |
Ix () # | Since: base-2.1 |
Ix GeneralCategory # | Since: base-2.1 |
Defined in GHC.Unicode range :: (GeneralCategory, GeneralCategory) -> [GeneralCategory] # index :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Int # unsafeIndex :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Int # inRange :: (GeneralCategory, GeneralCategory) -> GeneralCategory -> Bool # rangeSize :: (GeneralCategory, GeneralCategory) -> Int # unsafeRangeSize :: (GeneralCategory, GeneralCategory) -> Int # | |
Ix IOMode # | Since: base-4.2.0.0 |
Ix DecidedStrictness # | Since: base-4.9.0.0 |
Defined in GHC.Generics range :: (DecidedStrictness, DecidedStrictness) -> [DecidedStrictness] # index :: (DecidedStrictness, DecidedStrictness) -> DecidedStrictness -> Int # unsafeIndex :: (DecidedStrictness, DecidedStrictness) -> DecidedStrictness -> Int # inRange :: (DecidedStrictness, DecidedStrictness) -> DecidedStrictness -> Bool # rangeSize :: (DecidedStrictness, DecidedStrictness) -> Int # unsafeRangeSize :: (DecidedStrictness, DecidedStrictness) -> Int # | |
Ix SourceStrictness # | Since: base-4.9.0.0 |
Defined in GHC.Generics range :: (SourceStrictness, SourceStrictness) -> [SourceStrictness] # index :: (SourceStrictness, SourceStrictness) -> SourceStrictness -> Int # unsafeIndex :: (SourceStrictness, SourceStrictness) -> SourceStrictness -> Int # inRange :: (SourceStrictness, SourceStrictness) -> SourceStrictness -> Bool # rangeSize :: (SourceStrictness, SourceStrictness) -> Int # unsafeRangeSize :: (SourceStrictness, SourceStrictness) -> Int # | |
Ix SourceUnpackedness # | Since: base-4.9.0.0 |
Defined in GHC.Generics range :: (SourceUnpackedness, SourceUnpackedness) -> [SourceUnpackedness] # index :: (SourceUnpackedness, SourceUnpackedness) -> SourceUnpackedness -> Int # unsafeIndex :: (SourceUnpackedness, SourceUnpackedness) -> SourceUnpackedness -> Int # inRange :: (SourceUnpackedness, SourceUnpackedness) -> SourceUnpackedness -> Bool # rangeSize :: (SourceUnpackedness, SourceUnpackedness) -> Int # unsafeRangeSize :: (SourceUnpackedness, SourceUnpackedness) -> Int # | |
Ix Associativity # | Since: base-4.9.0.0 |
Defined in GHC.Generics range :: (Associativity, Associativity) -> [Associativity] # index :: (Associativity, Associativity) -> Associativity -> Int # unsafeIndex :: (Associativity, Associativity) -> Associativity -> Int # inRange :: (Associativity, Associativity) -> Associativity -> Bool # rangeSize :: (Associativity, Associativity) -> Int # unsafeRangeSize :: (Associativity, Associativity) -> Int # | |
Ix SeekMode # | Since: base-4.2.0.0 |
Defined in GHC.IO.Device | |
Ix Void # | Since: base-4.8.0.0 |
Ix a => Ix (Down a) # | Since: base-4.14.0.0 |
Ix a => Ix (Identity a) # | Since: base-4.9.0.0 |
Defined in Data.Functor.Identity range :: (Identity a, Identity a) -> [Identity a] # index :: (Identity a, Identity a) -> Identity a -> Int # unsafeIndex :: (Identity a, Identity a) -> Identity a -> Int # inRange :: (Identity a, Identity a) -> Identity a -> Bool # rangeSize :: (Identity a, Identity a) -> Int # unsafeRangeSize :: (Identity a, Identity a) -> Int # | |
(Ix a, Ix b) => Ix (a, b) # | Since: base-2.1 |
Ix (Proxy s) # | Since: base-4.7.0.0 |
Defined in Data.Proxy | |
(Ix a1, Ix a2, Ix a3) => Ix (a1, a2, a3) # | Since: base-2.1 |
Defined in GHC.Ix range :: ((a1, a2, a3), (a1, a2, a3)) -> [(a1, a2, a3)] # index :: ((a1, a2, a3), (a1, a2, a3)) -> (a1, a2, a3) -> Int # unsafeIndex :: ((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 # unsafeRangeSize :: ((a1, a2, a3), (a1, a2, a3)) -> Int # | |
Ix a => Ix (Const a b) # | Since: base-4.9.0.0 |
Defined in Data.Functor.Const range :: (Const a b, Const a b) -> [Const a b] # index :: (Const a b, Const a b) -> Const a b -> Int # unsafeIndex :: (Const a b, Const a b) -> Const a b -> Int # inRange :: (Const a b, Const a b) -> Const a b -> Bool # rangeSize :: (Const a b, Const a b) -> Int # unsafeRangeSize :: (Const a b, Const a b) -> Int # | |
(Ix a1, Ix a2, Ix a3, Ix a4) => Ix (a1, a2, a3, a4) # | Since: base-2.1 |
Defined in GHC.Ix 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 # unsafeIndex :: ((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 # unsafeRangeSize :: ((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) # | Since: base-2.1 |
Defined in GHC.Ix 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 # unsafeIndex :: ((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 # unsafeRangeSize :: ((a1, a2, a3, a4, a5), (a1, a2, a3, a4, a5)) -> Int # |