Careful integration of object-oriented programming with functional programming