Здравствуйте, novitk, Вы писали:
DM>>Если чуть строже язык сделать, убрать кое-какие неоднозначности/оверлоадинг, наверняка можно исправить. Вон в OCaml, Haxe, Elm тот же Хиндли-Милнер вывод типов, и все очень быстро типизируется и компилируется.
N>В этом и проблема — в Swift не ХМ, как и в Скале.
И там, и там ХМ, просто с наворотами/расширениями.
N>Скрестить ужа (знакомые ООП фишки) и ежа (вывод типов и implicits за конечное время) пока не получается. Это по мнению Одерски, который в type theory собаку сьел.
В разном виде скрещивать уже давно научились, тот же Одерски про добавление сабтайпинга в ХМ еще в 97 году писал.
https://www.cs.tufts.edu/~nr/cs257/archive/martin-odersky/hmx.pdf
Потом эту тему еще много раз по-разному пинали, видимо, одного идеального подхода нет. Из недавних интересных подходов — algebraic subtyping Долана, см. например MLscript.