anchor.diff:                                          TxId,
                                           OpCommitTime);
                           {update, DownstreamOp} ->
  -                            lager:info("Applying downstream operation:~w", [DownstreamOp]),
                               case Type:update(DownstreamOp, Snapshot) of
                                   {ok, NewSnapshot} ->
                                       materialize(Type,
  
positive.code: %materialize(_Type, Snapshot, _SnapshotTime, []) ->
  %    {ok, Snapshot};
  materialize(Type, Snapshot, SnapshotCommitTime, SnapshotTime, Ops, TxId) ->
      case materialize(Type, Snapshot, SnapshotCommitTime, SnapshotTime, Ops, TxId, ignore) of
      {ok, Val, CommitTime} ->
      	{ok, Val, CommitTime};
      {error, Reason} ->
  
negative.code: is_op_in_snapshot(OperationCommitTime, SnapshotTime, SnapshotCommitTime) ->
  	{OpDc, OpCommitTime}= OperationCommitTime,
      {ok, Ts} = vectorclock:get_clock_of_dc(OpDc, SnapshotTime),
      case SnapshotCommitTime of
      ignore -> 
      	OpCommitTime =< Ts;
      {SnapshotDc, SnapshotCT} ->
      	case (SnapshotDc == OpDc) of
      	true ->
  			(OpCommitTime =< Ts) and (SnapshotCT < OpCommitTime);
  		false ->
  			OpCommitTime =< Ts
  		end
  	end.
  