В языке Эйфель используется трехуровневая система организации кода:
An Eiffel "system" or "program" is a collection of classes. Above the level of classes, Eiffel defines cluster, which is essentially a group of classes, and possibly of subclusters (nested clusters). Clusters are not a syntactic language construct, but rather a standard organizational convention. Typically an Eiffel program will be organized with each class in a separate file, and each cluster in a directory containing class files. In this organization, subclusters are subdirectories. For example, under standard organizational and casing conventions, x.e might be the name of a file that defines a class called X.
Вообще, для отображения иерархии кода на файлы и каталоги мне известны две системы:
Как в Java — пространства имен в каталогах, классы в файлах.
Как в .NET — пространства имен задаются точечными именами файлов, объединение в каталоги произвольно.
Система .NET используется в современных версиях Delphi и Фантоме. В Канторе, по всей видимости, можно говорить об объединении обоих подходов, но если произвольность объединения в каталоги считать важной, подход Кантора ближе к .NET.
Помимо задачи хранения кода, подсистема «пакетного менеджера» Кантора обеспечивает функциональность патчей. В отличие от Rust и Pijul, работа с кодом ведется на уровне понятий внутренней модели Кантора, а не исходных текстов. О хранилище кода можно говорить как о специализированной БД, а ядро Кантора обеспечивает целостность данных по экспорту/импорту, наследованию и агрегации (с учетом патчей, то есть перекрытия). Тем самым ядро Кантора реализует функциональность объектно-ориентированной СУБД, во многом пересекающуюся с функциональностью ядра объектно-ориентированной ОС в понятиях Кантора:
Помимо задач, характерных для ядра обычной ОС, ядро объектно-ориентированной ОС должно поддерживать программную среду с контролем целостности наследования, полиморфизма и агрегации.