Const from Control.Applicative can trivially be made kind-polymorphic in its second argument. There has been a Trac issue about this for nearly a year now. It doesn't look like anybody objects to it, so I figured I might as well make a patch.
Do we want WrappedArrow and WrappedMonad to be kind-polymorphic as well? Should I change change the documentation or should I add kind signatures to WrappedMonad and WrappedArrow restricting them to *? Especially seeing as there is talk of splitting Const off into its own module Data.Functor.Const as well.
Or I could just make a patch that implements that (moving Const out of Control.Applicative) (but re-exporting it obviously), and then if people want to make WrappedMonad kind-polymorphic later they can do that then.
Hm, it would probably be best to avoid changing WrappedMonad and WrappedArrow for now, especially since there's been no discussion of it on the libraries mailing list.
Also, you're right in that there's been talk of moving Const to its own module. Ideally, that would be part of D1543, but the likelihood of that making it in time for 8.0 is rapidly diminishing. The Data.Functor.Const part of the proposal, however, doesn't need to involve transformers, so if you want to make this patch encompass moving Const to Data.Functor.Const, I say go for it.
Make sure to do these two things: