anchor.diff:      true.
   
   % define the state transitions triggered by each command
  -next_state(S,_V,{call,cakedb_driver,append,[StreamName,Data]}) ->
  +next_state(S,_V,{call,?DRIVER,append,[StreamName,Data]}) ->
       case lists:keysearch(StreamName,1,S#state.streams) of
           {value, {StreamName,OldData}} ->
               NewTuple = {StreamName,[{timestamp(),Data}|OldData]},
  
positive.code: %% utils
  %%-----------------------------------------------------------------------------
  
  % Returns the current timestamp
  timestamp() ->
      {Mega, Sec, Micro} = now(),
      Mega * 1000000 * 1000000 + Sec * 1000000 + Micro.
  
  % Returns symbolic call to timestamp/0 function
  timestamp_wrapper() ->
      {call,?MODULE,timestamp,[]}.
  
  
negative.code: 
  % define the conditions needed to be
  % met in order for a test to pass
  postcondition(S, {call,?DRIVER,range_query,[StreamName,Start,End]}, Result) ->
      case Start > End of
          true ->
              Result =:= [];
  