В смысле, чтобы в биткод компилить можно было. Тут уж точно лишняя прослойка ни к чему, иначе отладка превратится из "где я ошибся" в "какая из черепашек пиздит".
эех, написал функцию с сигнатурой fun <T, E> Mutated<T>.rearrange(mutation: (T) -> Pair<T, E>): Pair<Mutated<T>, E>, понял, что выглядит как что-то знакомое