public static boolean identicalSignaturesP(MethodSlot method1, MethodSlot method2) {
    { boolean testValue000 = false;

      { boolean alwaysP000 = true;

        { StandardObject ts1 = null;
          Cons iter000 = method1.methodParameterTypeSpecifiers().rest();
          StandardObject ts2 = null;
          Cons iter001 = method2.methodParameterTypeSpecifiers().rest();

          loop000 : for (;(!(iter000 == Stella.NIL)) &&
                    (!(iter001 == Stella.NIL)); iter000 = iter000.rest, iter001 = iter001.rest) {
            ts1 = ((StandardObject)(iter000.value));
            ts2 = ((StandardObject)(iter001.value));
            if (!(StandardObject.subTypeSpecOfP(ts1 = StandardObject.computeRelativeTypeSpec(ts1, method1.slotOwner), ts2 = StandardObject.computeRelativeTypeSpec(ts2, method2.slotOwner)) &&
                StandardObject.subTypeSpecOfP(ts2, ts1))) {
              alwaysP000 = false;
              break loop000;
            }
          }
        }
        testValue000 = alwaysP000;
      }
      if (testValue000) {
        { boolean alwaysP001 = true;

          { StandardObject ts1 = null;
            Cons iter002 = method1.methodReturnTypeSpecifiers().theConsList;
            StandardObject ts2 = null;
            Cons iter003 = method2.methodReturnTypeSpecifiers().theConsList;

            loop001 : for (;(!(iter002 == Stella.NIL)) &&
                      (!(iter003 == Stella.NIL)); iter002 = iter002.rest, iter003 = iter003.rest) {
              ts1 = ((StandardObject)(iter002.value));
              ts2 = ((StandardObject)(iter003.value));
              if (!(StandardObject.subTypeSpecOfP(ts1 = StandardObject.computeRelativeTypeSpec(ts1, method1.slotOwner), ts2 = StandardObject.computeRelativeTypeSpec(ts2, method2.slotOwner)) &&
                  StandardObject.subTypeSpecOfP(ts2, ts1))) {
                alwaysP001 = false;
                break loop001;
              }
            }
          }
          testValue000 = alwaysP001;
        }
      }
      { boolean value000 = testValue000;

        return (value000);
      }
    }
  }