Итак, вопрос назрел по мотивам обсуждения синтаксиса. Имеется две модели развития событий:
1. Мы указываем явного предка и получаем фактически клон, к которому применяются изменения. Так работают большинство языков программирования. Плюсы - отлаженная технология. Минусы проблемы с множественным наследованием. Собственно говоря, само множественное наследование вообще тема сложная и потому минус ли там в сложности организации такого наследования или нет еще не понятно толком. Известно, что есть и сторонники (ярый с++ наверно) и противники множественного наследования.
Система х вида Список
2. Мы запрещаем прямо указывать предка для проектируемой системы, но разрешено создавать подсистемы по описаниям других систем. Это изначально упорядочивает структуру систем. Плюсы - нет проблем с множественным наследованием, поскольку каждый предок будет жить в своей собственной подсистеме и все конфликты решаются явным обращением по имени подсистемы.
Например:
Система х
Подсистема а вида Список
Подсистема б вида Множество
Тогда все вопросы связанные со списком разграничены в а, все вопросы связанные с множеством разграничены в б.
С точки зрения внутренней реализации данный вариант проще (и по скорости работы программы и по возможности реализации подобного механизма в принципе).
Вопрос - существует ли ситуация в которой применим вариант 1 и не применим вариант 2? Являются ли они эквивалентными (то есть можно ли с их помощью добиваться одинаковых результатов)?
ЗЫ. Напоминаю, что функции такие же системы как и все остальное и поддаются копированию, удалению и переименованию.