Data structure and ops for directed graphs
