The overall situation (admittedly a bit of a stretch):
(The soil depends on the chicken to keep it fertilized. Work with me here.)
There are an infinitude of cycles that could be extracted from this, but we're only interested in the set of shortest-length cycles.
And the classic philosophical gem, Exhibit C:
Is the problem solved, then? Not quite. The current DebGraph cycle detection operator works well for dependencies, but we also want to discover cycles of conflicting packages. Furthermore, one of our documented use cases involves finding nodes that depend on and conflict with one another.