import ceylon.language { e=empty } "A sequence with no elements. The type `Empty` may be abbreviated `[]`, and an instance is produced by the expression `[]`. That is, in the following expression, `e` has type `[]` and refers to the value `[]`: [] none = []; (Whether the syntax `[]` refers to the type or the value depends upon how it occurs grammatically.)" see (`interface Sequence`) shared interface Empty of e satisfies Nothing[] & Ranged<Integer,[]> & Cloneable<[]> { "Returns an iterator that is already exhausted." shared actual Iterator<Nothing> iterator() => emptyIterator; "Returns `null` for any given index." shared actual Null get(Integer index) => null; "Returns an `Empty` for any given segment." shared actual [] segment(Integer from, Integer length) => this; "Returns an `Empty` for any given span." shared actual [] span(Integer from, Integer to) => this; "Returns an `Empty` for any given span." shared actual [] spanTo(Integer to) => this; "Returns an `Empty` for any given span." shared actual [] spanFrom(Integer from) => this; "Returns `true`." shared actual Boolean empty => true; "Returns 0." shared actual Integer size => 0; "Returns an `Empty`." shared actual [] reversed => this; "Returns an `Empty`." shared actual [] sequence => this; "Returns a string description of the empty sequence: `{}`." shared actual String string => "{}"; "Returns `null`." shared actual Null lastIndex => null; "Returns `null`." shared actual Null first => null; "Returns `null`." shared actual Null last => null; "Returns an `Empty`." shared actual [] rest => this; "Returns an `Empty`." shared actual [] clone => this; "Returns an `Empty`." shared actual [] coalesced => this; "Returns an `Empty`." shared actual [] indexed => this; "Returns `other`." shared actual Iterable<Other,OtherAbsent> chain<Other,OtherAbsent>(Iterable<Other,OtherAbsent> other) given OtherAbsent satisfies Null => other; "Returns `false` for any given element." shared actual Boolean contains(Object element) => false; "Returns 0 for any given predicate." shared actual Integer count( Boolean selecting(Nothing element)) => 0; shared actual Boolean defines(Integer index) => false; shared actual [] map<Result>( Result collecting(Nothing element)) => this; shared actual [] filter (Boolean selecting(Nothing element)) => this; shared actual Result fold<Result>(Result initial, Result accumulating(Result partial, Nothing element)) => initial; shared actual Null find (Boolean selecting(Nothing element)) => null; shared actual [] sort (Comparison comparing(Nothing a, Nothing b)) => this; shared actual [] collect<Result> (Result collecting(Nothing element)) => this; shared actual [] select (Boolean selecting(Nothing element)) => this; shared actual Boolean any (Boolean selecting(Nothing element)) => false; shared actual Boolean every (Boolean selecting(Nothing element)) => false; shared actual [] skipping(Integer skip) => this; shared actual [] taking(Integer take) => this; shared actual [] by(Integer step) => this; shared actual [Element] withLeading<Element> (Element element) => [element]; shared actual [Element] withTrailing<Element> (Element element) => [element]; shared actual {Other+} following<Other>(Other head) => Singleton(head); } "A sequence with no elements, abbreviated `[]`. The unique instance of the type `[]`." //by ("Tako Schotanus") shared object empty extends Object() satisfies [] {} "An iterator that returns no elements." shared object emptyIterator satisfies Iterator<Nothing> { next() => finished; }