@Override
    public @NotNull TypeConstraint arrayOf() {
      TypeConstraint constraint =
        instanceOfTypes().<TypeConstraint>map(Exact::arrayOf).reduce(TypeConstraint::meet).orElse(EXACTLY_OBJECT.arrayOf());
      return constraint instanceof Exact ? ((Exact)constraint).instanceOf() : constraint;
    }
@Override
    public @NotNull TypeConstraint arrayOf()