Haskell: Saída inesperada para expressão [0, 0.1 .. 1]

Ao avaliar a expressão:

*main> [0, 0.1 .. 1]

Na verdade, eu estava esperando:

 [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]

Mas fiquei bastante chocado ao ver a saída ser

[0.0,0.1,0.2,0.30000000000000004,0.4000000000000001,0.5000000000000001,0.6000000000000001,0.7000000000000001,0.8,0.9,1.0]

Por que Haskell produz esse resultado na avaliação?

questionAnswers(2)

yourAnswerToTheQuestion