fun Iterable.makeUnique(): List { val seen = mutableSetOf() return this.map { element -> generateSequence(element) { it + '_' }.first(seen::add) } }