Is it even possible while still supporting Haskell2010?
My hunch is "yes". I can imagine trouble with PolyKinds, but each example requires one of NoPolyKinds (in another module), ScopedTypeVariables, or KindSignatures. And each case of trouble is obscure.