Helper class that takes an Expression and if visited will load it normally,
storing the result in a helper variable, which then can be requested after
the visit is completed. A copy of the variable will stay on the stack.
Subsequent visits will load the stored value instead of visiting the
expression again