cedric
fun <T> Iterable<T>.mapIf(predicate: (T) -> Boolean, transform: (T) -> T) = map { if (predicate(it)) transform(it) else it}