lastThat

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