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 < arseniy.alekse...@gmail.com> wrote: > 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 <edgar.kle...@gmail.com> 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 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 > > >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe