
3 Dec
2011
3 Dec
'11
11:55 a.m.
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