Evaluating an assignment happens as follows: The left-hand-side of the assignment is considered (the so-called invocation). Based on the tag of the invocation, we know whether we are assigning to a variable, to a function or in a table. Click on the call of assign_case to know more.