code: static public Value put( Key key, Value val, Futures fs, boolean dontCache ) {
      assert key != null;
      assert val==null || val._key == key:"non-matching keys " + key + " != " + val._key;
      while( true ) {
        Value old = Value.STORE_get(key); // Raw-get: do not lazy-manifest if overwriting
        Value res = DputIfMatch(key,val,old,fs,dontCache);
        if( res == old ) return old; // PUT is globally visible now?
        if( val != null && val._key != key ) key = val._key;
      }
    }
docs: Make the mapping <em>key -&gt; val</em>.