gildor
fun <A, B, C> List<A>.zip(b: List<B>, c: List<C>): List<Triple<A, B, C>> { val length = min(this.size, min(b.size, c.size)) return List(length) { Triple(this[it], b[it], c[it]) } }