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

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

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.Если да, то почему этот тип принуждения терпит неудачу?

...