If the monad being tested implements the new state behaviour, evaluate
the expected value and the result by running them both against a default
state before comparing them.
Use call instead of : to call functions on monad modules in order to
support tuple modules. This will come in handy when implementing monad
transformers.