Updating: supporting linear lazy-evaluation