如何让GHCi输出完整的歧义类型签名而不只是错误信息
你可以通过开启GHC的-fallow-ambiguous-types选项实现该需求,该选项会临时允许存在歧义的类型,让:t命令可以直接输出包含未固定类型变量的完整签名,而非直接抛出类型歧义错误。
针对你给出的示例,操作效果如下:
ghci> :set -fallow-ambiguous-types ghci> :t show . read show . read :: (Read a, Show a) => String -> String
补充说明:
- 该选项仅在打印类型阶段忽略歧义检查,并不会解决类型歧义本身,后续执行对应表达式时仍需补充类型标注确定中间变量的具体类型。
- 不需要该功能时可执行
:unset -fallow-ambiguous-types关闭选项,恢复默认的歧义检查逻辑。 - 如需查看更详细的类型信息,可配合
:t +v命令使用,会输出更完整的类型变量约束细节。
内容的提问来源于stack exchange,提问作者Joseph Sible-Reinstate Monica
相关产品推荐
相关产品推荐

