This smell arises when two or more abstractions depend on each other directly or indirectly.
Related smells: Static Cycles in Dependency Graphs Dependency Cycles between Packages/Subsystems
The following set of tools detects this smell: Designite(for C#) DesigniteJava(for Java)