Можно ли запросить ghci для типа, который он выводил для функции внутри другой функции?
Может ли GHCi сказать мне тип локальной функции Haskell?
Ответ 1
Это быстрый и уродливый взлом, но то, что я обычно делаю, просто использует эту функцию неправильно и читает сообщение об ошибке:
inc x = x + 1
where
f (y, z) = y + z
g = f :: Char
Выход GHCi:
Couldn't match expected type `Char'
against inferred type `(t, t) -> t'
In the expression: f :: Char
Хотя это не соответствует контексту Num t =>
, это обычно дает мне достаточно информации для продолжения.
Ответ 2
Вы можете попробовать сделать это, установив на него точку останова, поэтому функция находится в области видимости от отладчика.
Также я думаю, что EclipseFP может рассказать вам о вещах, когда вы наводите их на них, по крайней мере, некоторое время.
Ответ 3
С GHC 7.8+ просто добавьте `asTypeOf` _
в выражение.
См. Узнайте о типе выражения/функции с типизированными отверстиями для подробного объяснения.