I still don't understand why these operators are not standalone binary functions though. Is there a reason you couldn't have had something like
operator fun <T> plus(a: T, b: Iterable<T>) = ...
operator fun <T> plus(a: Iterable<T>, b: T) = ...
I must admit I don't have the faintest idea of Kotlin's (or most of the JVM's for that matter) inner workings, so I would appreciate if someone could enlighten me on this