object oriented languages such as Java and functional languages such as Haskell. As such