Rewrite alter without using continuations.

This gets alter within 10ns of the containers equivalent.