firstIndexThat

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