masak the lvalue() macro is funny 20:57
it replaces itself by a constructor call to Location, passing in the Q for the expression that was passed to lvalue() 20:58