begin generalizing specs for monad laws