Patch
A Patch describes the changes made to a List.
Pay attention that the sealed implementations should not be data classes - each generated patch must be applied in every case even though it might "equal" the preceding one. (Imagine deleting the first item of a list at least twice!) Using data classes patches could quite easily become equal and then might be dropped by mountSimple! Thus, it is intentional to implement those as regular classes.