public static Stella_Object instantiateExternalBindings(Stella_Object self) {
    { Surrogate testValue000 = Stella_Object.safePrimaryType(self);

      if (Surrogate.subtypeOfP(testValue000, Logic.SGT_LOGIC_NAMED_DESCRIPTION)) {
        { NamedDescription self000 = ((NamedDescription)(self));

        }
      }
      else if (Surrogate.subtypeOfP(testValue000, Logic.SGT_LOGIC_DESCRIPTION)) {
        { Description self000 = ((Description)(self));

          if (((Vector)(KeyValueList.dynamicSlotValue(self000.dynamicSlots, Logic.SYM_LOGIC_EXTERNAL_VARIABLES, null))) != null) {
            { KeyValueMap mapping = KeyValueMap.newKeyValueMap();

              { PatternVariable var = null;
                Vector vector000 = ((Vector)(KeyValueList.dynamicSlotValue(self000.dynamicSlots, Logic.SYM_LOGIC_EXTERNAL_VARIABLES, null)));
                int index000 = 0;
                int length000 = vector000.length();

                for (;index000 < length000; index000 = index000 + 1) {
                  var = ((PatternVariable)((vector000.theArray)[index000]));
                  if (Logic.argumentBoundP(var)) {
                    mapping.insertAt(var, Logic.safeArgumentBoundTo(var));
                  }
                }
              }
              if (!(mapping.emptyP())) {
                return (Description.instantiateExternalVariables(self000, mapping));
              }
            }
          }
        }
      }
      else if (Surrogate.subtypeOfP(testValue000, Logic.SGT_LOGIC_PROPOSITION)) {
        { Proposition self000 = ((Proposition)(self));

        }
      }
      else {
      }
    }
    return (self);
  }