execWriter m = snd (runWriter m)
execWriterT m = liftM snd (runWriterT m)
runWriter (mapWriter f m) = f (runWriter m)
runWriterT (mapWriterT f m) = f (runWriterT m)