    "An immutable `Sequence` implemented using the platform's
     native array type. Where possible copying of the underlying
     array is avoided. Direct use of this type is discouraged."
    see (`class SequenceBuilder`, `class SequenceAppender`)
    shared final native class ArraySequence<out Element>({Element+} elements)
            satisfies Sequence<Element> {

        shared native actual Element last;

        shared native actual Element first;

        shared native actual Integer size;

        shared native actual Integer lastIndex;

        shared native actual Sequential<Element> rest;

        shared native actual Integer count(Boolean(Element) selecting);

        shared native actual Boolean contains(Object element);

        shared actual ArraySequence<Element> clone => this;

        shared native actual Element? get(Integer index);

        shared native actual Iterator<Element> iterator();

        shared native actual Boolean defines(Integer key);

        shared actual Boolean equals(Object other) => (super of List<Element>).equals(other);

        shared actual Integer hash => (super of List<Element>).hash;

        shared native actual ArraySequence<Element> reversed;

        shared native actual Sequential<Element> span(Integer from, Integer to);

        shared native actual Sequential<Element> spanFrom(Integer from);

        shared native actual Sequential<Element> spanTo(Integer to);

        shared native actual Sequential<Element> segment(Integer from, Integer length);

    }