I want a program which allows to edit a directed graph (with textual labels at each node).
A must is that the program automatically places the nodes of the graph on the screen in such a way to minimize (as much as reasonable) intersections between arrows, and to make the graph look nice.
The reason I need this is that I want to draw a graph of program modules which use submodules, subsubmodules, etc., mainly to know which modules are used (directly or indirectly) by the "main" module. There may be cycles in dependencies.
Currently I use LibreOffice Writer and to make the graph I use itemized lists (with sublists). I just omit items which were already met above in the lists. To omit some items partially solves my problem, but to have a full-blown directed graph would be better.
I am a Debian Linux user.