让我们说我有一部分功能的签名:
f :: (a -> b) -> ...
对kinds
和a
的类型是否有任何限制(例如b
)?
a
无法成为一个函数,即(c -> d)
,可以吗?
答案 0 :(得分:6)
a
和b
必须有类*
,即它们不能是需要参数的类型构造函数。因此,它们可以是Integer
,(c -> d)
或Maybe String
,但不能是(->)
,(a ->)
或Maybe
。
a
无法成为一个函数,即(c -> d)
,可以吗?
是的,它可以。它可以是任何可能的类型*
。