This is pretty odd for two reasons. One, the kind k1 was never specified (either existentially or as a visible kind binder), so that definition should have been rejected. But even if we do use an existential kind:

We still see the second issue: GHC thinks that the type variables a and b have the same kind k1, when they should have separate kinds k1 and k2! That behavior is very surprising to me, since it seems like GHC is choosing to unify two kind variables that should be rigid.