Почему нет экземпляра монады для Control.Applicative.Const
? Правильно ли следующее определение или оно нарушает законы монад?
instance Monoid a => Monad (Const a) where
return _ = Const mempty
(Const x) >>= _ = Const x
А вы можете придумать какое-нибудь полезное приложение?