public void processInequation(
     final SNode subtype,
     final SNode supertype,
     final EquationInfo equationInfo,
     final TypeCheckingContext typeCheckingContext,
     IsApplicable2Status status,
     final boolean inequalityIsWeak,
     final boolean inequalityIsLessThan) {
   if (!(SConceptOperations.isSubConceptOf(
       SNodeOperations.getConceptDeclaration(subtype),
       NameUtil.nodeFQName(SNodeOperations.getConceptDeclaration(supertype))))) {
     MessageTarget errorTarget = new NodeMessageTarget();
     IErrorReporter _reporter_2309309498 =
         typeCheckingContext.reportTypeError(
             equationInfo.getNodeWithError(),
             "Incompatible types",
             "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
             "1240153585729",
             null,
             errorTarget);
     HUtil.addAdditionalRuleIdsFromInfo(_reporter_2309309498, equationInfo);
   }
   {
     SNode _nodeToCheck_1029348928467 = equationInfo.getNodeWithError();
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
             "1237470147423",
             0,
             null);
     _info_12389875345.getOuterRulesIdFromInfo(equationInfo);
     typeCheckingContext.createLessThanInequality(
         (SNode) SLinkOperations.getTarget(subtype, "elementType", true),
         (SNode) SLinkOperations.getTarget(supertype, "elementType", true),
         false,
         true,
         inequalityIsLessThan,
         _info_12389875345);
   }
 }