Я пытаюсь определить новую монаду, и я получаю странную ошибку
newmonad.hs
newtype Wrapped a = Wrap {unwrap :: a}
instance Monad Wrapped where
(>>=) (Wrap x) f = f x
return x = Wrap x
main = do
putStrLn "yay"
$ 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’
Почему мне нужно определить экземпляр Applicative?