No not for lists, but it is not a bad direction. If I modify it a bit, I
can get an ifmzero function:
ifmzero :: (MonadSplit m) => m a -> m b -> m b -> m b
ifmzero p b f = join $ mhead $ (liftM (const f) p) `mplus` (return b)
mhead :: (MonadSplit m) => m a -> m a
mhead = liftM fst . msplit
Which
On Sat, Dec 3, 2011 at 3:55 PM, Antoine Latter wrote:
> On Sat, Dec 3, 2011 at 10:55 AM, edgar klerks wrote:
>> Hi list,
>>
>> I am using MonadSplit
>> (from http://www.haskell.org/haskellwiki/New_monads/MonadSplit ) for a
>> project and now I want to make a library out of it. This seems to be
>
On Sat, Dec 3, 2011 at 10:55 AM, edgar klerks wrote:
> Hi list,
>
> I am using MonadSplit
> (from http://www.haskell.org/haskellwiki/New_monads/MonadSplit ) for a
> project and now I want to make a library out of it. This seems to be
> straightforward, but I got stuck when I tried to move miszero
Hi Arseniy,
Yes, I see it now. :) . I had some feeling there should be some structural
equality:
Just _ == Just _ = True
Nothing == Nothing = True
_ == _ = False
But this doesn't work for functions.
Thanks for your answer!
Greets,
Edgar
On Sat, Dec 3, 2011 at 6:23 PM, Arseniy Alekseyev <
arse
Of course it is not possible! Take a simple composition of reader and
Maybe functors for an example:
miszero :: (b -> Maybe a) -> Bool
I'm pretty sure (b -> Maybe a) for a is a MonadPlus, but you can't
implement miszero for it.
Arseniy.
On 3 December 2011 16:55, edgar klerks wrote:
> Hi list,
Hi list,
I am using MonadSplit (from
http://www.haskell.org/haskellwiki/New_monads/MonadSplit ) for a project
and now I want to make a library out of it. This seems to be
straightforward, but I got stuck when I tried to move miszero out of the
class:
miszero :: m a -> Bool
It tests if the provi