Я начинающий (иш) в Haskell, и я нахожу сообщение об ошибке очень трудным для понимания (я думаю, что он приходит со временем). В любом случае, чтобы помочь мне понять мои ошибки, я попытался добавить промежуточную переменную с аннотацией типа в привязке let и обнаружил, что она порождает еще больше ошибок, хотя мой тип (я думаю) правильный.
Пример
f :: a -> a
f x =
let x' = x :: a
in x'
Сгенерировать следующую ошибку
test.hs:3:12:
Couldn't match expected type `a2' with actual type `a'
`a2' is a rigid type variable bound by
an expression type signature: a2 at test.hs:3:12
`a' is a rigid type variable bound by
the type signature for f :: a -> a at test.hs:1:6
In the expression: x :: a
In an equation for x': x' = x :: a
In the expression: let x' = x :: a in x
Я делаю что-то неправильно или это невозможно сделать?