@NotNull
    T reverse(S s) {
      T t = s==null?null:reverse.get(s);
      if (t == null) {
        throw new IllegalStateException("unable to reverse map for: " + s);
      }
      return t;
    }
@NotNull
    T reverse(S s)