public void applyRule(
     final SNode nodeToCheck,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 =
         SLinkOperations.getTarget(nodeToCheck, "warningText", true);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c895902b1(jetbrains.mps.lang.typesystem.typesystem)",
             "1207055636648",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c895902b1(jetbrains.mps.lang.typesystem.typesystem)",
                 "1207055636653",
                 true),
         (SNode) _quotation_createNode_jqcdmz_a0a0a(),
         false,
         true,
         _info_12389875345);
   }
   {
     SNode _nodeToCheck_1029348928467 =
         SLinkOperations.getTarget(nodeToCheck, "nodeToReport", true);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c895902b1(jetbrains.mps.lang.typesystem.typesystem)",
             "1207055636657",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c895902b1(jetbrains.mps.lang.typesystem.typesystem)",
                 "1207055636662",
                 true),
         (SNode) _quotation_createNode_jqcdmz_a0b0a(),
         false,
         true,
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode emitCodeForStatement,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 =
         SLinkOperations.getTarget(emitCodeForStatement, "codeFor", true);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959037a(jetbrains.mps.lang.dataFlow.typesystem)",
             "4358085932829606435",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959037a(jetbrains.mps.lang.dataFlow.typesystem)",
                 "4358085932829606431",
                 true),
         (SNode) _quotation_createNode_qloz51_a0a0b(),
         false,
         false,
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode nodeToCheck,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 =
         SLinkOperations.getTarget(nodeToCheck, "destination", true);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c89590316(jetbrains.mps.lang.refactoring.typesystem)",
             "1199620849752",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c89590316(jetbrains.mps.lang.refactoring.typesystem)",
                 "1199620849757",
                 true),
         (SNode)
             new typeof_MoveNodesToModelExpression_InferenceRule.QuotationClass_jtfb1h_a0a0a0()
                 .createNode(typeCheckingContext),
         false,
         true,
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode nodeToCheck,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(nodeToCheck, "argument", true);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c89590316(jetbrains.mps.lang.refactoring.typesystem)",
             "1198577561806",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c89590316(jetbrains.mps.lang.refactoring.typesystem)",
                 "1198577549444",
                 true),
         (SNode) _quotation_createNode_v1suaj_a0a0b(),
         false,
         true,
         _info_12389875345);
   }
 }
 public void processInequation(
     final SNode subtype,
     final SNode supertype,
     final EquationInfo equationInfo,
     final TypeCheckingContext typeCheckingContext,
     IsApplicable2Status status,
     final boolean inequalityIsWeak,
     final boolean inequalityIsLessThan) {
   {
     SNode _nodeToCheck_1029348928467 = equationInfo.getNodeWithError();
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)",
             "7668447476859461630",
             0,
             null);
     _info_12389875345.getOuterRulesIdFromInfo(equationInfo);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             _quotation_createNode_9szvhv_a0a0d(
                 ((SNode) status.getPattern1().getFieldValue("patternVar_CONCEPT"))),
         (SNode) ((SNode) status.getPattern2().getFieldValue("patternVar_ELEMENT")),
         false,
         true,
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode bootstrapExtentionPoint,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 = bootstrapExtentionPoint;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c89590364(jetbrains.mps.lang.plugin.typesystem)",
             "1206194327756",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c89590364(jetbrains.mps.lang.plugin.typesystem)",
                 "1206194321751",
                 true),
         (SNode) _quotation_createNode_c9h6d0_a0a0b(),
         false,
         false,
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode nodeToCheck,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 =
         SLinkOperations.getTarget(
             nodeToCheck,
             MetaAdapterFactory.getContainmentLink(
                 0x3a13115c633c4c5cL,
                 0xbbcc75c4219e9555L,
                 0x1168c104656L,
                 0x1168c104657L,
                 "expression"));
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959034a(jetbrains.mps.lang.quotation.typesystem)",
             "1196866840326",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959034a(jetbrains.mps.lang.quotation.typesystem)",
                 "1196866830959",
                 true),
         (SNode) _quotation_createNode_r9cjy_a0a0b(),
         false,
         true,
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode rule, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(rule, "operandType", true);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c895902b1(jetbrains.mps.lang.typesystem.typesystem)",
             "8124453027370845370",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c895902b1(jetbrains.mps.lang.typesystem.typesystem)",
                 "8124453027370845375",
                 true),
         (SNode)
             new typeof_OverloadedOpTypeRule_OneTypeSpecified_InferenceRule
                     .QuotationClass_qwtsrn_a0a0a0()
                 .createNode(typeCheckingContext),
         false,
         true,
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode throwStatement,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 =
         SLinkOperations.getTarget(
             throwStatement,
             MetaAdapterFactory.getContainmentLink(
                 0xf3061a5392264cc5L,
                 0xa443f952ceaf5816L,
                 0x10f3ee082d8L,
                 0x10f3ee0cd6fL,
                 "throwable"));
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
             "1176896118328",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                 "1176896098411",
                 true),
         (SNode) _quotation_createNode_7y699y_a0a0b(),
         false,
         true,
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode getKeysOperation,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   final SNode KEY_typevar_1201874360962 = typeCheckingContext.createNewRuntimeTypesVariable();
   final SNode VALUE_typevar_1201874371667 = typeCheckingContext.createNewRuntimeTypesVariable();
   {
     SNode _nodeToCheck_1029348928467 =
         IOperation_Behavior.call_getOperand_1213877410070(getKeysOperation);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
             "1201874387564",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                 "1201874356659",
                 true),
         (SNode)
             new typeof_GetKeysOperation_InferenceRule.QuotationClass_z6uv9c_a0a2a0()
                 .createNode(
                     typeCheckingContext.getRepresentative(KEY_typevar_1201874360962),
                     typeCheckingContext.getRepresentative(VALUE_typevar_1201874371667),
                     typeCheckingContext),
         false,
         true,
         _info_12389875345);
   }
   {
     SNode _nodeToCheck_1029348928467 = getKeysOperation;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
             "1201874414202",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                 "1201874348006",
                 true),
         (SNode)
             new typeof_GetKeysOperation_InferenceRule.QuotationClass_z6uv9c_a0a3a0()
                 .createNode(
                     typeCheckingContext.getRepresentative(KEY_typevar_1201874360962),
                     typeCheckingContext),
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode operation,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   final SNode T_typevar_6981317760235403018 = typeCheckingContext.createNewRuntimeTypesVariable();
   {
     SNode _nodeToCheck_1029348928467 =
         SLinkOperations.getTarget(
             SNodeOperations.cast(
                 SNodeOperations.getParent(operation),
                 "jetbrains.mps.baseLanguage.structure.DotExpression"),
             "operand",
             true);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:e115237b-80f4-4ca3-87d6-2ac891492994(jetbrains.mps.execution.settings.typesystem)",
             "6981317760235403036",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:e115237b-80f4-4ca3-87d6-2ac891492994(jetbrains.mps.execution.settings.typesystem)",
                 "6981317760235403021",
                 true),
         (SNode)
             _quotation_createNode_89tbzo_a0b0a(
                 typeCheckingContext.getRepresentative(T_typevar_6981317760235403018)),
         false,
         false,
         _info_12389875345);
   }
   {
     SNode _nodeToCheck_1029348928467 = operation;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:e115237b-80f4-4ca3-87d6-2ac891492994(jetbrains.mps.execution.settings.typesystem)",
             "6981317760235403009",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:e115237b-80f4-4ca3-87d6-2ac891492994(jetbrains.mps.execution.settings.typesystem)",
                 "6981317760235403006",
                 true),
         (SNode)
             _quotation_createNode_89tbzo_a0c0a(
                 typeCheckingContext.getRepresentative(T_typevar_6981317760235403018)),
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode nodeToCheck,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   if ((SLinkOperations.getTarget(nodeToCheck, "attributeType", true) != null)
       && (SLinkOperations.getTarget(nodeToCheck, "default", true) != null)) {
     {
       SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(nodeToCheck, "default", true);
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:eac20369-5993-49cc-a9ac-fbeb7a91d81f(jetbrains.mps.build.generictasks.typesystem)",
               "353793545802854687",
               0,
               null);
       typeCheckingContext.createGreaterThanInequality(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:eac20369-5993-49cc-a9ac-fbeb7a91d81f(jetbrains.mps.build.generictasks.typesystem)",
                   "353793545802854693",
                   true),
           (SNode) SLinkOperations.getTarget(nodeToCheck, "attributeType", true),
           false,
           true,
           _info_12389875345);
     }
     if ((SLinkOperations.getTarget(nodeToCheck, "enum", true) != null)) {
       {
         SNode _nodeToCheck_1029348928467 = nodeToCheck;
         EquationInfo _info_12389875345 =
             new EquationInfo(
                 _nodeToCheck_1029348928467,
                 null,
                 "r:eac20369-5993-49cc-a9ac-fbeb7a91d81f(jetbrains.mps.build.generictasks.typesystem)",
                 "353793545802854699",
                 0,
                 null);
         typeCheckingContext.createLessThanInequality(
             (SNode)
                 BehaviorReflection.invokeVirtualStatic(
                     (Class<SNode>) ((Class) Object.class),
                     SConceptRepository.getInstance()
                         .getConcept(
                             NameUtil.nodeFQName(
                                 SNodeOperations.getConceptDeclaration(
                                     SLinkOperations.getTarget(nodeToCheck, "enum", true)))),
                     "virtual_getExpectedAttributeType_6575219246653626201",
                     new Object[] {}),
             (SNode) SLinkOperations.getTarget(nodeToCheck, "attributeType", true),
             false,
             true,
             _info_12389875345);
       }
     }
   }
 }
 public void applyRule(
     final SNode nodeToCheck,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 = nodeToCheck;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c895902b1(jetbrains.mps.lang.typesystem.typesystem)",
             "1210785557538",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c895902b1(jetbrains.mps.lang.typesystem.typesystem)",
                 "1210785549895",
                 true),
         (SNode)
             typeCheckingContext.typeOf(
                 SLinkOperations.getTarget(nodeToCheck, "quickFixArgument", false),
                 "r:00000000-0000-4000-0000-011c895902b1(jetbrains.mps.lang.typesystem.typesystem)",
                 "1210785559153",
                 true),
         _info_12389875345);
   }
   {
     SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(nodeToCheck, "value", true);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c895902b1(jetbrains.mps.lang.typesystem.typesystem)",
             "1210838490964",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c895902b1(jetbrains.mps.lang.typesystem.typesystem)",
                 "1210838483394",
                 true),
         (SNode)
             typeCheckingContext.typeOf(
                 nodeToCheck,
                 "r:00000000-0000-4000-0000-011c895902b1(jetbrains.mps.lang.typesystem.typesystem)",
                 "1210838495157",
                 true),
         false,
         true,
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode creator,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   SNode elementType = SLinkOperations.getTarget(creator, "elementType", true);
   {
     SNode _nodeToCheck_1029348928467 = creator;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
             "1224414570410",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                 "1224414558830",
                 true),
         (SNode)
             new typeof_SequenceCreator_InferenceRule.QuotationClass_qzfpnd_a0a1a0()
                 .createNode(elementType, typeCheckingContext),
         _info_12389875345);
   }
   if ((SLinkOperations.getTarget(creator, "initializer", true) != null)) {
     {
       SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(creator, "initializer", true);
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
               "1224414640119",
               0,
               null);
       typeCheckingContext.createLessThanInequality(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                   "1224414629838",
                   true),
           (SNode)
               new typeof_SequenceCreator_InferenceRule.QuotationClass_qzfpnd_a0a0a2a0()
                   .createNode(elementType, typeCheckingContext),
           false,
           true,
           _info_12389875345);
     }
   }
 }
 public void applyRule(
     final SNode creator,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   SNode elementType = SLinkOperations.getTarget(creator, "elementType", true);
   {
     SNode _nodeToCheck_1029348928467 = creator;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
             "1224414570410",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                 "1224414558830",
                 true),
         (SNode) _quotation_createNode_qzfpnd_a0b0a(elementType),
         _info_12389875345);
   }
   if ((SLinkOperations.getTarget(creator, "initializer", true) != null)) {
     if (!(typeCheckingContext.isSingleTypeComputation())) {
       {
         SNode _nodeToCheck_1029348928467 =
             SLinkOperations.getTarget(creator, "initializer", true);
         EquationInfo _info_12389875345 =
             new EquationInfo(
                 _nodeToCheck_1029348928467,
                 null,
                 "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                 "1224414640119",
                 0,
                 null);
         typeCheckingContext.createLessThanInequality(
             (SNode)
                 typeCheckingContext.typeOf(
                     _nodeToCheck_1029348928467,
                     "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                     "1224414629838",
                     true),
             (SNode) _quotation_createNode_qzfpnd_a0a0c0a(elementType),
             true,
             true,
             _info_12389875345);
       }
     }
   }
 }
 public void applyRule(
     final SNode operation,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 = operation;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:8456500c-6587-4a83-9f3b-ee95eb04cd7e(jetbrains.mps.lang.traceable.operations.typesystem)",
             "2603522263179374388",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:8456500c-6587-4a83-9f3b-ee95eb04cd7e(jetbrains.mps.lang.traceable.operations.typesystem)",
                 "2603522263179374365",
                 true),
         (SNode) _quotation_createNode_h7rq16_a0a0a(),
         _info_12389875345);
   }
   {
     SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(operation, "argument", true);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:8456500c-6587-4a83-9f3b-ee95eb04cd7e(jetbrains.mps.lang.traceable.operations.typesystem)",
             "2603522263179406444",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:8456500c-6587-4a83-9f3b-ee95eb04cd7e(jetbrains.mps.lang.traceable.operations.typesystem)",
                 "2603522263179374400",
                 true),
         (SNode) _quotation_createNode_h7rq16_a0b0a(),
         false,
         false,
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode op, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 = op;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c895902f1(jetbrains.mps.lang.generator.generationContext.typesystem)",
             "5403673535105110320",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c895902f1(jetbrains.mps.lang.generator.generationContext.typesystem)",
                 "5403673535105110315",
                 true),
         (SNode) _quotation_createNode_3ufvnu_a0a0b(),
         _info_12389875345);
   }
   if (!(typeCheckingContext.isSingleTypeComputation())) {
     {
       SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(op, "nodeToCheck", true);
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:00000000-0000-4000-0000-011c895902f1(jetbrains.mps.lang.generator.generationContext.typesystem)",
               "6908928803899694660",
               0,
               null);
       typeCheckingContext.createLessThanInequality(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:00000000-0000-4000-0000-011c895902f1(jetbrains.mps.lang.generator.generationContext.typesystem)",
                   "6908928803899694662",
                   true),
           (SNode) _quotation_createNode_3ufvnu_a0b0b(),
           true,
           true,
           _info_12389875345);
     }
   }
 }
 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);
   }
 }
 public void applyRule(
     final SNode switchCase,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   SNode switchNode =
       SNodeOperations.as(
           SNodeOperations.getParent(switchCase),
           "jetbrains.mps.baseLanguage.structure.SwitchStatement");
   if ((switchNode != null)) {
     if (!(typeCheckingContext.isSingleTypeComputation())) {
       {
         SNode _nodeToCheck_1029348928467 =
             SLinkOperations.getTarget(switchCase, "expression", true);
         EquationInfo _info_12389875345 =
             new EquationInfo(
                 _nodeToCheck_1029348928467,
                 null,
                 "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                 "9035995549588792237",
                 0,
                 null);
         typeCheckingContext.createLessThanInequality(
             (SNode)
                 typeCheckingContext.typeOf(
                     _nodeToCheck_1029348928467,
                     "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                     "9035995549588792243",
                     true),
             (SNode)
                 typeCheckingContext.typeOf(
                     SLinkOperations.getTarget(switchNode, "expression", true),
                     "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                     "9035995549588792240",
                     true),
             true,
             false,
             _info_12389875345);
       }
     }
   }
 }
 public void applyRule(
     final SNode operation,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   if (!(typeCheckingContext.isSingleTypeComputation())) {
     {
       SNode _nodeToCheck_1029348928467 =
           SLinkOperations.getTarget(
               operation,
               MetaAdapterFactory.getContainmentLink(
                   0x7866978ea0f04cc7L,
                   0x81bc4d213d9375e1L,
                   0x120ed37e60cL,
                   0x120ed37e60dL,
                   "nameExpression"));
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)",
               "1240321449347",
               0,
               null);
       typeCheckingContext.createLessThanInequality(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)",
                   "1240321440339",
                   true),
           (SNode) _quotation_createNode_rhg2pa_a0a0b(),
           true,
           false,
           _info_12389875345);
     }
   }
 }
 public void applyRule(
     final SNode persistentPropertyDeclaration,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   SNode primitive =
       SLinkOperations.getTarget(_quotation_createNode_sacma3_a0a0a0(), "descriptor", false);
   {
     SNode _nodeToCheck_1029348928467 = persistentPropertyDeclaration;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:e115237b-80f4-4ca3-87d6-2ac891492994(jetbrains.mps.execution.settings.typesystem)",
             "6981317760235477761",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode) SLinkOperations.getTarget(persistentPropertyDeclaration, "type", true),
         (SNode) _quotation_createNode_sacma3_a0b0a(primitive),
         false,
         true,
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode mapping,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 = mapping;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:40b64a44-89c9-404d-9824-6c98cb8ca353(jetbrains.mps.lang.editor.diagram.typesystem)",
             "342110547582557667",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:40b64a44-89c9-404d-9824-6c98cb8ca353(jetbrains.mps.lang.editor.diagram.typesystem)",
                 "342110547582557391",
                 true),
         (SNode)
             typeCheckingContext.typeOf(
                 FigureParameterMapping_Behavior.call_getParameterDeclaration_4115105161238952352(
                     mapping),
                 "r:40b64a44-89c9-404d-9824-6c98cb8ca353(jetbrains.mps.lang.editor.diagram.typesystem)",
                 "342110547582557855",
                 true),
         _info_12389875345);
   }
   if (!(typeCheckingContext.isSingleTypeComputation())) {
     {
       SNode _nodeToCheck_1029348928467 =
           SLinkOperations.getTarget(
               mapping,
               MetaAdapterFactory.getContainmentLink(
                   0x6106f6117a7442d1L,
                   0x80deedc5c602bfd1L,
                   0xf301bf106a7d7c7L,
                   0x3f6e840fdd824ddL,
                   "argument"));
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:40b64a44-89c9-404d-9824-6c98cb8ca353(jetbrains.mps.lang.editor.diagram.typesystem)",
               "342110547580710609",
               0,
               null);
       typeCheckingContext.createLessThanInequality(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:40b64a44-89c9-404d-9824-6c98cb8ca353(jetbrains.mps.lang.editor.diagram.typesystem)",
                   "342110547580708533",
                   true),
           (SNode)
               typeCheckingContext.typeOf(
                   FigureParameterMapping_Behavior
                       .call_getParameterDeclaration_4115105161238952352(mapping),
                   "r:40b64a44-89c9-404d-9824-6c98cb8ca353(jetbrains.mps.lang.editor.diagram.typesystem)",
                   "342110547580710824",
                   true),
           true,
           true,
           _info_12389875345);
     }
   }
 }
 public void applyRule(
     final SNode func, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) {
   SNode expectedRetType =
       BehaviorReflection.invokeVirtual(
           (Class<SNode>) ((Class) Object.class),
           func,
           "virtual_getExpectedReturnType_1213877374441",
           new Object[] {});
   boolean noReturnExpected =
       ((expectedRetType == null)
           || TypeChecker.getInstance()
               .getSubtypingManager()
               .isSubtype(expectedRetType, _quotation_createNode_bbraw4_b0a0a0b0b()));
   if (SConceptOperations.isExactly(
       SNodeOperations.getConceptDeclaration(expectedRetType),
       "jetbrains.mps.baseLanguage.structure.WildCardType")) {
     // function is expected to return value of any type
     expectedRetType = null;
   }
   if (!(noReturnExpected)) {
     final SNode LCS_typevar_1186052624152 = typeCheckingContext.createNewRuntimeTypesVariable();
     Iterable<SNode> returnStatements =
         RulesFunctions_BaseLanguage.collectReturnStatements(
             SLinkOperations.getTarget(func, "body", true));
     // should return subtypes of the 'expected type'
     // if 'expected type' is null - should still return some value (of any type)
     for (SNode returnStatement : Sequence.fromIterable(returnStatements)) {
       if ((SLinkOperations.getTarget(returnStatement, "expression", true) == null)) {
         {
           MessageTarget errorTarget = new NodeMessageTarget();
           IErrorReporter _reporter_2309309498 =
               typeCheckingContext.reportTypeError(
                   returnStatement,
                   "should return value",
                   "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                   "1186053304501",
                   null,
                   errorTarget);
         }
       } else {
         {
           SNode _nodeToCheck_1029348928467 =
               SLinkOperations.getTarget(returnStatement, "expression", true);
           EquationInfo _info_12389875345 =
               new EquationInfo(
                   _nodeToCheck_1029348928467,
                   null,
                   "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                   "1186053304511",
                   0,
                   null);
           typeCheckingContext.createGreaterThanInequality(
               (SNode) typeCheckingContext.getRepresentative(LCS_typevar_1186052624152),
               (SNode)
                   typeCheckingContext.typeOf(
                       _nodeToCheck_1029348928467,
                       "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                       "1186053304515",
                       true),
               false,
               true,
               _info_12389875345);
         }
         if ((expectedRetType != null)) {
           if (!(typeCheckingContext.isSingleTypeComputation())) {
             {
               SNode _nodeToCheck_1029348928467 =
                   SLinkOperations.getTarget(returnStatement, "expression", true);
               EquationInfo _info_12389875345 =
                   new EquationInfo(
                       _nodeToCheck_1029348928467,
                       null,
                       "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                       "7630810368327770735",
                       0,
                       null);
               typeCheckingContext.createLessThanInequality(
                   (SNode)
                       typeCheckingContext.typeOf(
                           _nodeToCheck_1029348928467,
                           "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                           "7630810368327770718",
                           true),
                   (SNode) expectedRetType,
                   true,
                   true,
                   _info_12389875345);
             }
           }
         }
       }
     }
     // last expression statement can serve as return statement
     SNode lastStatement =
         BehaviorReflection.invokeVirtual(
             (Class<SNode>) ((Class) Object.class),
             func,
             "virtual_getLastStatement_1239354409446",
             new Object[] {});
     if (SNodeOperations.isInstanceOf(
         lastStatement, "jetbrains.mps.baseLanguage.structure.ExpressionStatement")) {
       SNode expression =
           SLinkOperations.getTarget(
               SNodeOperations.cast(
                   lastStatement, "jetbrains.mps.baseLanguage.structure.ExpressionStatement"),
               "expression",
               true);
       {
         SNode _nodeToCheck_1029348928467 = expression;
         EquationInfo _info_12389875345 =
             new EquationInfo(
                 _nodeToCheck_1029348928467,
                 null,
                 "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                 "1186053063874",
                 0,
                 null);
         typeCheckingContext.createGreaterThanInequality(
             (SNode) typeCheckingContext.getRepresentative(LCS_typevar_1186052624152),
             (SNode)
                 typeCheckingContext.typeOf(
                     _nodeToCheck_1029348928467,
                     "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                     "1186053084979",
                     true),
             false,
             true,
             _info_12389875345);
       }
       if ((expectedRetType != null)) {
         if (!(typeCheckingContext.isSingleTypeComputation())) {
           {
             SNode _nodeToCheck_1029348928467 = expression;
             EquationInfo _info_12389875345 =
                 new EquationInfo(
                     _nodeToCheck_1029348928467,
                     null,
                     "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                     "7630810368327770756",
                     0,
                     null);
             typeCheckingContext.createLessThanInequality(
                 (SNode)
                     typeCheckingContext.typeOf(
                         _nodeToCheck_1029348928467,
                         "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                         "7630810368327770753",
                         true),
                 (SNode) expectedRetType,
                 true,
                 true,
                 _info_12389875345);
           }
         }
       }
     }
     {
       SNode _nodeToCheck_1029348928467 = func;
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
               "1186053174208",
               0,
               null);
       typeCheckingContext.createEquation(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                   "1186053169643",
                   true),
           (SNode) typeCheckingContext.getRepresentative(LCS_typevar_1186052624152),
           _info_12389875345);
     }
     if ((expectedRetType != null)) {
       {
         SNode _nodeToCheck_1029348928467 = func;
         EquationInfo _info_12389875345 =
             new EquationInfo(
                 _nodeToCheck_1029348928467,
                 null,
                 "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                 "1186053540847",
                 0,
                 null);
         typeCheckingContext.createLessThanInequality(
             (SNode)
                 typeCheckingContext.typeOf(
                     _nodeToCheck_1029348928467,
                     "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)",
                     "1186053540851",
                     true),
             (SNode) expectedRetType,
             false,
             true,
             _info_12389875345);
       }
     }
   }
 }
 public void applyRule(
     final SNode containsKeyOperation,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 = containsKeyOperation;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
             "1201873006966",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                 "1201873003944",
                 true),
         (SNode) _quotation_createNode_n6vt4l_a0a0b(),
         _info_12389875345);
   }
   final SNode KEY_typevar_1201873088202 = typeCheckingContext.createNewRuntimeTypesVariable();
   final SNode VALUE_typevar_1201874216771 = typeCheckingContext.createNewRuntimeTypesVariable();
   {
     SNode _nodeToCheck_1029348928467 =
         IOperation__BehaviorDescriptor.getOperand_idhEwIP$m.invoke(containsKeyOperation);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
             "7668447476859120479",
             0,
             null);
     typeCheckingContext.createGreaterThanInequality(
         (SNode)
             _quotation_createNode_n6vt4l_a0d0b(
                 typeCheckingContext.getRepresentative(VALUE_typevar_1201874216771),
                 typeCheckingContext.getRepresentative(KEY_typevar_1201873088202)),
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                 "1201874242447",
                 true),
         false,
         true,
         _info_12389875345);
   }
   if (!(typeCheckingContext.isSingleTypeComputation())) {
     {
       SNode _nodeToCheck_1029348928467 =
           SLinkOperations.getTarget(
               containsKeyOperation,
               MetaAdapterFactory.getContainmentLink(
                   0x8388864671ce4f1cL,
                   0x9c53c54016f6ad4fL,
                   0x117b3740258L,
                   0x117c8321b8fL,
                   "key"));
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
               "1201873049497",
               0,
               null);
       typeCheckingContext.createLessThanInequality(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                   "1201873021716",
                   true),
           (SNode) typeCheckingContext.getRepresentative(KEY_typevar_1201873088202),
           true,
           true,
           _info_12389875345);
     }
   }
 }
 public void applyRule(
     final SNode wo, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) {
   final SNode paramType_typevar_1203177832282 =
       typeCheckingContext.createNewRuntimeTypesVariable();
   {
     SNode _nodeToCheck_1029348928467 = IOperation_Behavior.call_getOperand_1213877410070(wo);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
             "2762046050488366454",
             0,
             null);
     typeCheckingContext.createGreaterThanInequality(
         (SNode)
             _quotation_createNode_pin8c2_a0b0b(
                 typeCheckingContext.getRepresentative(paramType_typevar_1203177832282)),
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                 "1225885301838",
                 true),
         false,
         true,
         _info_12389875345);
   }
   if (!(typeCheckingContext.isSingleTypeComputation())) {
     {
       SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(wo, "closure", true);
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
               "1225884077242",
               0,
               null);
       typeCheckingContext.createLessThanInequality(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                   "1225884077244",
                   true),
           (SNode)
               _quotation_createNode_pin8c2_a0c0b(
                   typeCheckingContext.getRepresentative(paramType_typevar_1203177832282)),
           true,
           true,
           _info_12389875345);
     }
   }
   {
     SNode _nodeToCheck_1029348928467 = wo;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
             "1203177922110",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                 "1203177917787",
                 true),
         (SNode)
             _quotation_createNode_pin8c2_a0d0b(
                 typeCheckingContext.getRepresentative(paramType_typevar_1203177832282)),
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode op, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) {
   final SNode elementType_typevar_1227022325815 =
       typeCheckingContext.createNewRuntimeTypesVariable();
   {
     SNode _nodeToCheck_1029348928467 = IOperation_Behavior.call_getOperand_1213877410070(op);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
             "7668447476859120474",
             0,
             null);
     typeCheckingContext.createGreaterThanInequality(
         (SNode)
             BehaviorReflection.invokeVirtual(
                 (Class<SNode>) ((Class) Object.class),
                 op,
                 "virtual_expectedOperandType_6368025520509018230",
                 new Object[] {
                   typeCheckingContext.getRepresentative(elementType_typevar_1227022325815)
                 }),
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                 "1227022309333",
                 true),
         false,
         true,
         _info_12389875345);
   }
   if (!(typeCheckingContext.isSingleTypeComputation())) {
     {
       SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(op, "index", true);
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
               "1227022345453",
               0,
               null);
       typeCheckingContext.createLessThanInequality(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                   "1227022338592",
                   true),
           (SNode) _quotation_createNode_y1ttf7_a0c0b(),
           true,
           true,
           _info_12389875345);
     }
   }
   {
     SNode _nodeToCheck_1029348928467 = op;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
             "1227022501971",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)",
                 "1227022497064",
                 true),
         (SNode) typeCheckingContext.getRepresentative(elementType_typevar_1227022325815),
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode expr, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) {
   if (!(typeCheckingContext.isSingleTypeComputation())) {
     {
       SNode _nodeToCheck_1029348928467 =
           SLinkOperations.getTarget(
               expr,
               MetaAdapterFactory.getContainmentLink(
                   0x64d34fcdad024e73L,
                   0xaff8a581124c2e30L,
                   0x1bd5a514384e1959L,
                   0x585a05e7f411353eL,
                   "queryNode"));
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:00000000-0000-4000-0000-011c8959035a(jetbrains.mps.lang.findUsages.typesystem)",
               "6413574678187373071",
               0,
               null);
       typeCheckingContext.createLessThanInequality(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:00000000-0000-4000-0000-011c8959035a(jetbrains.mps.lang.findUsages.typesystem)",
                   "6413574678187373073",
                   true),
           (SNode) _quotation_createNode_4qk8lm_a0a0b(),
           true,
           true,
           _info_12389875345);
     }
   }
   if (!(typeCheckingContext.isSingleTypeComputation())) {
     {
       SNode _nodeToCheck_1029348928467 =
           SLinkOperations.getTarget(
               expr,
               MetaAdapterFactory.getContainmentLink(
                   0x64d34fcdad024e73L,
                   0xaff8a581124c2e30L,
                   0x1bd5a514384e1959L,
                   0x585a05e7f411353fL,
                   "scope"));
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:00000000-0000-4000-0000-011c8959035a(jetbrains.mps.lang.findUsages.typesystem)",
               "6366407517031970690",
               0,
               null);
       typeCheckingContext.createLessThanInequality(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:00000000-0000-4000-0000-011c8959035a(jetbrains.mps.lang.findUsages.typesystem)",
                   "6366407517031970695",
                   true),
           (SNode) _quotation_createNode_4qk8lm_a0b0b(),
           true,
           false,
           _info_12389875345);
     }
   }
   if (!(typeCheckingContext.isSingleTypeComputation())) {
     {
       SNode _nodeToCheck_1029348928467 =
           SLinkOperations.getTarget(
               expr,
               MetaAdapterFactory.getContainmentLink(
                   0x64d34fcdad024e73L,
                   0xaff8a581124c2e30L,
                   0x1bd5a514384e1959L,
                   0x585a05e7f4113540L,
                   "progress"));
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:00000000-0000-4000-0000-011c8959035a(jetbrains.mps.lang.findUsages.typesystem)",
               "6366407517031970703",
               0,
               null);
       typeCheckingContext.createLessThanInequality(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:00000000-0000-4000-0000-011c8959035a(jetbrains.mps.lang.findUsages.typesystem)",
                   "6366407517031970708",
                   true),
           (SNode) _quotation_createNode_4qk8lm_a0c0b(),
           true,
           false,
           _info_12389875345);
     }
   }
   {
     SNode _nodeToCheck_1029348928467 = expr;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c8959035a(jetbrains.mps.lang.findUsages.typesystem)",
             "8150507060913379976",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c8959035a(jetbrains.mps.lang.findUsages.typesystem)",
                 "8150507060913379973",
                 true),
         (SNode) _quotation_createNode_4qk8lm_a0d0b(),
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode op, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) {
   SNode operand =
       SLinkOperations.getTarget(
           SNodeOperations.cast(
               SNodeOperations.getParent(op),
               MetaAdapterFactory.getConcept(
                   0xf3061a5392264cc5L,
                   0xa443f952ceaf5816L,
                   0x116b46a08c4L,
                   "jetbrains.mps.baseLanguage.structure.DotExpression")),
           MetaAdapterFactory.getContainmentLink(
               0xf3061a5392264cc5L,
               0xa443f952ceaf5816L,
               0x116b46a08c4L,
               0x116b46a4416L,
               "operand"));
   final SNode C_typevar_7453996997717785676 = typeCheckingContext.createNewRuntimeTypesVariable();
   {
     SNode _nodeToCheck_1029348928467 = operand;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)",
             "7453996997717785677",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)",
                 "7453996997717785684",
                 false),
         (SNode)
             _quotation_createNode_rcqvls_a0c0b(
                 typeCheckingContext.getRepresentative(C_typevar_7453996997717785676)),
         false,
         true,
         _info_12389875345);
   }
   {
     SNode _nodeToCheck_1029348928467 = op;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)",
             "7453996997717785686",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)",
                 "7453996997717785693",
                 true),
         (SNode)
             _quotation_createNode_rcqvls_a0d0b(
                 typeCheckingContext.getRepresentative(C_typevar_7453996997717785676)),
         _info_12389875345);
   }
 }
 public void applyRule(
     final SNode creator,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   SNode createdType = SLinkOperations.getTarget(creator, "createdType", true);
   if (createdType != null) {
     if (SLinkOperations.getTarget(createdType, "concept", false) == null) {
       {
         MessageTarget errorTarget = new NodeMessageTarget();
         IErrorReporter _reporter_2309309498 =
             typeCheckingContext.reportTypeError(
                 createdType,
                 "concrete node type is expected",
                 "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)",
                 "1181944909006",
                 null,
                 errorTarget);
       }
       return;
     }
     if (SLinkOperations.getTarget(creator, "prototypeNode", true) != null) {
       {
         SNode _nodeToCheck_1029348928467 =
             SLinkOperations.getTarget(creator, "prototypeNode", true);
         EquationInfo _info_12389875345 =
             new EquationInfo(
                 _nodeToCheck_1029348928467,
                 null,
                 "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)",
                 "1181945011354",
                 0,
                 null);
         typeCheckingContext.createLessThanInequality(
             (SNode)
                 typeCheckingContext.typeOf(
                     _nodeToCheck_1029348928467,
                     "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)",
                     "1186061742845",
                     true),
             (SNode) _quotation_createNode_tty23h_a0a0b0b0b(),
             false,
             true,
             _info_12389875345);
       }
     }
     {
       SNode _nodeToCheck_1029348928467 = creator;
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)",
               "1203712073961",
               0,
               null);
       typeCheckingContext.createEquation(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)",
                   "1203712073963",
                   true),
           (SNode) createdType,
           _info_12389875345);
     }
   }
 }
 public void applyRule(
     final SNode op, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) {
   {
     SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(op, "expression", true);
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c895903d1(jetbrains.mps.baseLanguage.dates.typesystem)",
             "1204416302428",
             0,
             null);
     typeCheckingContext.createLessThanInequality(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c895903d1(jetbrains.mps.baseLanguage.dates.typesystem)",
                 "1204416290893",
                 true),
         (SNode) _quotation_createNode_ppkk5o_a0a0a(),
         false,
         true,
         _info_12389875345);
   }
   {
     SNode _nodeToCheck_1029348928467 = op;
     EquationInfo _info_12389875345 =
         new EquationInfo(
             _nodeToCheck_1029348928467,
             null,
             "r:00000000-0000-4000-0000-011c895903d1(jetbrains.mps.baseLanguage.dates.typesystem)",
             "2639623922402551110",
             0,
             null);
     typeCheckingContext.createEquation(
         (SNode)
             typeCheckingContext.typeOf(
                 _nodeToCheck_1029348928467,
                 "r:00000000-0000-4000-0000-011c895903d1(jetbrains.mps.baseLanguage.dates.typesystem)",
                 "2639623922402551102",
                 true),
         (SNode)
             typeCheckingContext.typeOf(
                 SLinkOperations.getTarget(op, "datetime", true),
                 "r:00000000-0000-4000-0000-011c895903d1(jetbrains.mps.baseLanguage.dates.typesystem)",
                 "2639623922402551123",
                 true),
         _info_12389875345);
   }
   if (!(typeCheckingContext.isSingleTypeComputation())) {
     {
       SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(op, "datetime", true);
       EquationInfo _info_12389875345 =
           new EquationInfo(
               _nodeToCheck_1029348928467,
               null,
               "r:00000000-0000-4000-0000-011c895903d1(jetbrains.mps.baseLanguage.dates.typesystem)",
               "3986031709810158442",
               0,
               null);
       typeCheckingContext.createLessThanInequality(
           (SNode)
               typeCheckingContext.typeOf(
                   _nodeToCheck_1029348928467,
                   "r:00000000-0000-4000-0000-011c895903d1(jetbrains.mps.baseLanguage.dates.typesystem)",
                   "3986031709810154698",
                   true),
           (SNode) _quotation_createNode_ppkk5o_a0c0a(),
           true,
           true,
           _info_12389875345);
     }
   }
 }