Почему нельзя использовать функции с необязательными аргументами для функций без них?

У меня есть следующие простые функции:

type t = unit -> unit

let f () = ()

let g ?opt:_ () = ()

С этими функциями определены, (f :> t) успешно, но (g :> t) завершается со следующей ошибкой:

Ошибка: это выражение не может быть приведено к type t = unit -> unit; это имеет тип

?opt:'a -> unit -> unit

но здесь используется с type t = unit -> unit

Кажется, что тип g должен быть подтипом t, Если так, то почему это принуждение типа терпит неудачу?

0 ответов

Другие вопросы по тегам