ProductCategory in TYPE with isPowerTypeOf type : ProductModel end ProductModel in TYPE with isPowerTypeOf type : Product end Product in TYPE end ProductCategory in Class end ProductModel in Class end Product in Class end {---} CarModel in TYPE,ProductCategory,Class with isPowerTypeOf type : Car end Car in TYPE,Class end {---} Person end ProductCategory in TYPE,Class with attribute categoryMgr : Person end ProductModel in TYPE,Class with attribute listPrice : Integer end Product in TYPE,Class with attribute owner : Person end peter in Person end CarModel in TYPE,Class,ProductCategory with categoryMgr c : peter attribute numberOfDoors : Integer end Car in TYPE,Class with attribute mileage : Integer; owner : AdultPerson end AdultPerson isA Person end {---} Porsche911 in TYPE,CarModel,Class with numberOfDoors d : 2 listPrice p : 120000 end {---} mary in Person end marysCar in INDIVIDUAL,Porsche911 with mileage m : 27000 owner o : mary end