Sure, ultimately the code mutates values in place, but the specific actions are modeled as pure operations