Когда вы видите такие имена, как Ghci30.A [Char]
, это означает, что вы переопределили свой тип A
в GHCi. Это не будет проблемой, если вы использовали правильный .hs
файл и перезагрузили его.
Рассмотрим этот сеанс GHCi:
> data A = A Int
> x = A 2
> data A = A Char -- redefinition
> :t x
Каким должен быть выход? Тип x
- A
, но это не тот тип A
, внутри которого есть Char
. GHCi напечатает тип как
x :: Ghci0.A
Вы не получите ошибку снова, если вы (пере) определите x
после переопределения типа A
.
Если ваш случай, x
, который будет переопределен, скорее всего, fu
, что все еще относится к старому A
. Проверьте это с помощью :t fu
: если упоминается Ghci30.A
, вот и все.
Для нетривиальных определений я бы рекомендовал использовать файл .hs
и перезагрузить его, чтобы избежать каких-либо проблем.