Object-Oriented Type Systems