VD>Что-то я не пойму как тип сохраняется. Можно пример матчинга для класса не имеющего дефолтного конструктора?
Имеется ввиду, что там матчинг можно делать для любого класса с конструктором определённого вида, а в Скала — только для case класса. Соответственно, если есть аллергия на case class, то придётся имплисит ковертор в тупл делать с потерей исходного типа.
В Котле этого якобы не надо — за что он Сайбераксу понравился.
Ну а я считаю, что хочешь делать п.матчинг — ну и поставь case class, делов-то.
А библиотечные Java-классы, которые трогать нельзя и там и там придётся оборачивать вспомогательным кодом, который пишется один раз и всё — тоже не вижу проблемы.