@Override
  public boolean reduce(InferenceSession session, List<? super ConstraintFormula> constraints) {
    final HashSet<InferenceVariable> dependencies = new HashSet<>();
    final boolean reduceResult = doReduce(session, dependencies, constraints);
    if (!reduceResult) {
      session.registerIncompatibleErrorMessage(dependencies,
                                               JavaPsiBundle.message("type.conforms.to.constraint", 
                                                                     session.getPresentableText(myS), session.getPresentableText(myT)));
    }
    return reduceResult;
  }
@Override
  public boolean reduce(InferenceSession session, List<? super ConstraintFormula> constraints)