anchor.diff:  prop_cakedb_driver_works() ->
       ?FORALL(Cmds, commands(?MODULE),
           begin
  -            cakedb_driver:start_link(),
  +            ?DRIVER:start_link(),
               {History,State,Result} = run_commands(?MODULE, Cmds),
  -            cakedb_driver:stop(),
  +            ?DRIVER:stop(),
               ?WHENFAIL(
                   io:format("\n\nHistory: ~w\n\nState: ~w\n\nResult: ~w\n\n",
                   [History,State,Result]),
  
positive.code:                     Result =:= []
              end
      end;
  postcondition(S, {call,cakedb_driver,all_since,[StreamName,Time]}, Result) ->
      case lists:keysearch(StreamName,1,S#state.streams) of
          {value, {StreamName,Data}} ->
              Expected = lists:sort([Y || {X,Y} <- Data, X>=Time]),
              Observed = lists:sort([Y || {_,Y} <- Result]),
              Observed =:= Expected;
          false ->
              Result =:= []
      end;
  postcondition(S, {call,cakedb_driver,last_entry_at,[StreamName,Time]}, Result) ->
      case lists:keysearch(StreamName,1,S#state.streams) of
          {value, {StreamName,Data}} ->
              Expected = element(2,lists:max([{Y,X} || {Y,X} <- Data, Y=<Time])),
              Observed = element(2,lists:nth(1,Result)),
              Observed =:= Expected;
          false ->
              Result =:= []
      end;
  postcondition(_S, _V, _Result) ->
      true.
  
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 =:= [];
  