假设我有一个函数签名的一部分:
f :: (a -> b) -> ...
kinds对于a和b?的类型是否有任何限制(例如他们的)?
a不能是一个功能,即(c -> d)可以吗?
a并且b必须具有种类*,即它们不能是需要参数的类型构造函数.所以他们可能是Integer,(c -> d)或者Maybe String,但不是(->),(a ->)或者Maybe.
a不能是一个功能,即(c -> d)可以吗?
是的,它可以.它可以是任何可能的类型*.