static Supplier<ImmutableCompositeHolder> generator() {
      AtomicLong counter = new AtomicLong();
      Supplier<ImmutableBooleanHolder> bool = BooleanHolder.generator();
      Supplier<ImmutableIntegerHolder> integer = IntegerHolder.generator();
      Supplier<ImmutableStringHolder> string = StringHolder.generator();
      return () -> {
        String id = "id" + counter.incrementAndGet();
        return ImmutableCompositeHolder.builder().id(id)
                .booleanHolder(bool.get().withId(id))
                .integer(integer.get().withId(id))
                .string(string.get().withId(id))
                .build();
      };
    }
Defines various types (long/int/boolean) with containers (like {@code int[]} or {@code List<Boolean>})
criteria/common/test/org/immutables/criteria/typemodel/TypeHolder.java