anchor.diff:      send_recv(Sock, <<"version\r\n">>,
                 RecvCallback);
   
  -cmd(get, _Sock, _RecvCallback, _Msg) ->
  -    exit({unimplemented});
  +cmd(get, Sock, RecvCallback, #msg{keys=Keys}) ->
  +    ok = send(Sock, [<<"get ">>,
  +                     lists:map(fun (K) -> [K, <<" ">>] end,
  +                               Keys),
  +                     <<"\r\n">>]),
  +    get_recv(Sock, RecvCallback);
   
   cmd(set, Sock, RecvCallback, Msg) ->
       cmd_update(<<"set">>, Sock, RecvCallback, Msg);
  
positive.code: 
      ok = gen_tcp:close(Sock).
  
  starts_with(S, Prefix) ->
      Prefix =:= string:substr(S, 1, string:len(Prefix)).
  
  
negative.code: send_recv(Sock, IoList, RecvCallback) ->
      ok = send(Sock, IoList),
      RV = recv_line(Sock),
      if is_function(RecvCallback) -> RecvCallback(RV, #msg{});
         true -> ok
      end,
      RV.
  