Executes an implementation of
Visitor in constant stack space.
This function will visit every node in the given
Hir while calling
appropriate methods provided by the
The primary use case for this method is when one wants to perform case
analysis over an
Hir without using a stack size proportional to the depth
Hir. Namely, this method will instead use constant stack space,
but will use heap space proportional to the size of the
Hir. This may be
desirable in cases where the size of
Hir is proportional to end user
If the visitor returns an error at any point, then visiting is stopped and the error is returned.