module Navi.Effects.MonadNotify
( MonadNotify (..),
)
where
import Navi.Data.NaviNote (NaviNote)
import Navi.Prelude
class (Monad m) => MonadNotify m where
sendNote :: (HasCallStack) => NaviNote -> m ()
instance (MonadNotify m) => MonadNotify (ReaderT e m) where
sendNote :: HasCallStack => NaviNote -> ReaderT e m ()
sendNote = m () -> ReaderT e m ()
forall (m :: Type -> Type) a. Monad m => m a -> ReaderT e m a
forall (t :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (m () -> ReaderT e m ())
-> (NaviNote -> m ()) -> NaviNote -> ReaderT e m ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> Type) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. NaviNote -> m ()
forall (m :: Type -> Type).
(MonadNotify m, HasCallStack) =>
NaviNote -> m ()
sendNote
{-# INLINEABLE sendNote #-}