export default function ( it: Iterable, pred: (val: T) => val is E ): it is Iterable; export default function ( it: Set, pred: (val: T) => val is E ): it is Set; export default function ( it: T[], pred: (val: T) => val is E ): it is E[]; export default function ( it: Iterable, pred: (val: T) => boolean ): boolean; export default function ( it: Iterable, pred: (val: T) => boolean ): boolean { for (const val of it) { if (!pred(val)) { return false; } } return true; }