A denotational view of replicated data types