который её вызывает.
Если у нас появился n: Node внутри библиотеки, то ничего не сделаешь?
Конечно. Node - это совсем другой тип. Он уже не помнит, каким подтипом он был рождён. А тайпклассы основаны на причислении типа классу. Если мы знаем, что у типа есть набор подтипов, принадлежащих классу, в общем случае это ничего не говорит. Виды полиморфизма в общем случае ортогональны и нельзя использовать привычные для одного подхода модели в другом. Реальные задачи, решаемые несложно субтайпингом, обычно и тайпклассами несложно выражаются, но модель и привычки нужно менять.
Обсуждают сегодня