static <T, Self extends P<T, Self>> Self create(Self p, Iterable<? extends T> it) {
      p.itle = it;
      return p;
    }
static <T, Self extends P<T, Self>> Self create(Self p, Iterable<? extends T> it)