I\'m trying to build a directed graph implementation that I can add and delete nodes/edges from, and I can query whether any node participates in a cycle. By participate I mean