Компилятор F #, по-видимому, выполняет вывод типа в (справедливо) строгом порядке сверху вниз, слева направо. Это означает, что вы должны делать такие вещи, как поместить все определения перед их использованием, порядок компиляции файлов является значительным, и вам, как правило, требуется переупорядочить материал (через |>
или что у вас есть), чтобы избежать явного аннотации типов.
Насколько сложно сделать это более гибким и запланировано для будущей версии F #? Очевидно, это можно сделать, поскольку у Haskell (например) нет таких ограничений с одинаково мощным умозаключением. Есть ли что-то по-разному в отношении дизайна или идеологии F #, вызывающих это?