Skip to content

Commit

Permalink
define Monoid instance for ReaderT
Browse files Browse the repository at this point in the history
  • Loading branch information
safareli committed Apr 27, 2017
1 parent b5cc7d6 commit 94c4922
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/Control/Monad/Reader/Trans.purs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ import Control.Monad.Trans.Class (class MonadTrans, lift)
import Control.Monad.Writer.Class (class MonadWriter, class MonadTell, pass, listen, tell)
import Control.MonadPlus (class MonadPlus)
import Control.MonadZero (class MonadZero)
import Data.Monoid (class Monoid, mempty)
import Control.Apply (lift2)
import Control.Plus (class Plus, empty)

import Data.Distributive (class Distributive, distribute, collect)
Expand Down Expand Up @@ -72,6 +74,12 @@ instance monadReaderT :: Monad m => Monad (ReaderT r m)

instance monadZeroReaderT :: MonadZero m => MonadZero (ReaderT r m)

instance semigroupReaderT :: (Monad m, Semigroup a) => Semigroup (ReaderT s m a) where
append = lift2 (<>)

instance monoidReaderT :: (Monad m, Monoid a) => Monoid (ReaderT s m a) where
mempty = pure mempty

instance monadPlusReaderT :: MonadPlus m => MonadPlus (ReaderT r m)

instance monadTransReaderT :: MonadTrans (ReaderT r) where
Expand Down

0 comments on commit 94c4922

Please sign in to comment.