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 provided monad instance is empty. My naive attempt was:

miszero :: (Eq (m a), MonadPlus m) => m a -> Bool
miszero =  ( == mzero )

This works, but not correctly. It adds an Eq constraint that is unneeded. I
would prefer to have something like:

miszero :: MonadPlus m => m a -> Bool


Because I am not comparing the contents of the monad. I don't even touch
it.  Is this possible to write?

with kind regards,

Edgar
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to