A possibly-empty, immutable sequence of values. The type `Sequential<Element>` may be abbreviated `[Element*]` or `Element[]`.

`Sequential` has two enumerated subtypes:

- `Empty`, abbreviated `[]`, represents an empty sequence, and
- `Sequence``<Element>`, abbreviated `[Element+]` represents a non-empty sequence, and has the very important subclass `Tuple`.

See also `Tuple`

no type hierarchy

- `Sequential`
  - `List`
    - `Collection`
      - `Iterable`
        - `Category`
    - `Correspondence`
    - `Ranged`
      - `Iterable`
        - `Category`
  - `Ranged`
    - `Iterable`
      - `Category`

- `Sequential` of
  - `Empty`
    - `empty`
  - `Sequence`
    - `ArraySequence`
    - `Range`
    - `Singleton`
    - `Tuple`

Attributes
`keys` | Source Code `shared actual default Integer[] keys` A sequence containing all indexes of this sequence. Refines `List.keys` ultimately refines `Correspondence.keys`
`rest` | Source Code `shared formal Element[] rest` The rest of the sequence, without the first element. Refines `List.rest` ultimately refines `Iterable.rest`
`reversed` | Source Code `shared formal Element[] reversed` A list containing the elements of this list in reverse order to the order in which they occur in this list. For every `index` of a reversed `list`:
    list.reversed[index]==list[size-1-index]
This is a lazy operation returning a view of this list. Refines `List.reversed`
`string` | Source Code `shared actual default String string` A string of form `"[ x, y, z ]"` where `x`, `y`, and `z` are the `string` representations of the elements of this collection, as produced by the iterator of the collection, or the string `"{}"` if this collection is empty. If the collection iterator produces the value `null`, the string representation contains the string `"null"`. Refines `Collection.string` ultimately refines `Object.string`

Inherited Attributes
Attributes inherited from: `Object` `Object.hash`
Attributes inherited from: `Collection<Element>` `Collection.string`
Attributes inherited from: `Correspondence<Key,Item>` `Correspondence.keys`
Attributes inherited from: `Iterable<Element,Absent>` `Iterable.coalesced`, `Iterable.cycled`, `Iterable.empty`, `Iterable.exceptLast`, `Iterable.first`, `Iterable.indexed`, `Iterable.last`, `Iterable.paired`, `Iterable.rest`, `Iterable.size`, `Iterable.string`
Attributes inherited from: `List<Element>` `List.hash`, `List.lastIndex`, `List.reversed`

Methods
`append` | Source Code `shared formal <Element|Other>[] append<Other>(Other[] elements)` Return a sequence containing the elements of this sequence, in the order in which they occur in this sequence, followed by the given `elements`, in the order in which they occur in the given sequence. See also `prepend()`, `withTrailing()`, `concatenate()`, `Iterable.chain()`
`clone` | Source Code `shared actual default Element[] clone()` This sequence. Refines `List.clone` ultimately refines `Collection.clone`
`initial` | Source Code `shared actual default Element[] initial(Integer length)` Select the first elements of this sequence, returning a sequence no longer than the given length. If this sequence is shorter than the given length, return this sequence. Otherwise return a sequence of the given length. Refines `List.initial`
`prepend` | Source Code `shared formal <Element|Other>[] prepend<Other>(Other[] elements)` Return a sequence containing the given `elements`, in the order in which they occur in the given sequence, followed by the elements of this sequence, in the order in which they occur in this sequence. See also `append()`, `withLeading()`, `concatenate()`
`repeat` | Source Code `shared formal Element[] repeat(Integer times)` Produces a stream formed by repeating the elements of this stream the given number of times, or an empty stream if `times<=0`. For example, the expression
    { 1, 2 }.repeat(3)
