So maybe the operation,  recurseNodeWithOperation and recurseNodeWithPostOperation need to return an enum to indicate whether to continue, abort deeper recursion, or abort entirely.