export interface ItemPredicate { (item: T, index: number, array: T[]): boolean; } export interface LeftRightPredicate { (l: TL, r: TR): boolean; } export interface Projector { (item: T, index: number, array: T[]): TOut; } export interface ProjectMany { (item: T, index: number, array: T[]): TOut[]; }