@Override
      public boolean value(E e) {
        if (visited == null) visited = new java.util.HashSet<>();
        return visited.add(identity.fun(e));
      }
@Override
      public boolean value(E e)