@NotNull
  public PyGenericType withTargetExpression(@Nullable PyTargetExpression targetExpression) {
    return new PyGenericType(getName(), getBound(), isDefinition(), targetExpression, getScopeOwner());
  }
@NotNull
  public PyGenericType withTargetExpression(@Nullable PyTargetExpression targetExpression)