Submission instructions: Submit a Scheme file for part 1. Write your answer to 2. as a comment in that file. --------------------------------------- 1. Extend your typed lambda calculus implementation from part 2 of the last lecture with subtyping, as described in the lecture on 24/4/09. [ don't worry, this is a lot less work than the last programming exercise ] You can omit the "variants" and "fixpoint" language constructs if you want to. --------------------------------------- 2. Give a brief discussion of subtyping. Is it a useful language feature? What kinds of problems are particularly well-suited for using subtyping? How would you solve these problems without subtyping, say, in Haskell