对a - > b`函数类型的限制

Kev*_*ith 2 haskell

假设我有一个函数签名的一部分:

f :: (a -> b) -> ...

kinds对于a和b?的类型是否有任何限制(例如他们的)?

a不能是一个功能,即(c -> d)可以吗?

sep*_*p2k 6

a并且b必须具有种类*,即它们不能是需要参数的类型构造函数.所以他们可能是Integer,(c -> d)或者Maybe String,但不是(->),(a ->)或者Maybe.

a不能是一个功能,即(c -> d)可以吗?

是的,它可以.它可以是任何可能的类型*.