Scala использует систему типов, основанную на Системе F. ω, которая обычно называется строго нормализующей. Сильная нормализация подразумевает нетьюринговую полноту.
Тем не менее, система типов Scala является полной по Тьюрингу.
Какие изменения / добавления / модификации делают систему типов Scala полной по Тьюрингу. по сравнению с формальными алгоритмами и системами?
Это не исчерпывающий ответ, но причина в том, что вы можете определить рекурсивные типы.
Я задавал подобные вопросы раньше ( о том, как может выглядеть полный язык, не являющийся тьюринговым, ). Ответы были в форме: полный язык Тьюринга должен поддерживать либо произвольный цикл, либо рекурсию . Система типов Scala поддерживает последнее