protected T doEvaluateVarnode(Program program, Varnode vn, Map<Varnode, T> already) {
		if (isLeaf(vn)) {
			return evaluateLeaf(program, vn);
		}
		return evaluateBranch(program, vn, already);
	}
Evaluate a varnode, which could be either a leaf or a branch

<p>
This method is invoked by {@link #evaluateVarnode(Program, Varnode, Map)} when the value has
not already been computed. Only that method should invoke this one directly.

@param program the program defining the static context
@param vn the varnode
@param already a cache of already-evaluated varnodes and their values
@return the value
Ghidra/Debug/ProposedUtils/src/main/java/ghidra/pcode/eval/AbstractVarnodeEvaluator.java