A clause_graph Class from a boost::adjacency_list
If we are not contemplating removing edges, then edge list might be a std::vector (selector vecS).
Since we are unlikely to want to remove vertices, then vertex list should be a std::vector (selector vecS).
We choose a directed graph (directedS). We don't need a bidirectional graph (bidirectionalS).