concrete functor and monad transformers

#14Making Data.Functor.* poly-kinded

Many of the functors defined in the Data.Functor.* modules could have polykinded parameters. Most useful for me personally right now is Data.Functor.Compose. Many1 packages2 define their own version of this type, just to get a poly-kinded version.

See the discussion here: https://ghc.haskell.org/trac/ghc/ticket/10039#no4