i guess it would be good to retain is_full() in parallel with height <= max_depth since the concept is partial . these are just metrics that can be applied to portions of the graph, in order to judge what to collect where. the metrics are basically the same.