O Haskell é uma linguagem de programação funcional, que tem suporte para booleanos e números generalizados. Isto significa  que, além dos tipos de dados padrão de verdadeiro e falso para booleanos, também é possível criar outros tipos de dados que se comportam como booleanos. Além disso, os números também podem  ser generalizados para incluir outros tipos, como números complexos ou racionais. 