firstThat

inline fun <T> Iterable<T>.firstThat(predicate: (index: Int, T) -> Boolean): T
inline fun <T> Array<T>.firstThat(predicate: (index: Int, T) -> Boolean): T
inline fun ByteArray.firstThat(predicate: (index: Int, Byte) -> Boolean): Byte
inline fun ShortArray.firstThat(predicate: (index: Int, Short) -> Boolean): Short
inline fun IntArray.firstThat(predicate: (index: Int, Int) -> Boolean): Int
inline fun LongArray.firstThat(predicate: (index: Int, Long) -> Boolean): Long
inline fun FloatArray.firstThat(predicate: (index: Int, Float) -> Boolean): Float
inline fun DoubleArray.firstThat(predicate: (index: Int, Double) -> Boolean): Double
inline fun BooleanArray.firstThat(predicate: (index: Int, Boolean) -> Boolean): Boolean
inline fun CharArray.firstThat(predicate: (index: Int, Char) -> Boolean): Char