Attempts to inspect the state, uptade it, and extract a different state.
tryModify behaves as tryUpdate but allows the update function to return an output value of type B.