Nice! Can the unnecessary crossing lines be detected and removed by reordering the classes? I.e.:
| Class Parser.XML.Tree.SimpleRootNode | Inherit graph | | predef::Parser.XML.Tree.AbstractSimpleNode | | | | predef::Parser.XML.Tree.VirtualNode | | | | +---+--predef::Parser.XML.Tree.SimpleNode | | | | predef::Parser.XML.Tree.XMLParser | | | | +---+--predef::Parser.XML.Tree.SimpleRootNode