runWriter k (pure a) = k mempty a
runWriter k (tell w) = k w ()
runWriter k (listen (tell w)) = k w (w, ())
runWriter k (censor f (tell w)) = k (f w) ()
runWriter (tell w) = pure (w, ())
runWriter (pure a) = pure (mempty, a)