Question: what is the difference between type equivalence and type compatibility?
Answer: Equivalence is a tighter relationship. Objects and contexts can be equivalent only when their types are same. Type Compatibility: Type Compatibility determines where an objects of a certain type can be used, that is, it tells what kind of data can be held in the object depending on the compatibility of its type.