具有“函数别名”的模糊类型变量

时间:2018-09-18 07:32:02

标签: haskell

为什么此代码不能编译为Ambiguous type variable错误

foo :: (Show a) => a -> IO ()
foo = putStrLn . show
bar = foo

在GHCI中,以下命令可以正常工作吗?

> let foo :: (Show a) => a -> IO (); foo = putStrLn . show
> bar = foo
> bar 1

为什么我们需要bar函数的显式类型注释?

0 个答案:

没有答案