Я пытаюсь создать различные методы расширения для универсального типа , привязанного к конкретным параметрам универсального типа в F #, но язык, похоже, не позволяет мне:
Я хочу сделать что-то вроде следующего:
type IEnumerable<int> with
member this.foo =
this.ToString()
Тем не менее, это дает мне ошибку компилятора (подчеркивая ключевое слово int
):
Неожиданный идентификатор в имени типа. Ожидаемый инфиксный оператор, символ кавычки или другой токен.
Следующая работает , хотя и не привязывает параметр общего типа к int
, как я хочу:
type IEnumerable<'a> with
member this.foo =
this.ToString()
Есть ли способ достичь этой цели в F # - возможно, я просто использую неправильный синтаксис? Если нет, я был бы признателен, если бы кто-то мог предложить обходной путь, возможно, где-нибудь использовать ограничения типов.