title: Defining a new monad in haskell raises no instance for Applicative
body: <p>I am trying to define a new monad and I am getting a strange error</p>
  
  <p><strong>newmonad.hs</strong></p>
  
  <pre>
  newtype Wrapped a = Wrap {unwrap :: a}
  instance Monad Wrapped where
    (>>=) (Wrap x) f =  f x
    return x = Wrap x
  
  main = do
    putStrLn "yay"
  </pre>
  
  <pre>
  $ ghc --version
  The Glorious Glasgow Haskell Compilation System, version 7.10.1
  
  $ ghc newmonad.hs 
  [1 of 1] Compiling Main             ( newmonad.hs, newmonad.o )
  
  newmonad.hs:2:10:
      No instance for (Applicative Wrapped)
        arising from the superclasses of an instance declaration
      In the instance declaration for ‚ÄòMonad Wrapped‚Äô
  </pre>
  
  <p>Why do I need to define an instance of <code>Applicative</code>?</p>