O que * (estrela) ou outros tipos significam em uma lista de instâncias de arinca

Pesquisando os haddocks de vários pacotes, costumo encontrar documentações de instância que se parecem com isso (Control.Category):

Category k (Coercion k)
Category * (->)

ou isto (Control.Monad.Trans.Identity):

MonadTrans (IdentityT *)

O que exatamente aqui significa a assinatura gentil? Ele não aparece na fonte, mas eu já notei que parece ocorrer nos módulos que usam oPolyKinds extensão. Eu suspeito que é provavelmente como um TypeApplication, mas com um tipo. Então, por exemplo o último exemplo significa queIdentityT é um transformador de mônada, se é o primeiro argumento tem tipo*.

Então, minhas perguntas são:

Minha interpretação está correta e a que exatamente se refere a assinatura de tipo?Em primeiroCategory exemplo, como eu deveria saber quek é um tipo e não um tipo? Ou eu apenas tenho que conhecer a aridade deCategory?Qual é o código fonte análogo a essa sintaxe?

Não estou pedindo uma explicação dos tipos.

questionAnswers(1)

yourAnswerToTheQuestion