Section Header
    + name := TRAVERSABLE[E];
    - comment := "A `TRAVERSABLE[E_]' is a finite readable sequence of objects of type E_.";
For instance, `COLLECTION's and `STRING's are `TRAVERSABLE'.
A good performance should always be obtained by sequentially acessing a
`TRAVERSABLE' with increasing indexes (from `lower' to `upper'), as
demonstrated in the following code snippet :
i := a_traversable.lower;
{i > a_traversable.upper}.until_do {
do_something_with (a_traversable.item i);
i := i + 1;
};
Other accessing methods (including random access and sequential access
from `upper' to `lower') may or may not lead to acceptable performance,
depending on the particular implementation of `TRAVERSABLE'.
Section Inherit
    - parent_object:OBJECT :=
Section Public
Indexing:
    - lower:INTEGER <-
        Minimum index.
       
        See also `upper', `valid_index', `item'.
    - upper:INTEGER <-
        Maximum index.
       
        See also `lower', `valid_index', `item'.
    - valid_index i:INTEGER :BOOLEAN <-
        True when `i' is valid (i.e., inside actual bounds).
       
        See also `lower', `upper', `item'.
Counting:
    - count:INTEGER <-
        Number of available indices.
       
        See also `is_empty', `lower', `upper'.
    - is_empty:BOOLEAN <-
        Is collection empty ?
       
        See also `count'.
Accessing:
    - item i:INTEGER :E <-
        Item at the corresponding index `i'.
       
        See also `lower', `upper', `valid_index'.
    - first:E <-
        The very `first' item.
       
        See also `last', `item'.
    - last:E <-
        The `last' item.
       
        See also `first', `item'.