Operations on CRDTs need to adhere to the following rules:
(a+(b+c)=(a+b)+c), so that grouping doesn't matter.
(a+b=b+a), so that order of application doesn't matter.
(a+a=a), so that duplication doesn't matter.
Data types as well as operations have to be specifically crafted to meet these rules. CRDTs have known implementations for counters, registers, sets, graphs, and others.