It's often useful to have a generalized null/unit test, e.g. to check if a monadic stream `m a` reaches EOF.  A workaround is to use `Eq a, Monoid a` constraint and use `== mempty` test. But this is no only inefficient for some type, but also impossible for some monoids, such as Builders.

I propose add this test `isEmpty :: a -> Bool` to `Monoid`, to provide the ability to check if a value is the unit value.

Cheers
Han Dong~