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 может это сделать)