anchor.diff:  %%             CommitTime = local commit time of this Snapshot at DC
   %%             SnapshotTime = Orddict of [{Dc, Ts}]
   %%      Outptut: true or false
  --spec is_snapshot_in_snapshot({Dc::term(),CommitTime::non_neg_integer()},
  -                        SnapshotTime::vectorclock:vectorclock()) -> boolean().
  -is_snapshot_in_snapshot({Dc, CommitTime}, SnapshotTime) ->
  +-spec belongs_to_snapshot({Dc::term(),CommitTime::non_neg_integer()},
  +                        SnapshotTime::vectorclock:vectorclock(), atom()) -> boolean().
  +belongs_to_snapshot({Dc, CommitTime}, SnapshotTime, CheckType) ->
  +	lager:info("is ~p in snapshot? DC= ~p - CommitTime = ~p", [CheckType, Dc, CommitTime]),
       case vectorclock:get_clock_of_dc(Dc, SnapshotTime) of
           {ok, Ts} ->
               lager:info("CommitTime: ~p SnapshotTime: ~p Result: ~p",
  
positive.code:     case get_latest_snapshot(SnapshotDict, SnapshotTime) of
      	{ok, []} ->
     		    lager:info("No snapshot for key ~p, checking for non-materialised operations.",[Key]),
              {ok, Ops}= get_ops_to_apply(OpsDict, SnapshotTime),
              case Ops of
              [] ->
              	Snapshot=Type:new();
              [H|T] ->
              	lager:info("Operations for key ~p are: `p",[Key, [H|T]]),
              	{ok, Snapshot} = clocksi_materializer:get_snapshot(Type, SnapshotTime, [H|T]),
              	{CommitTime, _Op}=T,
              	lager:info("caching new snapshot..."),
              	orddict:add(Snapshot,CommitTime)
              end;
  		{ok, {SnapshotCommitTime, LatestSnapshot}} ->
  		    lager:info("Latest snapshot for key ~p has commit time ~p.",[Key, SnapshotCommitTime]),
              {ok, {Ops}}= get_ops_to_apply(OpsDict, SnapshotTime),
              case Ops of
              [] ->
              	Snapshot=LatestSnapshot;
              [H|T] ->
              	lager:info("applying operations since the latest snapshot's commit time..."),
                  {ok, Snapshot} = clocksi_materializer:update_snapshot(Type, LatestSnapshot, SnapshotTime, [H|T]),
              	{CommitTime, _Op}=T,
              	lager:info("caching new snapshot..."),
              	orddict:add(Snapshot,CommitTime)
              end   
      end,
  	lager:info("snapshot: ~p", [Snapshot]),
  
negative.code: 	case OpsDict of
  	[]->
  		{ok, []};
  	[{_, [H|T]}]->
  		lager:info("operations that are in the operation store are: ~p",[[H|T]]),
  		lager:info("SnapshotTime=~p",[SnapshotTime]),
      	FilteredOps = orddict:filter(fun(Key, _Value) -> belongs_to_snapshot(Key, SnapshotTime, operation) end, [H|T]),
      	{ok,[Op || { _Key, Op} <- FilteredOps]}
      end.
  
  