Alexandre, after compiling your source code, I obtain the following dependency Matrix:
We can see that the compiler generated a sub type declared inside Program
from you. This generated type, named Program+<>c__DisplayClass1
is just compiler gymnastic, it is not part of your source code. This is not a problem that both these types are mutually dependent and you cannot do much about it.
To discard generated type you can write a query like...
from t in Application.Types
where !t.IsGeneratedByCompiler
select t
...and then export part of the result to the Matrix:
Finally, I'd like to add that types being mutually dependent is not a problem in the general case. Most of well-known GoF design patterns require mutually dependent types.
The problem is when you have mutually dependent components, especially if these components are namespaces. There are two white-books about this topic available publicly on the NDepend web-site.
One of the case where types being mutually dependent is a problem is when base class is using derivatives (there is a default CQLinq rule Base class should not use derivatives for that)