Effect should reflect the Functor-Applicative-Monad hierarchy. How about something like:
class EffectFunctor (m :: k -> * -> *) where
fmap :: (a -> b) -> m f a -> m f b
There is a fairly obvious Applicative generalisation as well, which would have to introduce the type families Unit, Plus and Inv.