Skip to content

Commit 5b9908e

Browse files
safarelipaf31
authored andcommitted
Define Monoid instance for ReaderT (#97)
* define Monoid instance for ReaderT * abc order imports * update pulp and psa
1 parent b111f5d commit 5b9908e

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
"test": "pulp test"
77
},
88
"devDependencies": {
9-
"pulp": "^10.0.4",
10-
"purescript-psa": "^0.5.0-rc.1",
9+
"pulp": "^11.0.0",
10+
"purescript-psa": "^0.5.1",
1111
"rimraf": "^2.6.1"
1212
}
1313
}

src/Control/Monad/Reader/Trans.purs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import Prelude
1010

1111
import Control.Alt (class Alt, (<|>))
1212
import Control.Alternative (class Alternative)
13+
import Control.Apply (lift2)
1314
import Control.Monad.Cont.Class (class MonadCont, callCC)
1415
import Control.Monad.Eff.Class (class MonadEff, liftEff)
1516
import Control.Monad.Error.Class (class MonadThrow, class MonadError, catchError, throwError)
@@ -23,6 +24,7 @@ import Control.MonadZero (class MonadZero)
2324
import Control.Plus (class Plus, empty)
2425

2526
import Data.Distributive (class Distributive, distribute, collect)
27+
import Data.Monoid (class Monoid, mempty)
2628
import Data.Newtype (class Newtype)
2729

2830
-- | The reader monad transformer.
@@ -72,6 +74,12 @@ instance monadReaderT :: Monad m => Monad (ReaderT r m)
7274

7375
instance 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+
7583
instance monadPlusReaderT :: MonadPlus m => MonadPlus (ReaderT r m)
7684

7785
instance monadTransReaderT :: MonadTrans (ReaderT r) where

0 commit comments

Comments
 (0)