F-bounded polymorphism for object-oriented programming