@Override public E intern(E sample) {
    E canonical = map.get(sample);
    if (canonical != null) {
      return canonical;
    }

    var value = map.putIfAbsent(sample, sample);
    return (value == null) ? sample : value;
  }
@Test(dataProvider = "interners")
  public void intern_null(Interner<Int> interner) {
    assertThrows(NullPointerException.class, () -> interner.intern(null));
  }