Changeset 16602
- Timestamp:
- 06/01/07 21:29:00 (18 months ago)
- Files:
-
- 1 modified
-
src/Pugs/Monads.hs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Monads.hs
r16487 r16602 43 43 lift mon = MaybeT (mon >>= return . Just) 44 44 45 instance (MonadIO m) => MonadIO (MaybeT m) where 46 liftIO ma = MaybeT $ do 47 a <- liftIO ma 48 return (Just a) 49 45 50 instance (Monad m) => MonadPlus (MaybeT m) where 46 51 mzero = MaybeT (return Nothing) 47 52 mplus (MaybeT a) (MaybeT b) = MaybeT $ do 48 53 ma <- a 49 mb <- b 50 return $ ma `mplus` mb 54 case ma of 55 Nothing -> b 56 _ -> return ma 51 57 52 58 {-|
