code: public final AutoBuffer write_impl( AutoBuffer ab ) {
      _write_lock = true;
      try {
        if (map().size() == 0) return ab.put1(0); // empty map
        Entry<K, V> entry = map().entrySet().iterator().next();
        K key = entry.getKey();
        V val = entry.getValue();
        assert key != null && val != null;
        int mode;
        if (key instanceof String) {
          if (val instanceof String) {
            mode = 1;
          } else {
            assert (val instanceof Freezable || val instanceof Freezable[]):"incompatible class " + val.getClass();
            mode = val instanceof Freezable ? 2 : 5;
          }
        } else {
          assert key instanceof Iced;
          if (val instanceof String) {
            mode = 3;
          } else {
            assert (val instanceof Freezable || val instanceof Freezable[]);
            mode = val instanceof Freezable ? 4 : 6;
          }
        }
        ab.put1(mode);              // Type of hashmap being serialized
        writeMap(ab, mode);          // Do the hard work of writing the map
        return isStringKey(mode) ? ab.putStr(null) : ab.put(null);
      } catch(Throwable t){
        System.err.println("Iced hash map serialization failed! " + t.toString() + ", msg = " + t.getMessage());
        t.printStackTrace();
        throw H2O.fail("Iced hash map serialization failed!" + t.toString() + ", msg = " + t.getMessage());
      } finally {
        _write_lock = false;
      }
    }
docs: random Value is written.