Почему я могу это сделать:
1 + 2.0
но при попытке:
let a = 1
let b = 2.0
a + b
<interactive>:1:5:
Couldn't match expected type `Integer' with actual type `Double'
In the second argument of `(+)', namely `b'
In the expression: a + b
In an equation for `it': it = a + b
Это кажется просто странным! Вы когда-нибудь путешествуете?
P.S.: Я знаю, что "1" и "2.0" являются полиморфными константами. Меня это не беспокоит. Меня беспокоит то, почему haskell делает одно в первом случае, а другое во втором!