Functional Programming in Haskell (II)

The last article was a short introduction to the language, being more concerned with presenting the history of the language and the benefits of using it and giving a lesser importance to syntax. This time, however, we will discuss the types of the Haskell language. The most defining attribute of Haskell is its static typing system: each expression has a type which is known from compile time. Moreover, there are no implicit conversions between similar types: the programmer is the one responsible for doing them in places where they are needed.