假设我有以下值构造函数:
data Shape = Circle Float Float Float | Rectangle Float Float Float Float
现在我可以运行:
ghci> :t Circle
Circle :: Float -> Float -> Float -> Shape
现在我可以写一个类型声明
surface :: Shape -> Float
但我不能输入类型声明
surface :: Circle -> Float
这是因为“Circle
不是类型,Shape
是”
我的问题是:为什么在值构造函数中声明的类型不是 Haskell 中的类型?