Следующий код имеет подпись 'c -> 'c
:
let f (x: 'c) = x
Однако следующий код имеет подпись obj -> obj
:
let f<'a> (x: 'c) = x
Добавление параметра типа 'c
исправляетподпись, возвращая ее к 'c -> 'c
:
let f<'a, 'c> (x: 'c) = x
Можно ли явно объявить только некоторые из подписей?Я просто хочу что-то вроде
let f<'a> (x: MyType<'c>) =
let foo = doSomethingBasedOn typeof<'a>
processXWithoutCaringAboutTypeC x foo
Это похоже на десериализацию или распаковку, поэтому мне нужны явные аргументы типа для 'a
, но мне действительно все равно, тип 'c
и не хотел бы явно указывать его (или подстановочный тип).