`traverseIdentity` seems a bit long. If you're worried that `run` is too generic, maybe `runRecord`?