+ /// a container for the arrows
+ /// we use a list because we want pointers to the arrows,
+ /// and a vector might invalidate them
+ typedef std::list<Arrow> Arrows;
+ Arrows arrows_;
+ /// Represents a vertex of the graph. Note that we could recover
+ /// the in_arrows and out_arrows from the Arrows, so these are in
+ /// effect a kind of cache.