Make do create new scopes instead of mutating.
Use a list of pairs for computations in do.