A directed acyclic graph or DAG is a directed graph with no directed cycles.
An arbitrary directed graph may also be transformed into a DAG, called its condensation, by contracting each of its strongly connected components into a single super vertex.
Go’s import declaration declares a dependency relation between the importing and imported package. It is illegal for a package to import itself, directly or indirectly, or to directly import a package without referring to any of its exported identifiers.
“Allowing cycles enables laziness, poor dependency management, and slow builds” - Rob Pike.
So, definitions strongly connected to each other so much so that they form cycles should be “condensed” into one package, period.
Less is more.