В настоящее время я изучаю идеи для нового языка программирования, где в идеале я хотел бы, чтобы язык смешивал некоторые функциональные и процедурные (объектно-ориентированные) концепции.
Одна из вещей, которые я действительно увлекаю такими языками, как Haskell, - это то, что она статически типизирована, но вам не нужно вводить аннотации типов (волшебство благодаря Hindley-Milner!).
Мне бы очень понравилось это для моего языка, однако после чтения по этому вопросу кажется, что большинство согласны с тем, что вывод типа непрактичен/невозможно с подтипированием/ориентацией объектов, однако я не понял, почему это так. Я не знаю F #, но я понимаю, что он использует Hindley-Milner AND объектно-ориентированный.
Мне бы очень хотелось пояснить это и, желательно, примеры в сценариях, где вывод типа невозможно для объектно-ориентированных языков.