Inconsistent definition for `kindedTV` and `plainTV` in template-haskell
The template-haskell package has two versions of kindedTV and plainTV: one is in *.TH.Lib and the other is in *.TH.Lib.Internal.
The difference between the two is that the "internal" one takes parameters that are in Q monad, while the other one does not.
The style used by the "internal" one matches how the rest of the library works, and is compatible with using quotations (e.g., it allows one to write kindedTV nm [t| MyKind |]). On the other hand, the version in *.TH.Lib is simply a synonym for the constructor of the datatype and as such seems to serve no useful purpose.
This looks like an accidental divergence: we should have just one version which has the type of the definitions that are currently in *.TH.Lib.Internal but it resides in *.TH.Lib.