I'm going to phrase this as a challenge, because I think that's likely to get the best response:

I just released a package, th-kinds, which attempts to automatically infer the kind of a specified type, type constructor, type family, type class, or pretty much anything else that has a kind.

This package was developed in response to a sort-of challenge from Brent Yorgey on #haskell to create this functionality.  So, uh, I stayed up last night until 5 am learning unification algorithms and implementing this...heh.

It rolls its own kind inference, so I don't know if it's adequately powerful to handle all the wacky types you can construct.  Things I have tested it on:
Things that it will not work on, and that I don't think will change:
Anyway, y'all should attempt to break th-kinds.  Tell me if you can construct a type for which my inference checker breaks, but not because you get an error message saying "Can't reify a GADT data constructor..."

By the way, I'd like to bump these tickets.  They're certainly related, but I'm not sure if they're genuinely equivalent.  It's really irritating, though, that kind parsing is so broken in TH, and I think that a TH backend guru should be able to figure out where there's a foldr instead of a foldl...  th-kinds includes a workaround to this bug, but if the bug is fixed, it'll break again.  Yuck, bugs.

Louis Wasserman
wasserman.louis@gmail.com
http://profiles.google.com/wasserman.louis