The Control.Monad.Writer module exports the Writer w a type along with its Monad instance

newtype Writer w a = Writer { runWriter :: (a, w) } 
instance (Monoid w) => Monad (Writer w) where  
    return x = Writer (x, mempty)  
    (Writer (x,v)) >>= f = let (Writer (y, v')) = f x in Writer (y, v `mappend` v')

My question is
Why the signature is "Monad (Write w)" but neither "Monad Write" nor "Monad (Write w a)"?
Any difference among those three styles?

Thanks a lot!
-Haisheng