
Hi David,
Yours is more precise. f should output (ValueConstructor value) instead of
(Monad value) :)
--Trung
2012/12/20 David McBride
The way I like to reason about these things Prelude> :t (>>=)
(>>=) :: Monad m => m a -> (a -> m b) -> m b
Since the Monad m in this definition is Maybe, I'll just substitute it in like so: Maybe a -> (a -> Maybe b) -> Maybe b
Then you notice that f is not (a -> b), it is (a -> Maybe b).
On Thu, Dec 20, 2012 at 9:07 AM, Trung Quang Nguyen
wrote: Hi all,
I saw this
1. instance Monad Maybe where 2. return x = Just x 3. Nothing >>= f = Nothing 4. Just x >>= f = f x 5. fail _ = Nothing
I am wondering about the implementation of function (>>=). Why don't it be *Just x >>= f = Just (f x)*?
Any body knows about this?
--Trung
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners
-- *Trung Nguyen* Mobile: +45 50 11 10 63 LinkedIn: http://www.linkedin.com/pub/trung-nguyen/36/a44/187 View my blog at http://www.onextrabit.com/