Read "Contextual Effects for Version-Consistent Dynamic Software
Updating and Safe Concurrent Programming" and then answer the
following questions on Canvas:
1. Explain what is meant by "the usual covariance and contravariance where
appropriate" with respect to figure 2. What specific rules are being referred
to, and do those rules involve covariance, contravariance, or both?
2. Why is it important for Lemma 2.3 to be true? If the authors didn't prove
Lemma 2.3, what might be wrong with their system?
3. What is the relationship between the type-and-effect systems described
in this paper and typestate, if any? Could you express one in terms of the other?
4. What was the most confusing part of the reading? Is there anything you still don't understand?
5. How much time did you spend on this assignment (both the reading and answering the questions, combined)?