Since every Applicative Functor is a Functor, fmap can always be used on it; thus the essence of Applicative is the pairing of carried contents, as well as the ability to create it:
class Functor f => PairingFunctor f where
funit :: f () -- create a context, carrying nothing ...