anchor.diff:                                          {<<"b_flag">>, true},
                                           {<<"a_set">>, [<<"a">>, <<"b">>, <<"c">>]}]}}
                                        ]},
  -                           fetch_response_to_json(map, ?MAP_TYPE:value(Map), undefined, ?MOD_MAP)
  +                           fetch_response_to_json(map, ?MAP_TYPE:value(Map), undefined, ?EMBEDDED_TYPES)
                              ),
                 ?assertMatch({struct, [_Type, _Value, {<<"context">>, Bin}]} when is_binary(Bin),
                              fetch_response_to_json(map, ?MAP_TYPE:value(Map),
                                                     ?MAP_TYPE:to_binary(?MAP_TYPE:precondition_context(Map)),
  -                                                  ?MOD_MAP))
  +                                                  ?EMBEDDED_TYPES))
         end}
       ].
   
  
positive.code:                                              {update, {<<"b">>, ?FLAG_TYPE}, enable},
                                               {update, {<<"c">>, ?REG_TYPE}, {assign, <<"sean">>}},
                                               {update, {<<"d">>, ?MAP_TYPE},
                                                {update, [{update, {<<"e">>, ?COUNTER_TYPE}, {increment,5}}]}}
                                              ]}, a, ?MAP_TYPE:new()),
                ?assertEqual({struct, [
                                       {<<"type">>, <<"map">>},
  
negative.code:       end},
       {"decode map ops",
        fun() ->
                ModMap = riak_kv_crdt:mod_map(map),
                %% Simple ops
                ?assertEqual({map, {update, [{add, {<<"a">>, ?EMCNTR_TYPE}}]}, undefined},
                             update_request_from_json(map, {struct, [{<<"add">>, <<"a_counter">>}]}, ModMap)),
                ?assertEqual({map, {update, [{add, {<<"a">>, ?EMCNTR_TYPE}}, {add, {<<"a">>, ?SET_TYPE}}]}, undefined},
                             update_request_from_json(map, {struct, [{<<"add">>, [<<"a_counter">>, <<"a_set">>]}]}, ModMap)),
                ?assertEqual({map, {update, [{remove, {<<"a">>, ?EMCNTR_TYPE}}]}, undefined},
                             update_request_from_json(map, {struct, [{<<"remove">>, <<"a_counter">>}]}, ModMap)),
                ?assertEqual({map, {update, [{remove, {<<"a">>, ?EMCNTR_TYPE}}, {remove, {<<"a">>, ?SET_TYPE}}]}, undefined},
                             update_request_from_json(map, {struct, [{<<"remove">>, [<<"a_counter">>, <<"a_set">>]}]}, ModMap)),
                %% Removes get ordered before adds, multiple ops extracted
                ?assertEqual({map, {update, [{remove, {<<"a">>, ?EMCNTR_TYPE}}, {add, {<<"a">>, ?SET_TYPE}}]}, undefined},
                             update_request_from_json(map, {struct, [{<<"add">>, [<<"a_set">>]}, {<<"remove">>, [<<"a_counter">>]}]}, ModMap)),
                %% Nested updates
                ?assertEqual({map, {update, [{update, {<<"a">>, ?EMCNTR_TYPE}, increment}]}, undefined},
                             update_request_from_json(map, {struct, [{<<"update">>, {struct, [{<<"a_counter">>, <<"increment">>}]}}]}, ModMap)),
  
                ?assertEqual({map, {update, [{update, {<<"b">>, ?MAP_TYPE}, 
                                              {update, [{update, {<<"c">>, ?REG_TYPE}, {assign, <<"foo">>}}]}}]}, undefined},
  