Use Value* instead of VAL to represent pointers to values