@Override
    default @NotNull TypeConstraint meet(@NotNull TypeConstraint other) {
      if (this.equals(other) || other.isSuperConstraintOf(this)) return this;
      return BOTTOM;
    }
@Override
    default @NotNull TypeConstraint meet(@NotNull TypeConstraint other)