Haskell: получение статического типа выражения

Я ищу функцию, которая делает то же, что и команда GHCi: type.

В идеале это было бы что-то вроде подписи

<code>getStaticType :: a -> String

a = getStaticType (1+2)
-- a = "(Num t) => t"

b = getStaticType zipWith
-- b = "(a -> b -> c) -> [a] -> [b] -> [c]"
</code>

(Примечание: это не имеет ничего общего с Data.Dynamic. Я просто хочу, чтобы статический тип был выведен из компилятора. Фактически функция вообще не нуждается в реализации во время выполнения, поскольку все вызовы к ней могут быть встроены как константы при компиляции. время. Я предполагаю, что оно где-то существует, поскольку GHCi может это сделать)

Ответы на вопрос(2)

Ваш ответ на вопрос