Здравствуйте, samius, Вы писали:
V>>Т.е., ограничения аргумента необходимы для возникновения самой возможности перегрузки ф-ий, но недостаточны, чтобы считаться ad hoc.
S>Указание на то, где ad-hoc поддерживается посредством перегрузки функций — не является критерием того, что считать ad-hoc, а что нет. Это лишь пример.
Как раз здесь — это НЕОБХОДИМОЕ условие.
Без поддержки перегрузки ф-ий не бывает ad hoc.
Рядом уже показал в общей классификации систем типов, что "полиморфизмом" называют лишь "зависимые ф-ии" и ничего более.
Зависимые ф-ии умеют оперировать над аргументами разных типов.
В случае ad hoc полиморфизма в языке должна присутствовать принципиальная возможность определять разные версии одной и той же ф-ии для разных типов аргументов (или групп типов).
S>А классификация (по Стрэчи) предыдущим разделом. Там же указано что ограничение типа аргумента классом типа — есть ad-hoc.
Это ошибка. Или самого Стрэчи или ты вырвал пример из контекста.

Вполне возможно, что речь шла об
одной специализации из многих — тогда возникает тот самый ad hoc.
Потому что с т.з. лямбда-исчисления, у нас есть только ф-ии с одним аргументом.
Ф-ии с множеством аргументов приводимы через карринг к ф-иям с одним аргументом.
"Чистые" ф-ии без аргументов эквивалентны константам.
Ф-ии отличаются по их идентификатором.
Итого, всё семейство перегруженных функций от одного аргумента считается одной и той же ф-ией.
Эти моменты надо помнить при чтении тех авторов, которые укушены лямбда-исчислением Черча.
Хотя, ИМХО, лямбда-исчисление — это уровень 0, быть им укушенным — стыдно.