Add MonadPlus instance
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Tue, 30 Aug 2011 19:23:47 +0000 (19:23 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Tue, 30 Aug 2011 19:23:47 +0000 (19:23 +0000)
Data/Vector.hs

index a628871..7fac580 100644 (file)
@@ -156,7 +156,7 @@ import           Data.Vector.Mutable  ( MVector(..) )
 import           Data.Primitive.Array
 import qualified Data.Vector.Fusion.Stream as Stream
 
-import Control.Monad ( liftM, ap )
+import Control.Monad ( MonadPlus(..), liftM, ap )
 import Control.Monad.ST ( ST )
 import Control.Monad.Primitive
 
@@ -275,6 +275,13 @@ instance Monad Vector where
   {-# INLINE (>>=) #-}
   (>>=) = flip concatMap
 
+instance MonadPlus Vector where
+  {-# INLINE mzero #-}
+  mzero = empty
+
+  {-# INLINE mplus #-}
+  mplus = (++)
+
 instance Applicative.Applicative Vector where
   {-# INLINE pure #-}
   pure = singleton