public static Object nartSubstitute(Object cyclObject, CycAccess access)
  throws IOException {
    if (!DefaultCycObject.isCycLObject(cyclObject)) {
      throw new RuntimeException(DefaultCycObject.cyclify(cyclObject) + " is not a valid Cyc object.");
    }
    if (!(cyclObject instanceof CycObject)) { // @todo need a test that sees if the CycObject
                                              // contains any CycLists any fast fail if not
      return cyclObject;
    }
    return access.converseObject("(nart-substitute  '" + DefaultCycObject.cyclifyWithEscapeChars(cyclObject, true) + ")");
  }