interface Sequence { each(iterator: (value: T) => void ): void; map(iterator: (value: T) => U): Sequence; filter(iterator: (value: T) => boolean): Sequence; groupBy(keySelector: (value: T) => K): Sequence<{ key: K; items: Sequence; }>; }