package world.respect.shared.ext fun List.replace( element: T, replacePredicate: (T) -> Boolean, ): List { val replaceIndex = indexOfFirst(replacePredicate) if(replaceIndex == -1) throw IllegalArgumentException("element to replace not found") return toMutableList().also { it[replaceIndex] = element }.toList() }