Invocations of () in the operation steps below can be asserted not to throw (as indicated by the ! prefix) because they operate only on previous output of ().