@@ -10,6 +10,7 @@ import Prelude
1010
1111import Control.Alt (class Alt , (<|>))
1212import Control.Alternative (class Alternative )
13+ import Control.Apply (lift2 )
1314import Control.Monad.Cont.Class (class MonadCont , callCC )
1415import Control.Monad.Eff.Class (class MonadEff , liftEff )
1516import Control.Monad.Error.Class (class MonadThrow , class MonadError , catchError , throwError )
@@ -23,6 +24,7 @@ import Control.MonadZero (class MonadZero)
2324import Control.Plus (class Plus , empty )
2425
2526import Data.Distributive (class Distributive , distribute , collect )
27+ import Data.Monoid (class Monoid , mempty )
2628import Data.Newtype (class Newtype )
2729
2830-- | The reader monad transformer.
@@ -72,6 +74,12 @@ instance monadReaderT :: Monad m => Monad (ReaderT r m)
7274
7375instance monadZeroReaderT :: MonadZero m => MonadZero (ReaderT r m )
7476
77+ instance semigroupReaderT :: (Apply m , Semigroup a ) => Semigroup (ReaderT s m a ) where
78+ append = lift2 (<>)
79+
80+ instance monoidReaderT :: (Applicative m , Monoid a ) => Monoid (ReaderT s m a ) where
81+ mempty = pure mempty
82+
7583instance monadPlusReaderT :: MonadPlus m => MonadPlus (ReaderT r m )
7684
7785instance monadTransReaderT :: MonadTrans (ReaderT r ) where
0 commit comments