evaluates to the stream `{ 1, 2, 1, 2, 1, 2 }`. Refines `List.repeat` ultimately refines `Iterable.repeat`
`sequence` | Source Code `shared actual default Element[] sequence()` This sequence. Refines `Iterable.sequence`
`slice` | Source Code `shared actual default [Element[], Element[]] slice(Integer index)` Return two sequences, the first containing the elements that occur before the given `index`, the second with the elements that occur after the given `index`. If the given `index` is outside the range of indices of this list, one of the returned sequences will be empty. Refines `List.slice`
`terminal` | Source Code `shared actual default Element[] terminal(Integer length)` Select the last elements of the sequence, returning a sequence no longer than the given length. If this sequence is shorter than the given length, return this sequence. Otherwise return a sequence of the given length. Refines `List.terminal`
`trim` | Source Code `shared actual default Element[] trim(Boolean trimming(Element&Object elem))` Trim the elements satisfying the given predicate function from the start and end of this sequence, returning a sequence no longer than this sequence. Refines `List.trim`
`trimLeading` | Source Code `shared actual default Element[] trimLeading(Boolean trimming(Element&Object elem))` Trim the elements satisfying the given predicate function from the start of this sequence, returning a sequence no longer than this sequence. Refines `List.trimLeading`
`trimTrailing` | Source Code `shared actual default Element[] trimTrailing(Boolean trimming(Element&Object elem))` Trim the elements satisfying the given predicate function from the end of this sequence, returning a sequence no longer than this sequence. Refines `List.trimTrailing`
`withLeading` | Source Code `shared formal [Other, Element*] withLeading<Other>(Other element)` Returns a new sequence that starts with the specified `element`, followed by the elements of this sequence, in the order they occur in this sequence. Parameters: `element` The first element of the resulting sequence. See also `prepend()`, `withTrailing()`, `Iterable.follow()`
`withTrailing` | Source Code `shared formal [<Element|Other>+] withTrailing<Other>(Other element)` Returns a new sequence that starts with the elements of this sequence, in the order they occur in this sequence, and ends with the specified `element`. Parameters: `element` The last element of the resulting sequence. See also `append()`, `withLeading()`

Inherited Methods
Methods inherited from: `Object` `Object.equals()`
Methods inherited from: `Category<Element>` `Category.contains()`, `Category.containsAny()`, `Category.containsEvery()`
Methods inherited from: `Collection<Element>` `Collection.clone()`
Methods inherited from: `Correspondence<Key,Item>` `Correspondence.defines()`, `Correspondence.definesAny()`, `Correspondence.definesEvery()`, `Correspondence.get()`, `Correspondence.getAll()`
Methods inherited from: `Iterable<Element,Absent>` `Iterable.any()`, `Iterable.by()`, `Iterable.chain()`, `Iterable.collect()`, `Iterable.count()`, `Iterable.defaultNullElements()`, `Iterable.every()`, `Iterable.filter()`, `Iterable.find()`, `Iterable.findLast()`, `Iterable.flatMap()`, `Iterable.fold()`, `Iterable.follow()`, `Iterable.getFromFirst()`, `Iterable.interpose()`, `Iterable.iterator()`, `Iterable.longerThan()`, `Iterable.map()`, `Iterable.max()`, `Iterable.partition()`, `Iterable.product()`, `Iterable.reduce()`, `Iterable.repeat()`, `Iterable.scan()`, `Iterable.select()`, `Iterable.sequence()`, `Iterable.shorterThan()`, `Iterable.skip()`, `Iterable.skipWhile()`, `Iterable.sort()`, `Iterable.spread()`, `Iterable.take()`, `Iterable.takeWhile()`
Methods inherited from: `List<Element>` `List.endsWith()`, `List.equals()`, `List.firstInclusion()`, `List.firstIndexWhere()`, `List.firstOccurrence()`, `List.getFromLast()`, `List.includes()`, `List.includesAt()`, `List.inclusions()`, `List.indexesWhere()`, `List.initial()`, `List.lastInclusion()`, `List.lastIndexWhere()`, `List.lastOccurrence()`, `List.occurrences()`, `List.occurs()`, `List.occursAt()`, `List.patch()`, `List.slice()`, `List.startsWith()`, `List.sublist()`, `List.sublistFrom()`, `List.sublistTo()`, `List.terminal()`, `List.trim()`, `List.trimLeading()`, `List.trimTrailing()`
Methods inherited from: `Ranged<Index,Element,Subrange>` `Ranged.measure()`, `Ranged.span()`, `Ranged.spanFrom()`, `Ranged.spanTo()`