[Haskell-cafe] State of OOP in Haskell

szefirov at ot.ru szefirov at ot.ru
Thu Feb 8 06:36:39 EST 2007

Steve Downey wrote:

> The primary goal of writing source code isn't to communicate to a
> computer, but to communicate to a human being.
> That implies that the communication should be at a high enough level
> of abstraction to be easily understood by people, while not losing the
> precision necessary for a computer.
> OO, at least when done well, maps well to how people think. Things
> that can be directed to perform actions. There is also a well
> developed practice of OO analysis and design. It's not clear (at least
> to me) that there is an equivalent set of practices for functional
> programming.

Some of Haskell constructs come from the area of formal methods. 
Notably, algebraic types come from Z-notation (as I am told).

Formal methods in general and Z notation in particular precede OO as 
defined, for example, in Smalltalk-80.

Formal methods do not require substantial training and/or costly tools 
(although both exists). It can be trained in several weeks and start 
bringing benefits.

Here are two surveys (somewhat outdated) on the use of formal methods in 

So, you can safely borrow methodics from formal methods and even think 
about Hindley-Milner type system as a theorem prover.

More information about the Haskell-Cafe mailing list