FP + OOP = Haskell. The programming language Haskell adds object-oriented functionality (using a concept known as type classes ) to a pure functional programming framework. This paper describes these extensions and analyzes its accomplishments as well as some problems.