ещё насчёт interop с java
есть допустим у меня метод peek(op: (T) -> Unit) который я хочу вызывать и из java, и из kotlin.
если описать его именно как peek(op: (T) -> Unit), то лямба в java вида it->doSmth(it) будет не совместима (возвращает void а не Unit).
если описать его как peek(op: Consumer<T>), то вызов из java будет работать красиво, а вот вызов из kotlin - паршиво.
если сделать overload, то kotlin будет работать норм, а вот java скажет, что есть два подходящих метода.
вариант op: (T) -> Unit? тоже не канает - void здесь не совместим ни с Unit, ни с Unit?
есть какое-то красивое решение?