J C*_*per 4 syntax haskell types
我已经为函数定义了一个别名execState:
myCleverName = execState
Run Code Online (Sandbox Code Playgroud)
GHC警告说顶级绑定没有带注释的类型签名,所以我写道:
myCleverName :: State s a => s -> s
Run Code Online (Sandbox Code Playgroud)
对大多数人来说,很明显,"胖箭" =>应该是一个经常瘦的->.但是我今天才注意到,但是包含别名的模块和使用别名的代码都已编译好几周,而不是警告我使用了错误的语法.这是为什么?
谢谢!
GHC 7.6.3有一个错误允许这样的事情,但它在GHC 7.8中已经修复(或应该是).在内部,类型类约束表示为隐式函数参数,我认为这就是为什么7.6.3被混淆了.他们仍然以这种方式代表,但是理智检查得到了改善.