По сути, я хочу иметь функцию для возврата полиморфной функции, что-то вроде этого:
fun foo () = fn x => x
Таким образом, функция foo принимает значение типа type и возвращает полиморфную функцию тождества.
и компилятор доволен этим, он дает мне:
val foo = fn: unit -> 'a ->' a
но когда я на самом деле вызываю функцию foo, возвращаемое значение не соответствует ожидаемому
val it = fn:? .X1 ->? .X2
Не может обобщить из-за ограничения значения, какая-либо помощь? заранее спасибо