
"David" == David Roundy
writes:
David> My or_maybe is just defined as David> or_maybe (Just e) _ = Just e or_maybe Nothing f = f David> which is pretty simple, so you can run a series of calculations David> (assuming you want to keep the first that has a non-Nothing David> result) using David> f = a `or_maybe` b `or_maybe` c The advantage of using "mplus" rather than "or_maybe" is that you can write: f = a `mplus` b `mplus` c and that it will also work with other MonadPlus instances. For example, if you decide that you want to keep several results and work with "[a]" rather than "Maybe a", your "f" function will work as-is and will concatenate the different results. While "Maybe a" holds zero or one value, "[a]" holds zero or more values. Switching between both can something be very practical for functions reuse. Sam -- Samuel Tardieu -- sam@rfc1149.net -- http://www.rfc1149.net/sam