Вопрос больше теоретический. Монады в хаскель пришли из теории категорий. В теории категорий монады связаны с функторами. Но в хаскеле класс Monad не требует от instance реализовывать класс Functor. Получается, что хаскель использует монады не совсем как в теории категорий. Иными словами я могу написать неправильную монаду.