I finally see why we need a VariableReference. Basically, whenever an ID is referenced in an expression, the operand of that expression should be a VariableReference.