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
.