Relação entre Functor, Functor Aplicável e Monad

Ao ler sobre as classes de tipos, vi que o relacionamento entre Functors, Functors e Monads é o de aumentar estritamente o poder. Functors são tipos que podem ser mapeados. Os Functors aplicáveis podem fazer as mesmas coisas com certos efeitos. Mônadas o mesmo compossibly irrestrictive efeitos. Além disso

Every Monad is an Applicative Functor
Every Applicative Functor is a Functor

A definição do Functor Aplicável mostra isso claramente com:

class Functor f => Applicative f where
  pure  :: a -> f a
  (<*>) :: f (a -> b) -> f a -> f b

Mas a definição de Mônada é:

class Monad m where
  return :: a -> m a
  (>>=)  :: m a -> (a -> m b) -> m b
  (>>)   :: m a -> m b -> m b
  m >> n = m >>= \_ -> n
  fail   :: String -> m a

De acordo com o ótimo @ de Brent Yorg typeclassopedia que uma definição alternativa de mônada poderia ser:

class Applicative m => Monad' m where
  (>>=) :: m a -> (a -> m b) -> m b

que é obviamente mais simples cimentaria esse Functor <Functor Aplicável <Mônada. Então, por que essa não é a definição? Eu sei que os functores aplicativos são novos, mas de acordo com o Relatório Haskell 2010 página 80, isso não mudou. Por que é isso

questionAnswers(2)

yourAnswerToTheQuestion