"Since sequences are immutable, this class is used for constructing a new sequence by incrementally appending elements to the empty sequence. This class is mutable but threadsafe." see (`class SequenceAppender`, `function concatenate`, `class Singleton`) shared native class SequenceBuilder<Element>() { "The resulting sequence. If no elements have been appended, the empty sequence." shared native default Element[] sequence; "Append an element to the sequence and return this `SequenceBuilder`" shared native SequenceBuilder<Element> append(Element element); "Append multiple elements to the sequence and return this `SequenceBuilder`" default shared SequenceBuilder<Element> appendAll({Element*} elements) { for (element in elements) { append(element); } return this; } "The size of the resulting sequence." shared Integer size => sequence.size; "Determine if the resulting sequence is empty." shared Boolean empty => size==0; } "This class is used for constructing a new nonempty sequence by incrementally appending elements to an existing nonempty sequence. The existing sequence is not modified, since `Sequence`s are immutable. This class is mutable but threadsafe." see (`class SequenceBuilder`) shared native class SequenceAppender<Element>([Element+] elements) extends SequenceBuilder<Element>() { "The resulting nonempty sequence. If no elements have been appended, the original nonempty sequence." shared actual native [Element+] sequence; }