haskell – 我应该总是喜欢更多的一般类型到特定类型?

编译与ghc –make,这两个程序产生完全相同的二进制文件:

-- id1a.hs
main = print (id' 'a')

id' :: a -> a
id' x = x

-- id1b.hs
main = print (id' 'a')

id' :: Char -> Char
id' x = x

这只是因为我的例子是如此微不足道/设计,或者这样做
当程序变得更加复杂时,是否正确?

还有,有什么好的理由避免使我的类型像一般的一样
可能?我通常会尝试保留细节,我不需要它们,但是
我对编译语言的影响并不十分熟悉,
特别是Haskell / GHC.

边注:

我似乎回想起一个最近的SO问题,答案是让一个类型更多
具体为了提高一些性能问题,虽然我找不到
现在,所以我可能想象了

编辑:

从可用性/可组合性的角度来看,我更了解一般性更好,我对编译代码的影响更感兴趣.我有可能太抽象代码吗?或者这在Haskell中通常不是问题?

最佳答案
我会去做一切尽可能的一般.如果遇到性能问题,您可以开始考虑混淆具体的实现,但是IMHO这不是一个很常见的问题,如果这真的会遇到问题,那么您的性能需求就会像考虑迁移到占地面积再次)

转载注明原文:haskell – 我应该总是喜欢更多的一般类型到特定类型? - 代码日志