anchor.diff:                        delta_eager_map=DeltaEagerMap0,
                         delta_ack_map=AckMap}=Object) ->
               Metadata = MetadataFun(Metadata0),
  -            case Value0 of
  -                Value ->
  +            case {Id, Type, Metadata0, Value0} of
  +                %% As long as *both* the metadata and value haven't
  +                %% changed, we can keep the same object.
  +                {Id, Type, Metadata, Value} ->
                       {Object, {ok, {Id, Type, Metadata, Value}}};
                   _ ->
                   %% Merge may throw for invalid types.
  
positive.code:                     Merged = lasp_type:merge(Type, Value0, Value),
                      case lasp_type:is_strict_inflation(Type, Value0, Merged) of
                          true ->
                              {ok, SW} = reply_to_all(WT, [],
                                                      {ok, {Id, Type, Metadata, Merged}}),
  
  
negative.code:                             %% Return value is a delta state.
                              {NewObject, {ok, {Id, Type, Metadata, Merged}}};
                          false ->
                              %% Metadata change.
                              NewObject = Object#dv{metadata=Metadata},
                              {NewObject, {ok, {Id, Type, Metadata, Merged}}}
                      end
                  catch
                      _:_Reason ->
  