Я пытаюсь выяснить, почему это не компилируется.
type A() =
member __.M(f:DateTime -> seq<int>) = ()
member __.M(f:DateTime -> obj) = ()
let a = A()
a.M(fun d -> seq [d.Year]) // 'd' is indeterminate type
Если я удаляю вторую перегрузку или добавляю аннотацию типа к d
, это происходит. Это потому, что какой-то аспект разрешения перегрузки возникает перед проверкой типа?