struct tree { whatever payload; std::list vertices; void * optional_whatever; } operator<<(stream& out, tree& benis) { out<