モジュール A はモジュール B と C をインポートします
モジュール B はインスタンス X をインポートします
モジュール C はインスタンス Y をインポートします
X と Y は、共通型クラスのインスタンスです。
インスタンス X と Y は同じタイプです。つまり、完全にオーバーラップしています。
B または C を別々に使用すると、すべてが機能します。いくつかの比較テスト (またはベンチマーク) を行うためにそれら (ここでは A) をインポートすると、C 内で X と Y の両方が一致するという重複インスタンス エラーが発生します。
C から X へのパスはC -> A -> B
. これが本来あるべき姿ですか?また、これを回避する方法はありますか?通常の状況では 2 つのインスタンスが一緒に使用されることはないため、汚いハックは問題ありません。特にファントムタイプなどは導入したくないです。