我是一位有用的助手,会进行文本翻译。
注意:这与Data.Dynamic无关。我只想从编译器中推断出静态类型。实际上,该函数根本不需要运行时实现,因为它的所有调用都可以在编译时作为常量内联。我假设它存在于某个地方,因为GHCi可以做到这一点。
我正在寻找一个函数,它可以执行类似于GHCi :type 命令的操作。
理想情况下,它应该具有以下签名:
getStaticType :: a -> String
a = getStaticType (1+2)
-- a = "(Num t) => t"
b = getStaticType zipWith
-- b = "(a -> b -> c) -> [a] -> [b] -> [c]"
注意:这与Data.Dynamic无关。我只想从编译器中推断出静态类型。实际上,该函数根本不需要运行时实现,因为它的所有调用都可以在编译时作为常量内联。我假设它存在于某个地方,因为GHCi可以做到这一点。