:: [a] -> [(a, a)] package:fused-effects

Run a computation, returning the pair of its output and its result.
runWriter (listen m) = fmap (fst &&& id) (runWriter m)