Модуль A импортирует модули B и C
Модуль B импортирует экземпляр X
Модуль C импортирует экземпляр Y
X и Y являются экземплярами класса общего типа.
Экземпляры X и Y идентичны по типу, то есть полностью перекрываются.
Когда я использую B или C по отдельности, все работает. Когда я импортирую их (здесь, в A) для сравнительного тестирования (или тестирования), я получаю ошибку перекрывающихся экземпляров внутри C, говорящую, что оба X и Y совпадают.
Это меня озадачивает, поскольку единственный путь от C к X: C -> A -> B
. Так должно быть? Кроме того, есть ли способ обойти это? Я не против грязных хаков, поскольку в обычных обстоятельствах эти два экземпляра никогда не используются вместе. В частности, я не хочу вводить фантомные типы и т. Д.