fixed  assignment semantics