For some algorithms (e.g. "DAGify"), it might be possible and not too hard to directly construct a Proof during the foldDown or bottomUp traversal, instead of calling the Proof constructor when the traversal is finished. The Proof constructor traverses the proof once again, and this extra traversal might be saved.
For some algorithms (e.g. "DAGify"), it might be possible and not too hard to directly construct a Proof during the foldDown or bottomUp traversal, instead of calling the Proof constructor when the traversal is finished. The Proof constructor traverses the proof once again, and this extra traversal might be saved.