Skip to content

Commit b7c9ca9

Browse files
authored
Merge pull request #37 from MonoidMusician/monadzero
Add MonadZero instances
2 parents 6c3cee0 + 0a8095d commit b7c9ca9

File tree

2 files changed

+24
-4
lines changed

2 files changed

+24
-4
lines changed

src/Data/Maybe/First.purs

+12-2
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ module Data.Maybe.First where
33
import Prelude
44

55
import Control.Extend (class Extend)
6-
6+
import Control.MonadZero (class MonadZero, class Alternative, class Plus, class Alt)
77
import Data.Eq (class Eq1)
88
import Data.Functor.Invariant (class Invariant)
99
import Data.Maybe (Maybe(..))
10-
import Data.Monoid (class Monoid)
10+
import Data.Monoid (class Monoid, mempty)
1111
import Data.Newtype (class Newtype)
1212
import Data.Ord (class Ord1)
1313

@@ -56,3 +56,13 @@ instance semigroupFirst :: Semigroup (First a) where
5656

5757
instance monoidFirst :: Monoid (First a) where
5858
mempty = First Nothing
59+
60+
instance altFirst :: Alt First where
61+
alt = append
62+
63+
instance plusFirst :: Plus First where
64+
empty = mempty
65+
66+
instance alternativeFirst :: Alternative First
67+
68+
instance monadZeroFirst :: MonadZero First

src/Data/Maybe/Last.purs

+12-2
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ module Data.Maybe.Last where
33
import Prelude
44

55
import Control.Extend (class Extend)
6-
6+
import Control.MonadZero (class MonadZero, class Alternative, class Plus, class Alt)
77
import Data.Eq (class Eq1)
88
import Data.Functor.Invariant (class Invariant)
99
import Data.Maybe (Maybe(..))
10-
import Data.Monoid (class Monoid)
10+
import Data.Monoid (class Monoid, mempty)
1111
import Data.Newtype (class Newtype)
1212
import Data.Ord (class Ord1)
1313

@@ -56,3 +56,13 @@ instance semigroupLast :: Semigroup (Last a) where
5656

5757
instance monoidLast :: Monoid (Last a) where
5858
mempty = Last Nothing
59+
60+
instance altLast :: Alt Last where
61+
alt = append
62+
63+
instance plusLast :: Plus Last where
64+
empty = mempty
65+
66+
instance alternativeLast :: Alternative Last
67+
68+
instance monadZeroLast :: MonadZero Last

0 commit comments

Comments
 (0)