+
+ -- * 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 Figure 1
+ -- <http://www.haskell.org/onlinelibrary/ix.html#prelude-index>.
+