8. An apparatus comprising: a controller configured to: receive a first data; compute a first check code for the first data; program the first data and the first check code to a plurality of memory cells to change contents of the plurality of memory cells from an initial state to an intermediate state; receive a second data; compute a second check code for the second data; and program the second data and the second check code to the plurality of memory cells without erasing the plurality of memory cells provided that contents of the second data and the second check code would be at a final state after programming.
9. The apparatus of claim 8 , wherein the controller is further configured to: receive user data; and transform the user data to the first data according to a transformation function, the first data being a same size as the user data.