An investigation of types leading to an examination of some aspects of F-bounded interfaces and the type classes of Haskell
The treatment of types in programming and in type checking is considered briefly and types are distinguished from classes. The subtyping relation is discussed with particular emphasis on the consequences of combining the inheritance and subtyping hierarchies in object-oriented programming. Less restrictive type relationships for inheritance are discussed and it is concluded that there are advantages in separating implementation inheritance from subtyping. Further work is needed to establish the significance of such a separation throughout the system development process.