The H2 Wiki


Correcting Haskell myths


There are many myths about Haskell floating around. Here is the truth. (Work in progress)

Lenses are not a crutch to get around the poor record system

Monads are not a hack to get around purity

Extensions are compatible with each other

(I haven’t checked this 100% but I’ve never come across or heard about a significant incompatibility)

Haskell language extensions do not change the language semantics. They extend the semantics with additional functionality. Existing code does not change its meaning when you enable an extension.

A pure language can have effects

Haskellers don’t literally believe “if it compiles it works”

The origin seems to be unrelated to Haskell. See some early references. Some appear to be tongue in cheek.

Some Haskellers discussing the notion

You can use “debugging printfs”

You don’t have to engage with the whole complexity of Haskell to

write simple programs

You can adopt Haskell features piecemeal

Haskell is not “just math”/“just category theory”/“just lambda calculus”