code: @Override
      public Set<Integer> keySet() {
          // use a linkedhashset so values come out in order
          Set<Integer> ret = new LinkedHashSet<>();
  
          for (Tuple2<String, Integer> t : wrapped.keySet()) {
              ret.add(t.b);
          }
  
          // Don't let the user modify the set as it won't do what they expect (change the map)
          return Collections.unmodifiableSet(ret);
      }
docs: We currently just expose them as immutable sets in RAM, since all of the modification operations are optional.