anchor.diff:  encode_read_object_resp(antidote_crdt_gmap, Val) ->
       #apbreadobjectresp{map = encode_map_get_resp(Val)};
   encode_read_object_resp(antidote_crdt_map_aw, Val) ->
  +    #apbreadobjectresp{map = encode_map_get_resp(Val)};
  +encode_read_object_resp(antidote_crdt_map_rr, Val) ->
       #apbreadobjectresp{map = encode_map_get_resp(Val)}.
   
   % TODO why does this use counter instead of antidote_crdt_counter etc.?
  
positive.code: 
  encode_update_operation(antidote_crdt_counter, Op_Param) ->
    #apbupdateoperation{counterop = encode_counter_update(Op_Param)};
  encode_update_operation(antidote_crdt_orset, Op_Param) ->
    #apbupdateoperation{setop = encode_set_update(Op_Param)};
  encode_update_operation(antidote_crdt_set_rw, Op_Param) ->
  
negative.code: decode_type('GMAP') -> antidote_crdt_gmap;
  decode_type('AWMAP') -> antidote_crdt_map_aw;
  decode_type('RWSET') -> antidote_crdt_set_rw;
  decode_type('RRMAP') -> antidote_crdt_map_rr.
  
  
  %%%%%%%%%%%%%%%%%%%%%%
  