Skip to content
This repository was archived by the owner on Oct 4, 2020. It is now read-only.

Commit 44fad68

Browse files
authored
Merge pull request #32 from i-am-tom/master
Add `Semigroup` and `Monoid` instances for `Eff`
2 parents 296d128 + f0f41ed commit 44fad68

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

bower.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"package.json"
1818
],
1919
"dependencies": {
20-
"purescript-prelude": "^3.0.0"
20+
"purescript-prelude": "^3.0.0",
21+
"purescript-monoid": "^3.3.0"
2122
}
2223
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
},
77
"devDependencies": {
88
"eslint": "^3.17.1",
9-
"pulp": "^10.0.4",
9+
"pulp": "^12.0.1",
1010
"purescript-psa": "^0.5.0-rc.1",
1111
"rimraf": "^2.6.1"
1212
}

src/Control/Monad/Eff.purs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ module Control.Monad.Eff
66
, untilE, whileE, forE, foreachE
77
) where
88

9-
import Control.Applicative (class Applicative, liftA1)
10-
import Control.Apply (class Apply)
9+
import Control.Applicative (class Applicative, liftA1, pure)
10+
import Control.Apply (class Apply, lift2)
1111
import Control.Bind (class Bind)
1212
import Control.Monad (class Monad, ap)
1313

1414
import Data.Functor (class Functor)
15+
import Data.Monoid (class Monoid, mempty)
16+
import Data.Semigroup (class Semigroup, append)
1517
import Data.Unit (Unit)
1618

1719
-- | The kind of all effect types.
@@ -35,6 +37,12 @@ foreign import kind Effect
3537
-- | return type.
3638
foreign import data Eff :: # Effect -> Type -> Type
3739

40+
instance semigroupEff :: Semigroup a => Semigroup (Eff e a) where
41+
append = lift2 append
42+
43+
instance monoidEff :: Monoid a => Monoid (Eff e a) where
44+
mempty = pure mempty
45+
3846
instance functorEff :: Functor (Eff e) where
3947
map = liftA1
4048

0 commit comments

Comments
 (0)