浏览各种软件包的haddocks我经常会看到这样的实例文档(Control.Category):
Category k (Coercion k)
Category * (->)
Run Code Online (Sandbox Code Playgroud)
或者这个(Control.Monad.Trans.Identity):
MonadTrans (IdentityT *)
Run Code Online (Sandbox Code Playgroud)
这种签名究竟意味着什么呢?它没有出现在源代码中,但我已经注意到它似乎发生在使用PolyKinds扩展的模块中.我怀疑它可能像TypeApplication但有一种类型.因此,例如最后一个示例意味着IdentityT
如果它的第一个参数具有类型,则它是monad变换器*
.
所以我的问题是:
Category
例子中,我怎么知道这k
是一种而不是一种类型?或者我只是要知道这个Category
?我不是要求各种解释.