
/*
 * This source code file was generated by the C-code generator gentclAPI.tcl,
 * part of the Next Scripting Framework.
 */

#if defined(USE_NSF_STUBS)
int Nsf_ConvertTo_Boolean(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToBoolean(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_Class(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToClass(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_Int32(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToInt32(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_Integer(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToInteger(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_Object(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToObject(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_Pointer(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToPointer(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_String(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToString(interp, objPtr, pPtr, clientData, outObjPtr);
}
int Nsf_ConvertTo_Tclobj(Tcl_Interp *interp, Tcl_Obj *objPtr,  Nsf_Param const *pPtr,
			  ClientData *clientData, Tcl_Obj **outObjPtr) {
  return Nsf_ConvertToTclobj(interp, objPtr, pPtr, clientData, outObjPtr);
}
#else
# define Nsf_ConvertTo_Boolean Nsf_ConvertToBoolean
# define Nsf_ConvertTo_Class Nsf_ConvertToClass
# define Nsf_ConvertTo_Int32 Nsf_ConvertToInt32
# define Nsf_ConvertTo_Integer Nsf_ConvertToInteger
# define Nsf_ConvertTo_Object Nsf_ConvertToObject
# define Nsf_ConvertTo_Pointer Nsf_ConvertToPointer
# define Nsf_ConvertTo_String Nsf_ConvertToString
# define Nsf_ConvertTo_Tclobj Nsf_ConvertToTclobj
#endif


#if !defined(likely)
# if defined(__GNUC__) && __GNUC__ > 2
/* Use gcc branch prediction hint to minimize cost of e.g. DTrace
 * ENABLED checks.
 */
#  define unlikely(x) (__builtin_expect((x), 0))
#  define likely(x) (__builtin_expect((x), 1))
# else
#  define unlikely(x) (x)
#  define likely(x) (x)
# endif
#endif



typedef enum {InfomethodsubcmdNULL, InfomethodsubcmdArgsIdx, InfomethodsubcmdBodyIdx, InfomethodsubcmdDefinitionIdx, InfomethodsubcmdExistsIdx, InfomethodsubcmdRegistrationhandleIdx, InfomethodsubcmdDefinitionhandleIdx, InfomethodsubcmdOriginIdx, InfomethodsubcmdParameterIdx, InfomethodsubcmdSyntaxIdx, InfomethodsubcmdTypeIdx, InfomethodsubcmdPreconditionIdx, InfomethodsubcmdPostconditionIdx, InfomethodsubcmdSubmethodsIdx, InfomethodsubcmdReturnsIdx} InfomethodsubcmdIdx_t;

static int ConvertToInfomethodsubcmd(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"args", "body", "definition", "exists", "registrationhandle", "definitionhandle", "origin", "parameter", "syntax", "type", "precondition", "postcondition", "submethods", "returns", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "infomethodsubcmd", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {CallprotectionNULL, CallprotectionAllIdx, CallprotectionPublicIdx, CallprotectionProtectedIdx, CallprotectionPrivateIdx} CallprotectionIdx_t;

static int ConvertToCallprotection(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"all", "public", "protected", "private", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "callprotection", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {MethodtypeNULL, MethodtypeAllIdx, MethodtypeScriptedIdx, MethodtypeBuiltinIdx, MethodtypeAliasIdx, MethodtypeForwarderIdx, MethodtypeObjectIdx, MethodtypeSetterIdx, MethodtypeNsfprocIdx} MethodtypeIdx_t;

static int ConvertToMethodtype(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"all", "scripted", "builtin", "alias", "forwarder", "object", "setter", "nsfproc", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "methodtype", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {DefinitionsourceNULL, DefinitionsourceAllIdx, DefinitionsourceApplicationIdx, DefinitionsourceSystemIdx} DefinitionsourceIdx_t;

static int ConvertToDefinitionsource(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"all", "application", "system", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "definitionsource", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {MixinscopeNULL, MixinscopeAllIdx, MixinscopeClassIdx, MixinscopeObjectIdx} MixinscopeIdx_t;

static int ConvertToMixinscope(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"all", "class", "object", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "mixinscope", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {ConfigureoptionNULL, ConfigureoptionDebugIdx, ConfigureoptionDtraceIdx, ConfigureoptionFilterIdx, ConfigureoptionSoftrecreateIdx, ConfigureoptionObjectsystemsIdx, ConfigureoptionKeepcmdsIdx, ConfigureoptionCheckresultsIdx, ConfigureoptionCheckargumentsIdx} ConfigureoptionIdx_t;

static int ConvertToConfigureoption(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"debug", "dtrace", "filter", "softrecreate", "objectsystems", "keepcmds", "checkresults", "checkarguments", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "configureoption", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {CurrentoptionNULL, CurrentoptionActivelevelIdx, CurrentoptionActivemixinIdx, CurrentoptionArgsIdx, CurrentoptionCalledclassIdx, CurrentoptionCalledmethodIdx, CurrentoptionCalledprocIdx, CurrentoptionCallingclassIdx, CurrentoptionCallinglevelIdx, CurrentoptionCallingmethodIdx, CurrentoptionCallingobjectIdx, CurrentoptionCallingprocIdx, CurrentoptionClassIdx, CurrentoptionFilterregIdx, CurrentoptionIsnextcallIdx, CurrentoptionLevelIdx, CurrentoptionMethodpathIdx, CurrentoptionMethodIdx, CurrentoptionNextmethodIdx, CurrentoptionObjectIdx, CurrentoptionProcIdx} CurrentoptionIdx_t;

static int ConvertToCurrentoption(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"activelevel", "activemixin", "args", "calledclass", "calledmethod", "calledproc", "callingclass", "callinglevel", "callingmethod", "callingobject", "callingproc", "class", "filterreg", "isnextcall", "level", "methodpath", "method", "nextmethod", "object", "proc", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "currentoption", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {FrameNULL, FrameMethodIdx, FrameObjectIdx, FrameDefaultIdx} FrameIdx_t;

static int ConvertToFrame(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"method", "object", "default", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "frame", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {ForwardpropertyNULL, ForwardpropertyPrefixIdx, ForwardpropertyTargetIdx, ForwardpropertyVerboseIdx} ForwardpropertyIdx_t;

static int ConvertToForwardproperty(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"prefix", "target", "verbose", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "forwardProperty", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {ProtectionNULL, ProtectionCall_protectedIdx, ProtectionRedefine_protectedIdx, ProtectionNoneIdx} ProtectionIdx_t;

static int ConvertToProtection(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"call-protected", "redefine-protected", "none", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "protection", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {AssertionsubcmdNULL, AssertionsubcmdCheckIdx, AssertionsubcmdObject_invarIdx, AssertionsubcmdClass_invarIdx} AssertionsubcmdIdx_t;

static int ConvertToAssertionsubcmd(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"check", "object-invar", "class-invar", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "assertionsubcmd", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {MethodpropertyNULL, MethodpropertyClass_onlyIdx, MethodpropertyCall_privateIdx, MethodpropertyCall_protectedIdx, MethodpropertyDebugIdx, MethodpropertyDeprecatedIdx, MethodpropertyExistsIdx, MethodpropertyRedefine_protectedIdx, MethodpropertyReturnsIdx} MethodpropertyIdx_t;

static int ConvertToMethodproperty(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"class-only", "call-private", "call-protected", "debug", "deprecated", "exists", "redefine-protected", "returns", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "methodProperty", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {ObjectpropertyNULL, ObjectpropertyInitializedIdx, ObjectpropertyClassIdx, ObjectpropertyRootmetaclassIdx, ObjectpropertyRootclassIdx, ObjectpropertyVolatileIdx, ObjectpropertySlotcontainerIdx, ObjectpropertyHasperobjectslotsIdx, ObjectpropertyKeepcallerselfIdx, ObjectpropertyPerobjectdispatchIdx} ObjectpropertyIdx_t;

static int ConvertToObjectproperty(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"initialized", "class", "rootmetaclass", "rootclass", "volatile", "slotcontainer", "hasperobjectslots", "keepcallerself", "perobjectdispatch", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "objectProperty", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {ParametersubcmdNULL, ParametersubcmdDefaultIdx, ParametersubcmdListIdx, ParametersubcmdNameIdx, ParametersubcmdSyntaxIdx, ParametersubcmdTypeIdx} ParametersubcmdIdx_t;

static int ConvertToParametersubcmd(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"default", "list", "name", "syntax", "type", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "parametersubcmd", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  
typedef enum {RelationtypeNULL, RelationtypeObject_mixinIdx, RelationtypeClass_mixinIdx, RelationtypeObject_filterIdx, RelationtypeClass_filterIdx, RelationtypeClassIdx, RelationtypeSuperclassIdx, RelationtypeRootclassIdx} RelationtypeIdx_t;

static int ConvertToRelationtype(Tcl_Interp *interp, Tcl_Obj *objPtr, Nsf_Param const *pPtr,
			    ClientData *clientData, Tcl_Obj **outObjPtr) {
  int index, result;
  static const char *opts[] = {"object-mixin", "class-mixin", "object-filter", "class-filter", "class", "superclass", "rootclass", NULL};
  (void)pPtr;
  result = Tcl_GetIndexFromObj(interp, objPtr, opts, "relationtype", 0, &index);
  *clientData = (ClientData) INT2PTR(index + 1);
  *outObjPtr = objPtr;
  return result;
}
  

      static Nsf_EnumeratorConverterEntry enumeratorConverterEntries[] = {
  {ConvertToInfomethodsubcmd, "args|body|definition|exists|registrationhandle|definitionhandle|origin|parameter|syntax|type|precondition|postcondition|submethods|returns"},
  {ConvertToCallprotection, "all|public|protected|private"},
  {ConvertToMethodtype, "all|scripted|builtin|alias|forwarder|object|setter|nsfproc"},
  {ConvertToFrame, "method|object|default"},
  {ConvertToCurrentoption, "activelevel|activemixin|args|calledclass|calledmethod|calledproc|callingclass|callinglevel|callingmethod|callingobject|callingproc|class|filterreg|isnextcall|level|methodpath|method|nextmethod|object|proc"},
  {ConvertToMethodproperty, "class-only|call-private|call-protected|debug|deprecated|exists|redefine-protected|returns"},
  {ConvertToRelationtype, "object-mixin|class-mixin|object-filter|class-filter|class|superclass|rootclass"},
  {ConvertToDefinitionsource, "all|application|system"},
  {ConvertToForwardproperty, "prefix|target|verbose"},
  {ConvertToConfigureoption, "debug|dtrace|filter|softrecreate|objectsystems|keepcmds|checkresults|checkarguments"},
  {ConvertToObjectproperty, "initialized|class|rootmetaclass|rootclass|volatile|slotcontainer|hasperobjectslots|keepcallerself|perobjectdispatch"},
  {ConvertToAssertionsubcmd, "check|object-invar|class-invar"},
  {ConvertToParametersubcmd, "default|list|name|syntax|type"},
  {ConvertToMixinscope, "all|class|object"},
  {ConvertToProtection, "call-protected|redefine-protected|none"},
  {NULL, NULL}
};
    

/* just to define the symbol */
static Nsf_methodDefinition method_definitions[120];
  
static const char *method_command_namespace_names[] = {
  "::nsf::methods::object::info",
  "::nsf::methods::object",
  "::nsf::methods::class::info",
  "::nsf::methods::class"
};
static int NsfCAllocMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCCreateMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCDeallocMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCFilterGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCGetCachendParametersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCMixinGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCNewMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCRecreateMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfCSuperclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoFilterguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoFiltersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoForwardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoHeritageMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoInstancesMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoMixinOfMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoMixinguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoMixinsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoSlotobjectsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoSubclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoSuperclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfAsmMethodCreateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfAsmProcCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCallgrindDumpStatsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCallgrindStartInstrumentationCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCallgrindStopInstrumentationCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCallgrindToggleCollectCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCallgrindZeroStatsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCmdInfoCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfColonCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfConfigureCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfCurrentCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDebugCompileEpochStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDebugGetDictStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDebugRunAssertionsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDebugShowObjStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDefinitionNamespaceCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDirectDispatchCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfDispatchCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfFinalizeCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfForwardPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfInterpObjCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfIsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodAliasCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodAssertionCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodCreateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodDeleteCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodForwardCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodRegisteredCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodSetterCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfMyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfNSCopyVarsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfNextCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjectAllocCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjectExistsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjectPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjectQualifyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjectSystemCreateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfParameterCacheClassInvalidateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfParameterCacheObjectInvalidateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfParameterInfoCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfParameterSpecsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfParseArgsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfProcCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfProfileClearDataStubStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfProfileGetDataStubStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfProfileTraceStubStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfRelationGetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfRelationSetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfSelfCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfShowStackCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfUnsetUnknownArgsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfVarExistsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfVarGetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfVarImportCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfVarSetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfVarUnsetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(2) NSF_nonnull(4);
static int NsfOAutonameMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOCgetMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOClassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOCleanupMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOConfigureMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfODestroyMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOExistsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOFilterGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOInstvarMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOMixinGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfONoinitMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfORequireNamespaceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOResidualargsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOUplevelMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOUpvarMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfOVolatileMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoBaseclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoChildrenMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoClassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoFilterguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoFiltersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoForwardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoHasMixinMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoHasTypeMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoHasnamespaceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoLookupFilterMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoLookupFiltersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoLookupMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoLookupMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoLookupMixinsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoLookupSlotsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoMixinguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoMixinsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoNameMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoParentMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoPrecedenceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoSlotobjectsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoVarsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);

static int NsfCAllocMethod(Tcl_Interp *interp, NsfClass *cl, Tcl_Obj *objectName)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfCCreateMethod(Tcl_Interp *interp, NsfClass *cl, Tcl_Obj *objectName, int nobjc, Tcl_Obj *CONST* nobjv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfCDeallocMethod(Tcl_Interp *interp, NsfClass *cl, Tcl_Obj *object)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfCFilterGuardMethod(Tcl_Interp *interp, NsfClass *cl, const char *filter, Tcl_Obj *guard)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3) NSF_nonnull(4);
static int NsfCGetCachendParametersMethod(Tcl_Interp *interp, NsfClass *cl)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfCMixinGuardMethod(Tcl_Interp *interp, NsfClass *cl, Tcl_Obj *mixin, Tcl_Obj *guard)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3) NSF_nonnull(4);
static int NsfCNewMethod(Tcl_Interp *interp, NsfClass *cl, Tcl_Obj *withChildof, int nobjc, Tcl_Obj *CONST* nobjv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfCRecreateMethod(Tcl_Interp *interp, NsfClass *cl, Tcl_Obj *objectName, int nobjc, Tcl_Obj *CONST* nobjv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfCSuperclassMethod(Tcl_Interp *interp, NsfClass *cl, Tcl_Obj *superclasses)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoFilterguardMethod(Tcl_Interp *interp, NsfClass *cl, const char *filter)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfClassInfoFiltersMethod(Tcl_Interp *interp, NsfClass *cl, int withGuards, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoForwardMethod(Tcl_Interp *interp, NsfClass *cl, int withDefinition, const char *name)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoHeritageMethod(Tcl_Interp *interp, NsfClass *cl, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoInstancesMethod(Tcl_Interp *interp, NsfClass *cl, int withClosure, const char *patternString, NsfObject *patternObject)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoMethodMethod(Tcl_Interp *interp, NsfClass *cl, InfomethodsubcmdIdx_t subcmd, Tcl_Obj *name)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfClassInfoMethodsMethod(Tcl_Interp *interp, NsfClass *cl, CallprotectionIdx_t withCallprotection, int withClosure, MethodtypeIdx_t withType, int withPath, DefinitionsourceIdx_t withSource, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoMixinOfMethod(Tcl_Interp *interp, NsfClass *cl, int withClosure, MixinscopeIdx_t withScope, const char *patternString, NsfObject *patternObject)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoMixinguardMethod(Tcl_Interp *interp, NsfClass *cl, const char *mixin)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfClassInfoMixinsMethod(Tcl_Interp *interp, NsfClass *cl, int withClosure, int withGuards, int withHeritage, const char *patternString, NsfObject *patternObject)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoSlotobjectsMethod(Tcl_Interp *interp, NsfClass *cl, int withClosure, DefinitionsourceIdx_t withSource, NsfClass *withType, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoSubclassMethod(Tcl_Interp *interp, NsfClass *cl, int withClosure, int withDependent, const char *patternString, NsfObject *patternObject)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfClassInfoSuperclassMethod(Tcl_Interp *interp, NsfClass *cl, int withClosure, Tcl_Obj *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfAsmMethodCreateCmd(Tcl_Interp *interp, NsfObject *object, int withCheckalways, int withInner_namespace, int withPer_object, NsfObject *withReg_object, Tcl_Obj *methodName, Tcl_Obj *arguments, Tcl_Obj *body)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(7) NSF_nonnull(8) NSF_nonnull(9);
static int NsfAsmProcCmd(Tcl_Interp *interp, int withAd, int withCheckalways, Tcl_Obj *procName, Tcl_Obj *arguments, Tcl_Obj *body)
  NSF_nonnull(1) NSF_nonnull(4) NSF_nonnull(5) NSF_nonnull(6);
static int NsfCallgrindDumpStatsCmd(Tcl_Interp *interp, const char *withName)
  NSF_nonnull(1);
static int NsfCallgrindStartInstrumentationCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfCallgrindStopInstrumentationCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfCallgrindToggleCollectCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfCallgrindZeroStatsCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfCmdInfoCmd(Tcl_Interp *interp, InfomethodsubcmdIdx_t subcmd, NsfObject *withContext, Tcl_Obj *methodName, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(4);
static int NsfColonCmd(Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1);
static int NsfConfigureCmd(Tcl_Interp *interp, ConfigureoptionIdx_t option, Tcl_Obj *value)
  NSF_nonnull(1);
static int NsfCurrentCmd(Tcl_Interp *interp, CurrentoptionIdx_t option)
  NSF_nonnull(1);
static int NsfDebugCompileEpoch(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfDebugGetDict(Tcl_Interp *interp, Tcl_Obj *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfDebugRunAssertionsCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfDebugShowObj(Tcl_Interp *interp, Tcl_Obj *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfDefinitionNamespaceCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfDirectDispatchCmd(Tcl_Interp *interp, NsfObject *object, FrameIdx_t withFrame, Tcl_Obj *command, int nobjc, Tcl_Obj *CONST* nobjv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfDispatchCmd(Tcl_Interp *interp, NsfObject *object, int withIntrinsic, int withSystem, Tcl_Obj *command, int nobjc, Tcl_Obj *CONST* nobjv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(5);
static int NsfFinalizeCmd(Tcl_Interp *interp, int withKeepvars)
  NSF_nonnull(1);
static int NsfForwardPropertyCmd(Tcl_Interp *interp, NsfObject *object, int withPer_object, Tcl_Obj *methodName, ForwardpropertyIdx_t forwardProperty, Tcl_Obj *value)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfInterpObjCmd(Tcl_Interp *interp, const char *name, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfIsCmd(Tcl_Interp *interp, int withComplain, int withConfigure, const char *withName, Tcl_Obj *constraint, Tcl_Obj *value)
  NSF_nonnull(1) NSF_nonnull(5) NSF_nonnull(6);
static int NsfMethodAliasCmd(Tcl_Interp *interp, NsfObject *object, int withPer_object, const char *methodName, FrameIdx_t withFrame, ProtectionIdx_t withProtection, Tcl_Obj *cmdName)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4) NSF_nonnull(7);
static int NsfMethodAssertionCmd(Tcl_Interp *interp, NsfObject *object, AssertionsubcmdIdx_t subcmd, Tcl_Obj *arg)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfMethodCreateCmd(Tcl_Interp *interp, NsfObject *object, int withCheckalways, int withInner_namespace, int withPer_object, NsfObject *withReg_object, Tcl_Obj *methodName, Tcl_Obj *arguments, Tcl_Obj *body, Tcl_Obj *withPrecondition, Tcl_Obj *withPostcondition)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(7) NSF_nonnull(8) NSF_nonnull(9);
static int NsfMethodDeleteCmd(Tcl_Interp *interp, NsfObject *object, int withPer_object, Tcl_Obj *methodName)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodForwardCmd(Tcl_Interp *interp, NsfObject *object, int withPer_object, Tcl_Obj *method, Tcl_Obj *withDefault, int withEarlybinding, Tcl_Obj *withOnerror, Tcl_Obj *withPrefix, FrameIdx_t withFrame, int withVerbose, Tcl_Obj *target, int nobjc, Tcl_Obj *CONST* nobjv)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodPropertyCmd(Tcl_Interp *interp, NsfObject *object, int withPer_object, Tcl_Obj *methodName, MethodpropertyIdx_t methodProperty, Tcl_Obj *value)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfMethodRegisteredCmd(Tcl_Interp *interp, Tcl_Obj *handle)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfMethodSetterCmd(Tcl_Interp *interp, NsfObject *object, int withPer_object, Tcl_Obj *parameter)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfMyCmd(Tcl_Interp *interp, int withIntrinsic, int withLocal, int withSystem, Tcl_Obj *methodName, int nobjc, Tcl_Obj *CONST* nobjv)
  NSF_nonnull(1) NSF_nonnull(5);
static int NsfNSCopyVarsCmd(Tcl_Interp *interp, Tcl_Obj *fromNs, Tcl_Obj *toNs)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfNextCmd(Tcl_Interp *interp, Tcl_Obj *arguments)
  NSF_nonnull(1);
static int NsfObjectAllocCmd(Tcl_Interp *interp, NsfClass *class, Tcl_Obj *name, Tcl_Obj *initcmd)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjectExistsCmd(Tcl_Interp *interp, Tcl_Obj *value)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjectPropertyCmd(Tcl_Interp *interp, NsfObject *objectName, ObjectpropertyIdx_t objectProperty, Tcl_Obj *value)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjectQualifyCmd(Tcl_Interp *interp, Tcl_Obj *objectName)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjectSystemCreateCmd(Tcl_Interp *interp, Tcl_Obj *rootClass, Tcl_Obj *rootMetaClass, Tcl_Obj *systemMethods)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfParameterCacheClassInvalidateCmd(Tcl_Interp *interp, NsfClass *class)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfParameterCacheObjectInvalidateCmd(Tcl_Interp *interp, NsfObject *object)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfParameterInfoCmd(Tcl_Interp *interp, ParametersubcmdIdx_t subcmd, Tcl_Obj *spec, Tcl_Obj *varname)
  NSF_nonnull(1) NSF_nonnull(3);
static int NsfParameterSpecsCmd(Tcl_Interp *interp, int withConfigure, int withNonposargs, Tcl_Obj *slotobjs)
  NSF_nonnull(1) NSF_nonnull(4);
static int NsfParseArgsCmd(Tcl_Interp *interp, Tcl_Obj *argspec, Tcl_Obj *arglist)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfProcCmd(Tcl_Interp *interp, int withAd, int withCheckalways, int withDebug, int withDeprecated, Tcl_Obj *procName, Tcl_Obj *arguments, Tcl_Obj *body)
  NSF_nonnull(1) NSF_nonnull(6) NSF_nonnull(7) NSF_nonnull(8);
static int NsfProfileClearDataStub(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfProfileGetDataStub(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfProfileTraceStub(Tcl_Interp *interp, int withEnable, int withVerbose, int withDontsave, Tcl_Obj *withBuiltins)
  NSF_nonnull(1);
static int NsfRelationGetCmd(Tcl_Interp *interp, NsfObject *object, RelationtypeIdx_t type)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfRelationSetCmd(Tcl_Interp *interp, NsfObject *object, RelationtypeIdx_t type, Tcl_Obj *value)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfSelfCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfShowStackCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfUnsetUnknownArgsCmd(Tcl_Interp *interp)
  NSF_nonnull(1);
static int NsfVarExistsCmd(Tcl_Interp *interp, int withArray, NsfObject *object, const char *varName)
  NSF_nonnull(1) NSF_nonnull(3) NSF_nonnull(4);
static int NsfVarGetCmd(Tcl_Interp *interp, int withArray, int withNotrace, NsfObject *object, Tcl_Obj *varName)
  NSF_nonnull(1) NSF_nonnull(4) NSF_nonnull(5);
static int NsfVarImportCmd(Tcl_Interp *interp, NsfObject *object, int nobjc, Tcl_Obj *CONST* nobjv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfVarSetCmd(Tcl_Interp *interp, int withArray, int withNotrace, NsfObject *object, Tcl_Obj *varName, Tcl_Obj *value)
  NSF_nonnull(1) NSF_nonnull(4) NSF_nonnull(5);
static int NsfVarUnsetCmd(Tcl_Interp *interp, int withNocomplain, NsfObject *object, Tcl_Obj *varName)
  NSF_nonnull(1) NSF_nonnull(3) NSF_nonnull(4);
static int NsfOAutonameMethod(Tcl_Interp *interp, NsfObject *obj, int withInstance, int withReset, Tcl_Obj *name)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(5);
static int NsfOCgetMethod(Tcl_Interp *interp, NsfObject *obj, Tcl_Obj *name)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfOClassMethod(Tcl_Interp *interp, NsfObject *obj, Tcl_Obj *class)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOCleanupMethod(Tcl_Interp *interp, NsfObject *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOConfigureMethod(Tcl_Interp *interp, NsfObject *obj, int nobjc, Tcl_Obj *CONST* nobjv, Tcl_Obj *objv0)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfODestroyMethod(Tcl_Interp *interp, NsfObject *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOExistsMethod(Tcl_Interp *interp, NsfObject *obj, const char *varName)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfOFilterGuardMethod(Tcl_Interp *interp, NsfObject *obj, const char *filter, Tcl_Obj *guard)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3) NSF_nonnull(4);
static int NsfOInstvarMethod(Tcl_Interp *interp, NsfObject *obj, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOMixinGuardMethod(Tcl_Interp *interp, NsfObject *obj, Tcl_Obj *mixin, Tcl_Obj *guard)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3) NSF_nonnull(4);
static int NsfONoinitMethod(Tcl_Interp *interp, NsfObject *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfORequireNamespaceMethod(Tcl_Interp *interp, NsfObject *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOResidualargsMethod(Tcl_Interp *interp, NsfObject *obj, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOUplevelMethod(Tcl_Interp *interp, NsfObject *obj, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOUpvarMethod(Tcl_Interp *interp, NsfObject *obj, int objc, Tcl_Obj *CONST* objv)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfOVolatileMethod(Tcl_Interp *interp, NsfObject *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoBaseclassMethod(Tcl_Interp *interp, NsfObject *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoChildrenMethod(Tcl_Interp *interp, NsfObject *obj, NsfClass *withType, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoClassMethod(Tcl_Interp *interp, NsfObject *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoFilterguardMethod(Tcl_Interp *interp, NsfObject *obj, const char *filter)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjInfoFiltersMethod(Tcl_Interp *interp, NsfObject *obj, int withGuards, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoForwardMethod(Tcl_Interp *interp, NsfObject *obj, int withDefinition, const char *name)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoHasMixinMethod(Tcl_Interp *interp, NsfObject *obj, NsfClass *class)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjInfoHasTypeMethod(Tcl_Interp *interp, NsfObject *obj, NsfClass *class)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjInfoHasnamespaceMethod(Tcl_Interp *interp, NsfObject *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoLookupFilterMethod(Tcl_Interp *interp, NsfObject *obj, const char *filter)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjInfoLookupFiltersMethod(Tcl_Interp *interp, NsfObject *obj, int withGuards, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoLookupMethodMethod(Tcl_Interp *interp, NsfObject *obj, Tcl_Obj *name)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjInfoLookupMethodsMethod(Tcl_Interp *interp, NsfObject *obj, CallprotectionIdx_t withCallprotection, int withIncontext, MethodtypeIdx_t withType, int withNomixins, int withPath, DefinitionsourceIdx_t withSource, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoLookupMixinsMethod(Tcl_Interp *interp, NsfObject *obj, int withGuards, const char *patternString, NsfObject *patternObject)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoLookupSlotsMethod(Tcl_Interp *interp, NsfObject *obj, DefinitionsourceIdx_t withSource, NsfClass *withType, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoMethodMethod(Tcl_Interp *interp, NsfObject *obj, InfomethodsubcmdIdx_t subcmd, Tcl_Obj *name)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(4);
static int NsfObjInfoMethodsMethod(Tcl_Interp *interp, NsfObject *obj, CallprotectionIdx_t withCallprotection, MethodtypeIdx_t withType, int withPath, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoMixinguardMethod(Tcl_Interp *interp, NsfObject *obj, const char *mixin)
  NSF_nonnull(1) NSF_nonnull(2) NSF_nonnull(3);
static int NsfObjInfoMixinsMethod(Tcl_Interp *interp, NsfObject *obj, int withGuards, const char *patternString, NsfObject *patternObject)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoNameMethod(Tcl_Interp *interp, NsfObject *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoParentMethod(Tcl_Interp *interp, NsfObject *obj)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoPrecedenceMethod(Tcl_Interp *interp, NsfObject *obj, int withIntrinsic, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoSlotobjectsMethod(Tcl_Interp *interp, NsfObject *obj, NsfClass *withType, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);
static int NsfObjInfoVarsMethod(Tcl_Interp *interp, NsfObject *obj, const char *pattern)
  NSF_nonnull(1) NSF_nonnull(2);

enum {
 NsfCAllocMethodIdx,
 NsfCCreateMethodIdx,
 NsfCDeallocMethodIdx,
 NsfCFilterGuardMethodIdx,
 NsfCGetCachendParametersMethodIdx,
 NsfCMixinGuardMethodIdx,
 NsfCNewMethodIdx,
 NsfCRecreateMethodIdx,
 NsfCSuperclassMethodIdx,
 NsfClassInfoFilterguardMethodIdx,
 NsfClassInfoFiltersMethodIdx,
 NsfClassInfoForwardMethodIdx,
 NsfClassInfoHeritageMethodIdx,
 NsfClassInfoInstancesMethodIdx,
 NsfClassInfoMethodMethodIdx,
 NsfClassInfoMethodsMethodIdx,
 NsfClassInfoMixinOfMethodIdx,
 NsfClassInfoMixinguardMethodIdx,
 NsfClassInfoMixinsMethodIdx,
 NsfClassInfoSlotobjectsMethodIdx,
 NsfClassInfoSubclassMethodIdx,
 NsfClassInfoSuperclassMethodIdx,
 NsfAsmMethodCreateCmdIdx,
 NsfAsmProcCmdIdx,
 NsfCallgrindDumpStatsCmdIdx,
 NsfCallgrindStartInstrumentationCmdIdx,
 NsfCallgrindStopInstrumentationCmdIdx,
 NsfCallgrindToggleCollectCmdIdx,
 NsfCallgrindZeroStatsCmdIdx,
 NsfCmdInfoCmdIdx,
 NsfColonCmdIdx,
 NsfConfigureCmdIdx,
 NsfCurrentCmdIdx,
 NsfDebugCompileEpochIdx,
 NsfDebugGetDictIdx,
 NsfDebugRunAssertionsCmdIdx,
 NsfDebugShowObjIdx,
 NsfDefinitionNamespaceCmdIdx,
 NsfDirectDispatchCmdIdx,
 NsfDispatchCmdIdx,
 NsfFinalizeCmdIdx,
 NsfForwardPropertyCmdIdx,
 NsfInterpObjCmdIdx,
 NsfIsCmdIdx,
 NsfMethodAliasCmdIdx,
 NsfMethodAssertionCmdIdx,
 NsfMethodCreateCmdIdx,
 NsfMethodDeleteCmdIdx,
 NsfMethodForwardCmdIdx,
 NsfMethodPropertyCmdIdx,
 NsfMethodRegisteredCmdIdx,
 NsfMethodSetterCmdIdx,
 NsfMyCmdIdx,
 NsfNSCopyVarsCmdIdx,
 NsfNextCmdIdx,
 NsfObjectAllocCmdIdx,
 NsfObjectExistsCmdIdx,
 NsfObjectPropertyCmdIdx,
 NsfObjectQualifyCmdIdx,
 NsfObjectSystemCreateCmdIdx,
 NsfParameterCacheClassInvalidateCmdIdx,
 NsfParameterCacheObjectInvalidateCmdIdx,
 NsfParameterInfoCmdIdx,
 NsfParameterSpecsCmdIdx,
 NsfParseArgsCmdIdx,
 NsfProcCmdIdx,
 NsfProfileClearDataStubIdx,
 NsfProfileGetDataStubIdx,
 NsfProfileTraceStubIdx,
 NsfRelationGetCmdIdx,
 NsfRelationSetCmdIdx,
 NsfSelfCmdIdx,
 NsfShowStackCmdIdx,
 NsfUnsetUnknownArgsCmdIdx,
 NsfVarExistsCmdIdx,
 NsfVarGetCmdIdx,
 NsfVarImportCmdIdx,
 NsfVarSetCmdIdx,
 NsfVarUnsetCmdIdx,
 NsfOAutonameMethodIdx,
 NsfOCgetMethodIdx,
 NsfOClassMethodIdx,
 NsfOCleanupMethodIdx,
 NsfOConfigureMethodIdx,
 NsfODestroyMethodIdx,
 NsfOExistsMethodIdx,
 NsfOFilterGuardMethodIdx,
 NsfOInstvarMethodIdx,
 NsfOMixinGuardMethodIdx,
 NsfONoinitMethodIdx,
 NsfORequireNamespaceMethodIdx,
 NsfOResidualargsMethodIdx,
 NsfOUplevelMethodIdx,
 NsfOUpvarMethodIdx,
 NsfOVolatileMethodIdx,
 NsfObjInfoBaseclassMethodIdx,
 NsfObjInfoChildrenMethodIdx,
 NsfObjInfoClassMethodIdx,
 NsfObjInfoFilterguardMethodIdx,
 NsfObjInfoFiltersMethodIdx,
 NsfObjInfoForwardMethodIdx,
 NsfObjInfoHasMixinMethodIdx,
 NsfObjInfoHasTypeMethodIdx,
 NsfObjInfoHasnamespaceMethodIdx,
 NsfObjInfoLookupFilterMethodIdx,
 NsfObjInfoLookupFiltersMethodIdx,
 NsfObjInfoLookupMethodMethodIdx,
 NsfObjInfoLookupMethodsMethodIdx,
 NsfObjInfoLookupMixinsMethodIdx,
 NsfObjInfoLookupSlotsMethodIdx,
 NsfObjInfoMethodMethodIdx,
 NsfObjInfoMethodsMethodIdx,
 NsfObjInfoMixinguardMethodIdx,
 NsfObjInfoMixinsMethodIdx,
 NsfObjInfoNameMethodIdx,
 NsfObjInfoParentMethodIdx,
 NsfObjInfoPrecedenceMethodIdx,
 NsfObjInfoSlotobjectsMethodIdx,
 NsfObjInfoVarsMethodIdx
} NsfMethods;


static int
NsfCAllocMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfCAllocMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCAllocMethod(interp, cl, objv[1]);

}

static int
NsfCCreateMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfCCreateMethodIdx].paramDefs,
                     method_definitions[NsfCCreateMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *objectName = (Tcl_Obj *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfCCreateMethod(interp, cl, objectName, objc-pc.lastObjc, objv+pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCDeallocMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfCDeallocMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCDeallocMethod(interp, cl, objv[1]);

}

static int
NsfCFilterGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfCFilterGuardMethodIdx].paramDefs,
                     method_definitions[NsfCFilterGuardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *filter = (const char *)pc.clientData[0];
    Tcl_Obj *guard = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfCFilterGuardMethod(interp, cl, filter, guard);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCGetCachendParametersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfCGetCachendParametersMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCGetCachendParametersMethod(interp, cl);

}

static int
NsfCMixinGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfCMixinGuardMethodIdx].paramDefs,
                     method_definitions[NsfCMixinGuardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *mixin = (Tcl_Obj *)pc.clientData[0];
    Tcl_Obj *guard = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfCMixinGuardMethod(interp, cl, mixin, guard);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCNewMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfCNewMethodIdx].paramDefs,
                     method_definitions[NsfCNewMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *withChildof = (Tcl_Obj *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfCNewMethod(interp, cl, withChildof, objc-pc.lastObjc, objv+pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCRecreateMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfCRecreateMethodIdx].paramDefs,
                     method_definitions[NsfCRecreateMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *objectName = (Tcl_Obj *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfCRecreateMethod(interp, cl, objectName, objc-pc.lastObjc, objv+pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCSuperclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
    

      if (objc < 1 || objc > 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfCSuperclassMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCSuperclassMethod(interp, cl, objc == 2 ? objv[1] : NULL);

}

static int
NsfClassInfoFilterguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoFilterguardMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoFilterguardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *filter = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfClassInfoFilterguardMethod(interp, cl, filter);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoFiltersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoFiltersMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoFiltersMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withGuards = (int )PTR2INT(pc.clientData[0]);
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfClassInfoFiltersMethod(interp, cl, withGuards, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoForwardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoForwardMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoForwardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withDefinition = (int )PTR2INT(pc.clientData[0]);
    const char *name = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfClassInfoForwardMethod(interp, cl, withDefinition, name);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoHeritageMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoHeritageMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoHeritageMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *pattern = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfClassInfoHeritageMethod(interp, cl, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoInstancesMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoInstancesMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoInstancesMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withClosure = (int )PTR2INT(pc.clientData[0]);
    const char *patternString = NULL;
    NsfObject *patternObject = NULL;
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];
    int returnCode;

    if (GetMatchObject(interp, pattern, objc>1 ? objv[1] : NULL, &patternObject, &patternString) == -1) {
      if (pattern) {
        DECR_REF_COUNT2("patternObj", pattern);
      }
      return TCL_OK;
    }
          
    assert(pc.status == 0);
    returnCode = NsfClassInfoInstancesMethod(interp, cl, withClosure, patternString, patternObject);

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
    return returnCode;
  } else {
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
         
    return TCL_ERROR;
  }
}

static int
NsfClassInfoMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoMethodMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoMethodMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    InfomethodsubcmdIdx_t subcmd = (InfomethodsubcmdIdx_t )pc.clientData[0];
    Tcl_Obj *name = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfClassInfoMethodMethod(interp, cl, subcmd, name);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoMethodsMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoMethodsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    CallprotectionIdx_t withCallprotection = (CallprotectionIdx_t )pc.clientData[0];
    int withClosure = (int )PTR2INT(pc.clientData[1]);
    MethodtypeIdx_t withType = (MethodtypeIdx_t )pc.clientData[2];
    int withPath = (int )PTR2INT(pc.clientData[3]);
    DefinitionsourceIdx_t withSource = (DefinitionsourceIdx_t )pc.clientData[4];
    const char *pattern = (const char *)pc.clientData[5];

    assert(pc.status == 0);
    return NsfClassInfoMethodsMethod(interp, cl, withCallprotection, withClosure, withType, withPath, withSource, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoMixinOfMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoMixinOfMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoMixinOfMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withClosure = (int )PTR2INT(pc.clientData[0]);
    MixinscopeIdx_t withScope = (MixinscopeIdx_t )pc.clientData[1];
    const char *patternString = NULL;
    NsfObject *patternObject = NULL;
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[2];
    int returnCode;

    if (GetMatchObject(interp, pattern, objc>2 ? objv[2] : NULL, &patternObject, &patternString) == -1) {
      if (pattern) {
        DECR_REF_COUNT2("patternObj", pattern);
      }
      return TCL_OK;
    }
          
    assert(pc.status == 0);
    returnCode = NsfClassInfoMixinOfMethod(interp, cl, withClosure, withScope, patternString, patternObject);

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
    return returnCode;
  } else {
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[2];

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
         
    return TCL_ERROR;
  }
}

static int
NsfClassInfoMixinguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoMixinguardMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoMixinguardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *mixin = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfClassInfoMixinguardMethod(interp, cl, mixin);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoMixinsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoMixinsMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoMixinsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withClosure = (int )PTR2INT(pc.clientData[0]);
    int withGuards = (int )PTR2INT(pc.clientData[1]);
    int withHeritage = (int )PTR2INT(pc.clientData[2]);
    const char *patternString = NULL;
    NsfObject *patternObject = NULL;
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[3];
    int returnCode;

    if (GetMatchObject(interp, pattern, objc>3 ? objv[3] : NULL, &patternObject, &patternString) == -1) {
      if (pattern) {
        DECR_REF_COUNT2("patternObj", pattern);
      }
      return TCL_OK;
    }
          
    assert(pc.status == 0);
    returnCode = NsfClassInfoMixinsMethod(interp, cl, withClosure, withGuards, withHeritage, patternString, patternObject);

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
    return returnCode;
  } else {
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[3];

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
         
    return TCL_ERROR;
  }
}

static int
NsfClassInfoSlotobjectsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoSlotobjectsMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoSlotobjectsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withClosure = (int )PTR2INT(pc.clientData[0]);
    DefinitionsourceIdx_t withSource = (DefinitionsourceIdx_t )pc.clientData[1];
    NsfClass *withType = (NsfClass *)pc.clientData[2];
    const char *pattern = (const char *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfClassInfoSlotobjectsMethod(interp, cl, withClosure, withSource, withType, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfClassInfoSubclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoSubclassMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoSubclassMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withClosure = (int )PTR2INT(pc.clientData[0]);
    int withDependent = (int )PTR2INT(pc.clientData[1]);
    const char *patternString = NULL;
    NsfObject *patternObject = NULL;
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[2];
    int returnCode;

    if (GetMatchObject(interp, pattern, objc>2 ? objv[2] : NULL, &patternObject, &patternString) == -1) {
      if (pattern) {
        DECR_REF_COUNT2("patternObj", pattern);
      }
      return TCL_OK;
    }
          
    assert(pc.status == 0);
    returnCode = NsfClassInfoSubclassMethod(interp, cl, withClosure, withDependent, patternString, patternObject);

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
    return returnCode;
  } else {
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[2];

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
         
    return TCL_ERROR;
  }
}

static int
NsfClassInfoSuperclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfClass *cl;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  cl = NsfObjectToClass(clientData);
  if (unlikely(cl == NULL)) return NsfDispatchClientDataError(interp, clientData, "class", ObjStr(objv[0]));
  if (likely(ArgumentParse(interp, objc, objv, (NsfObject *) cl, objv[0],
                     method_definitions[NsfClassInfoSuperclassMethodIdx].paramDefs,
                     method_definitions[NsfClassInfoSuperclassMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withClosure = (int )PTR2INT(pc.clientData[0]);
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfClassInfoSuperclassMethod(interp, cl, withClosure, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfAsmMethodCreateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfAsmMethodCreateCmdIdx].paramDefs,
                     method_definitions[NsfAsmMethodCreateCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withCheckalways = (int )PTR2INT(pc.clientData[1]);
    int withInner_namespace = (int )PTR2INT(pc.clientData[2]);
    int withPer_object = (int )PTR2INT(pc.clientData[3]);
    NsfObject *withReg_object = (NsfObject *)pc.clientData[4];
    Tcl_Obj *methodName = (Tcl_Obj *)pc.clientData[5];
    Tcl_Obj *arguments = (Tcl_Obj *)pc.clientData[6];
    Tcl_Obj *body = (Tcl_Obj *)pc.clientData[7];

    assert(pc.status == 0);
    return NsfAsmMethodCreateCmd(interp, object, withCheckalways, withInner_namespace, withPer_object, withReg_object, methodName, arguments, body);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfAsmProcCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfAsmProcCmdIdx].paramDefs,
                     method_definitions[NsfAsmProcCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withAd = (int )PTR2INT(pc.clientData[0]);
    int withCheckalways = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *procName = (Tcl_Obj *)pc.clientData[2];
    Tcl_Obj *arguments = (Tcl_Obj *)pc.clientData[3];
    Tcl_Obj *body = (Tcl_Obj *)pc.clientData[4];

    assert(pc.status == 0);
    return NsfAsmProcCmd(interp, withAd, withCheckalways, procName, arguments, body);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCallgrindDumpStatsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfCallgrindDumpStatsCmdIdx].paramDefs,
                     method_definitions[NsfCallgrindDumpStatsCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *withName = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfCallgrindDumpStatsCmd(interp, withName);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCallgrindStartInstrumentationCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfCallgrindStartInstrumentationCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCallgrindStartInstrumentationCmd(interp);

}

static int
NsfCallgrindStopInstrumentationCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfCallgrindStopInstrumentationCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCallgrindStopInstrumentationCmd(interp);

}

static int
NsfCallgrindToggleCollectCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfCallgrindToggleCollectCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCallgrindToggleCollectCmd(interp);

}

static int
NsfCallgrindZeroStatsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfCallgrindZeroStatsCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfCallgrindZeroStatsCmd(interp);

}

static int
NsfCmdInfoCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfCmdInfoCmdIdx].paramDefs,
                     method_definitions[NsfCmdInfoCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    InfomethodsubcmdIdx_t subcmd = (InfomethodsubcmdIdx_t )pc.clientData[0];
    NsfObject *withContext = (NsfObject *)pc.clientData[1];
    Tcl_Obj *methodName = (Tcl_Obj *)pc.clientData[2];
    const char *pattern = (const char *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfCmdInfoCmd(interp, subcmd, withContext, methodName, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfColonCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

    return NsfColonCmd(interp, objc, objv);

}

static int
NsfConfigureCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfConfigureCmdIdx].paramDefs,
                     method_definitions[NsfConfigureCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    ConfigureoptionIdx_t option = (ConfigureoptionIdx_t )pc.clientData[0];
    Tcl_Obj *value = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfConfigureCmd(interp, option, value);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfCurrentCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfCurrentCmdIdx].paramDefs,
                     method_definitions[NsfCurrentCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    CurrentoptionIdx_t option = (CurrentoptionIdx_t )pc.clientData[0];

    assert(pc.status == 0);
    return NsfCurrentCmd(interp, option);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfDebugCompileEpochStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfDebugCompileEpochIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfDebugCompileEpoch(interp);

}

static int
NsfDebugGetDictStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfDebugGetDictIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfDebugGetDict(interp, objv[1]);

}

static int
NsfDebugRunAssertionsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfDebugRunAssertionsCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfDebugRunAssertionsCmd(interp);

}

static int
NsfDebugShowObjStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfDebugShowObjIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfDebugShowObj(interp, objv[1]);

}

static int
NsfDefinitionNamespaceCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfDefinitionNamespaceCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfDefinitionNamespaceCmd(interp);

}

static int
NsfDirectDispatchCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfDirectDispatchCmdIdx].paramDefs,
                     method_definitions[NsfDirectDispatchCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    FrameIdx_t withFrame = (FrameIdx_t )pc.clientData[1];
    Tcl_Obj *command = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfDirectDispatchCmd(interp, object, withFrame, command, objc-pc.lastObjc, objv+pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfDispatchCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfDispatchCmdIdx].paramDefs,
                     method_definitions[NsfDispatchCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withIntrinsic = (int )PTR2INT(pc.clientData[1]);
    int withSystem = (int )PTR2INT(pc.clientData[2]);
    Tcl_Obj *command = (Tcl_Obj *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfDispatchCmd(interp, object, withIntrinsic, withSystem, command, objc-pc.lastObjc, objv+pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfFinalizeCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfFinalizeCmdIdx].paramDefs,
                     method_definitions[NsfFinalizeCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withKeepvars = (int )PTR2INT(pc.clientData[0]);

    assert(pc.status == 0);
    return NsfFinalizeCmd(interp, withKeepvars);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfForwardPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfForwardPropertyCmdIdx].paramDefs,
                     method_definitions[NsfForwardPropertyCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withPer_object = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *methodName = (Tcl_Obj *)pc.clientData[2];
    ForwardpropertyIdx_t forwardProperty = (ForwardpropertyIdx_t )pc.clientData[3];
    Tcl_Obj *value = (Tcl_Obj *)pc.clientData[4];

    assert(pc.status == 0);
    return NsfForwardPropertyCmd(interp, object, withPer_object, methodName, forwardProperty, value);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfInterpObjCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfInterpObjCmdIdx].paramDefs,
                     method_definitions[NsfInterpObjCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *name = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfInterpObjCmd(interp, name, objc, objv);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfIsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfIsCmdIdx].paramDefs,
                     method_definitions[NsfIsCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withComplain = (int )PTR2INT(pc.clientData[0]);
    int withConfigure = (int )PTR2INT(pc.clientData[1]);
    const char *withName = (const char *)pc.clientData[2];
    Tcl_Obj *constraint = (Tcl_Obj *)pc.clientData[3];
    Tcl_Obj *value = (Tcl_Obj *)pc.clientData[4];

    assert(pc.status == 0);
    return NsfIsCmd(interp, withComplain, withConfigure, withName, constraint, value);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodAliasCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodAliasCmdIdx].paramDefs,
                     method_definitions[NsfMethodAliasCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withPer_object = (int )PTR2INT(pc.clientData[1]);
    const char *methodName = (const char *)pc.clientData[2];
    FrameIdx_t withFrame = (FrameIdx_t )pc.clientData[3];
    ProtectionIdx_t withProtection = (ProtectionIdx_t )pc.clientData[4];
    Tcl_Obj *cmdName = (Tcl_Obj *)pc.clientData[5];

    assert(pc.status == 0);
    return NsfMethodAliasCmd(interp, object, withPer_object, methodName, withFrame, withProtection, cmdName);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodAssertionCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodAssertionCmdIdx].paramDefs,
                     method_definitions[NsfMethodAssertionCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    AssertionsubcmdIdx_t subcmd = (AssertionsubcmdIdx_t )pc.clientData[1];
    Tcl_Obj *arg = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfMethodAssertionCmd(interp, object, subcmd, arg);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodCreateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodCreateCmdIdx].paramDefs,
                     method_definitions[NsfMethodCreateCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withCheckalways = (int )PTR2INT(pc.clientData[1]);
    int withInner_namespace = (int )PTR2INT(pc.clientData[2]);
    int withPer_object = (int )PTR2INT(pc.clientData[3]);
    NsfObject *withReg_object = (NsfObject *)pc.clientData[4];
    Tcl_Obj *methodName = (Tcl_Obj *)pc.clientData[5];
    Tcl_Obj *arguments = (Tcl_Obj *)pc.clientData[6];
    Tcl_Obj *body = (Tcl_Obj *)pc.clientData[7];
    Tcl_Obj *withPrecondition = (Tcl_Obj *)pc.clientData[8];
    Tcl_Obj *withPostcondition = (Tcl_Obj *)pc.clientData[9];

    assert(pc.status == 0);
    return NsfMethodCreateCmd(interp, object, withCheckalways, withInner_namespace, withPer_object, withReg_object, methodName, arguments, body, withPrecondition, withPostcondition);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodDeleteCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodDeleteCmdIdx].paramDefs,
                     method_definitions[NsfMethodDeleteCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withPer_object = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *methodName = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfMethodDeleteCmd(interp, object, withPer_object, methodName);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodForwardCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodForwardCmdIdx].paramDefs,
                     method_definitions[NsfMethodForwardCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withPer_object = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *method = (Tcl_Obj *)pc.clientData[2];
    Tcl_Obj *withDefault = (Tcl_Obj *)pc.clientData[3];
    int withEarlybinding = (int )PTR2INT(pc.clientData[4]);
    Tcl_Obj *withOnerror = (Tcl_Obj *)pc.clientData[5];
    Tcl_Obj *withPrefix = (Tcl_Obj *)pc.clientData[6];
    FrameIdx_t withFrame = (FrameIdx_t )pc.clientData[7];
    int withVerbose = (int )PTR2INT(pc.clientData[8]);
    Tcl_Obj *target = (Tcl_Obj *)pc.clientData[9];

    assert(pc.status == 0);
    return NsfMethodForwardCmd(interp, object, withPer_object, method, withDefault, withEarlybinding, withOnerror, withPrefix, withFrame, withVerbose, target, objc-pc.lastObjc, objv+pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodPropertyCmdIdx].paramDefs,
                     method_definitions[NsfMethodPropertyCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withPer_object = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *methodName = (Tcl_Obj *)pc.clientData[2];
    MethodpropertyIdx_t methodProperty = (MethodpropertyIdx_t )pc.clientData[3];
    Tcl_Obj *value = (Tcl_Obj *)pc.clientData[4];

    assert(pc.status == 0);
    return NsfMethodPropertyCmd(interp, object, withPer_object, methodName, methodProperty, value);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMethodRegisteredCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfMethodRegisteredCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfMethodRegisteredCmd(interp, objv[1]);

}

static int
NsfMethodSetterCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMethodSetterCmdIdx].paramDefs,
                     method_definitions[NsfMethodSetterCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    int withPer_object = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *parameter = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfMethodSetterCmd(interp, object, withPer_object, parameter);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfMyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfMyCmdIdx].paramDefs,
                     method_definitions[NsfMyCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withIntrinsic = (int )PTR2INT(pc.clientData[0]);
    int withLocal = (int )PTR2INT(pc.clientData[1]);
    int withSystem = (int )PTR2INT(pc.clientData[2]);
    Tcl_Obj *methodName = (Tcl_Obj *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfMyCmd(interp, withIntrinsic, withLocal, withSystem, methodName, objc-pc.lastObjc, objv+pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfNSCopyVarsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfNSCopyVarsCmdIdx].paramDefs,
                     method_definitions[NsfNSCopyVarsCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *fromNs = (Tcl_Obj *)pc.clientData[0];
    Tcl_Obj *toNs = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfNSCopyVarsCmd(interp, fromNs, toNs);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfNextCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (objc < 1 || objc > 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfNextCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfNextCmd(interp, objc == 2 ? objv[1] : NULL);

}

static int
NsfObjectAllocCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfObjectAllocCmdIdx].paramDefs,
                     method_definitions[NsfObjectAllocCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfClass *class = (NsfClass *)pc.clientData[0];
    Tcl_Obj *name = (Tcl_Obj *)pc.clientData[1];
    Tcl_Obj *initcmd = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfObjectAllocCmd(interp, class, name, initcmd);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjectExistsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfObjectExistsCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjectExistsCmd(interp, objv[1]);

}

static int
NsfObjectPropertyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfObjectPropertyCmdIdx].paramDefs,
                     method_definitions[NsfObjectPropertyCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *objectName = (NsfObject *)pc.clientData[0];
    ObjectpropertyIdx_t objectProperty = (ObjectpropertyIdx_t )pc.clientData[1];
    Tcl_Obj *value = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfObjectPropertyCmd(interp, objectName, objectProperty, value);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjectQualifyCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfObjectQualifyCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjectQualifyCmd(interp, objv[1]);

}

static int
NsfObjectSystemCreateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfObjectSystemCreateCmdIdx].paramDefs,
                     method_definitions[NsfObjectSystemCreateCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *rootClass = (Tcl_Obj *)pc.clientData[0];
    Tcl_Obj *rootMetaClass = (Tcl_Obj *)pc.clientData[1];
    Tcl_Obj *systemMethods = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfObjectSystemCreateCmd(interp, rootClass, rootMetaClass, systemMethods);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfParameterCacheClassInvalidateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfParameterCacheClassInvalidateCmdIdx].paramDefs,
                     method_definitions[NsfParameterCacheClassInvalidateCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfClass *class = (NsfClass *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfParameterCacheClassInvalidateCmd(interp, class);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfParameterCacheObjectInvalidateCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfParameterCacheObjectInvalidateCmdIdx].paramDefs,
                     method_definitions[NsfParameterCacheObjectInvalidateCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfParameterCacheObjectInvalidateCmd(interp, object);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfParameterInfoCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfParameterInfoCmdIdx].paramDefs,
                     method_definitions[NsfParameterInfoCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    ParametersubcmdIdx_t subcmd = (ParametersubcmdIdx_t )pc.clientData[0];
    Tcl_Obj *spec = (Tcl_Obj *)pc.clientData[1];
    Tcl_Obj *varname = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfParameterInfoCmd(interp, subcmd, spec, varname);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfParameterSpecsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfParameterSpecsCmdIdx].paramDefs,
                     method_definitions[NsfParameterSpecsCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withConfigure = (int )PTR2INT(pc.clientData[0]);
    int withNonposargs = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *slotobjs = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfParameterSpecsCmd(interp, withConfigure, withNonposargs, slotobjs);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfParseArgsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfParseArgsCmdIdx].paramDefs,
                     method_definitions[NsfParseArgsCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *argspec = (Tcl_Obj *)pc.clientData[0];
    Tcl_Obj *arglist = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfParseArgsCmd(interp, argspec, arglist);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfProcCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfProcCmdIdx].paramDefs,
                     method_definitions[NsfProcCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withAd = (int )PTR2INT(pc.clientData[0]);
    int withCheckalways = (int )PTR2INT(pc.clientData[1]);
    int withDebug = (int )PTR2INT(pc.clientData[2]);
    int withDeprecated = (int )PTR2INT(pc.clientData[3]);
    Tcl_Obj *procName = (Tcl_Obj *)pc.clientData[4];
    Tcl_Obj *arguments = (Tcl_Obj *)pc.clientData[5];
    Tcl_Obj *body = (Tcl_Obj *)pc.clientData[6];

    assert(pc.status == 0);
    return NsfProcCmd(interp, withAd, withCheckalways, withDebug, withDeprecated, procName, arguments, body);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfProfileClearDataStubStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfProfileClearDataStubIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfProfileClearDataStub(interp);

}

static int
NsfProfileGetDataStubStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfProfileGetDataStubIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfProfileGetDataStub(interp);

}

static int
NsfProfileTraceStubStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfProfileTraceStubIdx].paramDefs,
                     method_definitions[NsfProfileTraceStubIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withEnable = (int )PTR2INT(pc.clientData[0]);
    int withVerbose = (int )PTR2INT(pc.clientData[1]);
    int withDontsave = (int )PTR2INT(pc.clientData[2]);
    Tcl_Obj *withBuiltins = (Tcl_Obj *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfProfileTraceStub(interp, withEnable, withVerbose, withDontsave, withBuiltins);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfRelationGetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfRelationGetCmdIdx].paramDefs,
                     method_definitions[NsfRelationGetCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    RelationtypeIdx_t type = (RelationtypeIdx_t )pc.clientData[1];

    assert(pc.status == 0);
    return NsfRelationGetCmd(interp, object, type);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfRelationSetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfRelationSetCmdIdx].paramDefs,
                     method_definitions[NsfRelationSetCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];
    RelationtypeIdx_t type = (RelationtypeIdx_t )pc.clientData[1];
    Tcl_Obj *value = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfRelationSetCmd(interp, object, type, value);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfSelfCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfSelfCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfSelfCmd(interp);

}

static int
NsfShowStackCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfShowStackCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfShowStackCmd(interp);

}

static int
NsfUnsetUnknownArgsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  (void)clientData;

    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfUnsetUnknownArgsCmdIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfUnsetUnknownArgsCmd(interp);

}

static int
NsfVarExistsCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfVarExistsCmdIdx].paramDefs,
                     method_definitions[NsfVarExistsCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withArray = (int )PTR2INT(pc.clientData[0]);
    NsfObject *object = (NsfObject *)pc.clientData[1];
    const char *varName = (const char *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfVarExistsCmd(interp, withArray, object, varName);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfVarGetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfVarGetCmdIdx].paramDefs,
                     method_definitions[NsfVarGetCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withArray = (int )PTR2INT(pc.clientData[0]);
    int withNotrace = (int )PTR2INT(pc.clientData[1]);
    NsfObject *object = (NsfObject *)pc.clientData[2];
    Tcl_Obj *varName = (Tcl_Obj *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfVarGetCmd(interp, withArray, withNotrace, object, varName);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfVarImportCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfVarImportCmdIdx].paramDefs,
                     method_definitions[NsfVarImportCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfObject *object = (NsfObject *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfVarImportCmd(interp, object, objc-pc.lastObjc, objv+pc.lastObjc);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfVarSetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfVarSetCmdIdx].paramDefs,
                     method_definitions[NsfVarSetCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withArray = (int )PTR2INT(pc.clientData[0]);
    int withNotrace = (int )PTR2INT(pc.clientData[1]);
    NsfObject *object = (NsfObject *)pc.clientData[2];
    Tcl_Obj *varName = (Tcl_Obj *)pc.clientData[3];
    Tcl_Obj *value = (Tcl_Obj *)pc.clientData[4];

    assert(pc.status == 0);
    return NsfVarSetCmd(interp, withArray, withNotrace, object, varName, value);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfVarUnsetCmdStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  (void)clientData;

  if (likely(ArgumentParse(interp, objc, objv, NULL, objv[0],
                     method_definitions[NsfVarUnsetCmdIdx].paramDefs,
                     method_definitions[NsfVarUnsetCmdIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withNocomplain = (int )PTR2INT(pc.clientData[0]);
    NsfObject *object = (NsfObject *)pc.clientData[1];
    Tcl_Obj *varName = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfVarUnsetCmd(interp, withNocomplain, object, varName);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfOAutonameMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfOAutonameMethodIdx].paramDefs,
                     method_definitions[NsfOAutonameMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withInstance = (int )PTR2INT(pc.clientData[0]);
    int withReset = (int )PTR2INT(pc.clientData[1]);
    Tcl_Obj *name = (Tcl_Obj *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfOAutonameMethod(interp, obj, withInstance, withReset, name);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfOCgetMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfOCgetMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfOCgetMethod(interp, obj, objv[1]);

}

static int
NsfOClassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (objc < 1 || objc > 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfOClassMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfOClassMethod(interp, obj, objc == 2 ? objv[1] : NULL);

}

static int
NsfOCleanupMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfOCleanupMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfOCleanupMethod(interp, obj);

}

static int
NsfOConfigureMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfOConfigureMethodIdx].paramDefs,
                     method_definitions[NsfOConfigureMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    

    
    return NsfOConfigureMethod(interp, obj, objc-pc.lastObjc, objv+pc.lastObjc, objv[0]);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfODestroyMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfODestroyMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfODestroyMethod(interp, obj);

}

static int
NsfOExistsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfOExistsMethodIdx].paramDefs,
                     method_definitions[NsfOExistsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *varName = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfOExistsMethod(interp, obj, varName);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfOFilterGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfOFilterGuardMethodIdx].paramDefs,
                     method_definitions[NsfOFilterGuardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *filter = (const char *)pc.clientData[0];
    Tcl_Obj *guard = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfOFilterGuardMethod(interp, obj, filter, guard);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfOInstvarMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

    return NsfOInstvarMethod(interp, obj, objc, objv);

}

static int
NsfOMixinGuardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfOMixinGuardMethodIdx].paramDefs,
                     method_definitions[NsfOMixinGuardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    Tcl_Obj *mixin = (Tcl_Obj *)pc.clientData[0];
    Tcl_Obj *guard = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfOMixinGuardMethod(interp, obj, mixin, guard);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfONoinitMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfONoinitMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfONoinitMethod(interp, obj);

}

static int
NsfORequireNamespaceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfORequireNamespaceMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfORequireNamespaceMethod(interp, obj);

}

static int
NsfOResidualargsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

    return NsfOResidualargsMethod(interp, obj, objc, objv);

}

static int
NsfOUplevelMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

    return NsfOUplevelMethod(interp, obj, objc, objv);

}

static int
NsfOUpvarMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

    return NsfOUpvarMethod(interp, obj, objc, objv);

}

static int
NsfOVolatileMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfOVolatileMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfOVolatileMethod(interp, obj);

}

static int
NsfObjInfoBaseclassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfObjInfoBaseclassMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjInfoBaseclassMethod(interp, obj);

}

static int
NsfObjInfoChildrenMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoChildrenMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoChildrenMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfClass *withType = (NsfClass *)pc.clientData[0];
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoChildrenMethod(interp, obj, withType, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoClassMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfObjInfoClassMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjInfoClassMethod(interp, obj);

}

static int
NsfObjInfoFilterguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoFilterguardMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoFilterguardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *filter = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfObjInfoFilterguardMethod(interp, obj, filter);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoFiltersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoFiltersMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoFiltersMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withGuards = (int )PTR2INT(pc.clientData[0]);
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoFiltersMethod(interp, obj, withGuards, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoForwardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoForwardMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoForwardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withDefinition = (int )PTR2INT(pc.clientData[0]);
    const char *name = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoForwardMethod(interp, obj, withDefinition, name);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoHasMixinMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoHasMixinMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoHasMixinMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfClass *class = (NsfClass *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfObjInfoHasMixinMethod(interp, obj, class);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoHasTypeMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoHasTypeMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoHasTypeMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfClass *class = (NsfClass *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfObjInfoHasTypeMethod(interp, obj, class);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoHasnamespaceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfObjInfoHasnamespaceMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjInfoHasnamespaceMethod(interp, obj);

}

static int
NsfObjInfoLookupFilterMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoLookupFilterMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoLookupFilterMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *filter = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfObjInfoLookupFilterMethod(interp, obj, filter);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoLookupFiltersMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoLookupFiltersMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoLookupFiltersMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withGuards = (int )PTR2INT(pc.clientData[0]);
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoLookupFiltersMethod(interp, obj, withGuards, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoLookupMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (objc != 2) {
	return NsfArgumentError(interp, "wrong # of arguments:",
			     method_definitions[NsfObjInfoLookupMethodMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjInfoLookupMethodMethod(interp, obj, objv[1]);

}

static int
NsfObjInfoLookupMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoLookupMethodsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoLookupMethodsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    CallprotectionIdx_t withCallprotection = (CallprotectionIdx_t )pc.clientData[0];
    int withIncontext = (int )PTR2INT(pc.clientData[1]);
    MethodtypeIdx_t withType = (MethodtypeIdx_t )pc.clientData[2];
    int withNomixins = (int )PTR2INT(pc.clientData[3]);
    int withPath = (int )PTR2INT(pc.clientData[4]);
    DefinitionsourceIdx_t withSource = (DefinitionsourceIdx_t )pc.clientData[5];
    const char *pattern = (const char *)pc.clientData[6];

    assert(pc.status == 0);
    return NsfObjInfoLookupMethodsMethod(interp, obj, withCallprotection, withIncontext, withType, withNomixins, withPath, withSource, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoLookupMixinsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoLookupMixinsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoLookupMixinsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withGuards = (int )PTR2INT(pc.clientData[0]);
    const char *patternString = NULL;
    NsfObject *patternObject = NULL;
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];
    int returnCode;

    if (GetMatchObject(interp, pattern, objc>1 ? objv[1] : NULL, &patternObject, &patternString) == -1) {
      if (pattern) {
        DECR_REF_COUNT2("patternObj", pattern);
      }
      return TCL_OK;
    }
          
    assert(pc.status == 0);
    returnCode = NsfObjInfoLookupMixinsMethod(interp, obj, withGuards, patternString, patternObject);

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
    return returnCode;
  } else {
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
         
    return TCL_ERROR;
  }
}

static int
NsfObjInfoLookupSlotsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoLookupSlotsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoLookupSlotsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    DefinitionsourceIdx_t withSource = (DefinitionsourceIdx_t )pc.clientData[0];
    NsfClass *withType = (NsfClass *)pc.clientData[1];
    const char *pattern = (const char *)pc.clientData[2];

    assert(pc.status == 0);
    return NsfObjInfoLookupSlotsMethod(interp, obj, withSource, withType, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoMethodMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoMethodMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoMethodMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    InfomethodsubcmdIdx_t subcmd = (InfomethodsubcmdIdx_t )pc.clientData[0];
    Tcl_Obj *name = (Tcl_Obj *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoMethodMethod(interp, obj, subcmd, name);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoMethodsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoMethodsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoMethodsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    CallprotectionIdx_t withCallprotection = (CallprotectionIdx_t )pc.clientData[0];
    MethodtypeIdx_t withType = (MethodtypeIdx_t )pc.clientData[1];
    int withPath = (int )PTR2INT(pc.clientData[2]);
    const char *pattern = (const char *)pc.clientData[3];

    assert(pc.status == 0);
    return NsfObjInfoMethodsMethod(interp, obj, withCallprotection, withType, withPath, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoMixinguardMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoMixinguardMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoMixinguardMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *mixin = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfObjInfoMixinguardMethod(interp, obj, mixin);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoMixinsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoMixinsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoMixinsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withGuards = (int )PTR2INT(pc.clientData[0]);
    const char *patternString = NULL;
    NsfObject *patternObject = NULL;
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];
    int returnCode;

    if (GetMatchObject(interp, pattern, objc>1 ? objv[1] : NULL, &patternObject, &patternString) == -1) {
      if (pattern) {
        DECR_REF_COUNT2("patternObj", pattern);
      }
      return TCL_OK;
    }
          
    assert(pc.status == 0);
    returnCode = NsfObjInfoMixinsMethod(interp, obj, withGuards, patternString, patternObject);

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
    return returnCode;
  } else {
    Tcl_Obj *pattern = (Tcl_Obj *)pc.clientData[1];

    if (pattern) {
      DECR_REF_COUNT2("patternObj", pattern);
    }
         
    return TCL_ERROR;
  }
}

static int
NsfObjInfoNameMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfObjInfoNameMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjInfoNameMethod(interp, obj);

}

static int
NsfObjInfoParentMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
    

      if (unlikely(objc != 1)) {
	return NsfArgumentError(interp, "too many arguments:",
			     method_definitions[NsfObjInfoParentMethodIdx].paramDefs,
			     NULL, objv[0]);
      }
    
    return NsfObjInfoParentMethod(interp, obj);

}

static int
NsfObjInfoPrecedenceMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoPrecedenceMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoPrecedenceMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    int withIntrinsic = (int )PTR2INT(pc.clientData[0]);
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoPrecedenceMethod(interp, obj, withIntrinsic, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoSlotobjectsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoSlotobjectsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoSlotobjectsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    NsfClass *withType = (NsfClass *)pc.clientData[0];
    const char *pattern = (const char *)pc.clientData[1];

    assert(pc.status == 0);
    return NsfObjInfoSlotobjectsMethod(interp, obj, withType, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static int
NsfObjInfoVarsMethodStub(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST* objv) {
  ParseContext pc;
  NsfObject *obj;

  NSF_nonnull_assert(clientData != NULL);
  assert(objc > 0);

  obj = (NsfObject *)clientData;
  if (likely(ArgumentParse(interp, objc, objv, obj, objv[0],
                     method_definitions[NsfObjInfoVarsMethodIdx].paramDefs,
                     method_definitions[NsfObjInfoVarsMethodIdx].nrParameters, 0, NSF_ARGPARSE_BUILTIN,
                     &pc) == TCL_OK)) {
    const char *pattern = (const char *)pc.clientData[0];

    assert(pc.status == 0);
    return NsfObjInfoVarsMethod(interp, obj, pattern);

  } else {
    
    return TCL_ERROR;
  }
}

static Nsf_methodDefinition method_definitions[120] = {
{"::nsf::methods::class::alloc", NsfCAllocMethodStub, 1, {
  {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::create", NsfCCreateMethodStub, 2, {
  {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"virtualclassargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::dealloc", NsfCDeallocMethodStub, 1, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::filterguard", NsfCFilterGuardMethodStub, 2, {
  {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::getCachedParameters", NsfCGetCachendParametersMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::mixinguard", NsfCMixinGuardMethodStub, 2, {
  {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::new", NsfCNewMethodStub, 2, {
  {"-childof", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"virtualclassargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::recreate", NsfCRecreateMethodStub, 2, {
  {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"virtualclassargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::superclass", NsfCSuperclassMethodStub, 1, {
  {"superclasses", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::filterguard", NsfClassInfoFilterguardMethodStub, 1, {
  {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::filters", NsfClassInfoFiltersMethodStub, 2, {
  {"-guards", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::forward", NsfClassInfoForwardMethodStub, 2, {
  {"-definition", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"name", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::heritage", NsfClassInfoHeritageMethodStub, 1, {
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::instances", NsfClassInfoInstancesMethodStub, 2, {
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::method", NsfClassInfoMethodMethodStub, 2, {
  {"subcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToInfomethodsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::methods", NsfClassInfoMethodsMethodStub, 6, {
  {"-callprotection", NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-type", NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-path", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-source", NSF_ARG_IS_ENUMERATION, 1, ConvertToDefinitionsource, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::mixinof", NsfClassInfoMixinOfMethodStub, 3, {
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-scope", NSF_ARG_IS_ENUMERATION, 1, ConvertToMixinscope, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::mixinguard", NsfClassInfoMixinguardMethodStub, 1, {
  {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::mixins", NsfClassInfoMixinsMethodStub, 4, {
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-guards", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-heritage", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::slotobjects", NsfClassInfoSlotobjectsMethodStub, 4, {
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-source", NSF_ARG_IS_ENUMERATION, 1, ConvertToDefinitionsource, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-type", 0, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::subclass", NsfClassInfoSubclassMethodStub, 3, {
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-dependent", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", NSF_ARG_NODASHALNUM, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::class::info::superclass", NsfClassInfoSuperclassMethodStub, 2, {
  {"-closure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::asmcreate", NsfAsmMethodCreateCmdStub, 8, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-checkalways", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-inner-namespace", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-reg-object", 0, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"arguments", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"body", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::asm::proc", NsfAsmProcCmdStub, 5, {
  {"-ad", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-checkalways", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"procName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"arguments", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"body", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__callgrind_dump_stats", NsfCallgrindDumpStatsCmdStub, 1, {
  {"-name", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__callgrind_start_instrumentation", NsfCallgrindStartInstrumentationCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__callgrind_stop_instrumentation", NsfCallgrindStopInstrumentationCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__callgrind_toggle_collect", NsfCallgrindToggleCollectCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__callgrind_zero_stats", NsfCallgrindZeroStatsCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::cmd::info", NsfCmdInfoCmdStub, 4, {
  {"subcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToInfomethodsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-context", 0, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::colon", NsfColonCmdStub, 1, {
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::configure", NsfConfigureCmdStub, 2, {
  {"option", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToConfigureoption, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::current", NsfCurrentCmdStub, 1, {
  {"option", NSF_ARG_IS_ENUMERATION, 1, ConvertToCurrentoption, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__db_compile_epoch", NsfDebugCompileEpochStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__db_get_obj", NsfDebugGetDictStub, 1, {
  {"obj", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__db_run_assertions", NsfDebugRunAssertionsCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__db_show_obj", NsfDebugShowObjStub, 1, {
  {"obj", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::definitionnamespace", NsfDefinitionNamespaceCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::directdispatch", NsfDirectDispatchCmdStub, 4, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-frame", NSF_ARG_IS_ENUMERATION, 1, ConvertToFrame, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"command", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::dispatch", NsfDispatchCmdStub, 5, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-intrinsic", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-system", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"command", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::finalize", NsfFinalizeCmdStub, 1, {
  {"-keepvars", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::forward::property", NsfForwardPropertyCmdStub, 5, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"forwardProperty", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToForwardproperty, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::interp", NsfInterpObjCmdStub, 2, {
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::is", NsfIsCmdStub, 5, {
  {"-complain", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-configure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-name", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"constraint", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::alias", NsfMethodAliasCmdStub, 6, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-frame", NSF_ARG_IS_ENUMERATION, 1, ConvertToFrame, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-protection", NSF_ARG_IS_ENUMERATION, 1, ConvertToProtection, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"cmdName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::assertion", NsfMethodAssertionCmdStub, 3, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"subcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToAssertionsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"arg", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::create", NsfMethodCreateCmdStub, 10, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-checkalways", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-inner-namespace", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-reg-object", 0, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"arguments", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"body", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-precondition", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-postcondition", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::delete", NsfMethodDeleteCmdStub, 3, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::forward", NsfMethodForwardCmdStub, 11, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"method", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-default", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-earlybinding", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-onerror", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-prefix", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-frame", NSF_ARG_IS_ENUMERATION, 1, ConvertToFrame, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-verbose", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"target", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::property", NsfMethodPropertyCmdStub, 5, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"methodProperty", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodproperty, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::registered", NsfMethodRegisteredCmdStub, 1, {
  {"handle", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::method::setter", NsfMethodSetterCmdStub, 3, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"-per-object", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"parameter", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::my", NsfMyCmdStub, 5, {
  {"-intrinsic", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-local", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-system", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"methodName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::nscopyvars", NsfNSCopyVarsCmdStub, 2, {
  {"fromNs", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"toNs", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::next", NsfNextCmdStub, 1, {
  {"arguments", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::object::alloc", NsfObjectAllocCmdStub, 3, {
  {"class", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL},
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"initcmd", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::object::exists", NsfObjectExistsCmdStub, 1, {
  {"value", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::object::property", NsfObjectPropertyCmdStub, 3, {
  {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"objectProperty", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToObjectproperty, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::object::qualify", NsfObjectQualifyCmdStub, 1, {
  {"objectName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::objectsystem::create", NsfObjectSystemCreateCmdStub, 3, {
  {"rootClass", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"rootMetaClass", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"systemMethods", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::parameter::cache::classinvalidate", NsfParameterCacheClassInvalidateCmdStub, 1, {
  {"class", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::parameter::cache::objectinvalidate", NsfParameterCacheObjectInvalidateCmdStub, 1, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::parameter::info", NsfParameterInfoCmdStub, 3, {
  {"subcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToParametersubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"spec", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"varname", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::parameter::specs", NsfParameterSpecsCmdStub, 3, {
  {"-configure", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-nonposargs", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"slotobjs", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::parseargs", NsfParseArgsCmdStub, 2, {
  {"argspec", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"arglist", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::proc", NsfProcCmdStub, 7, {
  {"-ad", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-checkalways", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-debug", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-deprecated", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"procName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"arguments", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"body", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__profile_clear", NsfProfileClearDataStubStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__profile_get", NsfProfileGetDataStubStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__profile_trace", NsfProfileTraceStubStub, 4, {
  {"-enable", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Boolean, NULL,NULL,"boolean",NULL,NULL,NULL,NULL,NULL},
  {"-verbose", 0, 1, Nsf_ConvertTo_Boolean, NULL,NULL,"boolean",NULL,NULL,NULL,NULL,NULL},
  {"-dontsave", 0, 1, Nsf_ConvertTo_Boolean, NULL,NULL,"boolean",NULL,NULL,NULL,NULL,NULL},
  {"-builtins", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::relation::get", NsfRelationGetCmdStub, 2, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"type", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToRelationtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::relation::set", NsfRelationSetCmdStub, 3, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"type", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToRelationtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::self", NsfSelfCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__db_show_stack", NsfShowStackCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::__unset_unknown_args", NsfUnsetUnknownArgsCmdStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::var::exists", NsfVarExistsCmdStub, 3, {
  {"-array", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::var::get", NsfVarGetCmdStub, 4, {
  {"-array", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-notrace", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::var::import", NsfVarImportCmdStub, 2, {
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"args", 0, 1, ConvertToNothing, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::var::set", NsfVarSetCmdStub, 5, {
  {"-array", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-notrace", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"value", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::var::unset", NsfVarUnsetCmdStub, 3, {
  {"-nocomplain", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"object", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Object, NULL,NULL,"object",NULL,NULL,NULL,NULL,NULL},
  {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::autoname", NsfOAutonameMethodStub, 3, {
  {"-instance", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-reset", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::cget", NsfOCgetMethodStub, 1, {
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::class", NsfOClassMethodStub, 1, {
  {"class", 0, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::cleanup", NsfOCleanupMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::configure", NsfOConfigureMethodStub, 1, {
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"virtualobjectargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::destroy", NsfODestroyMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::exists", NsfOExistsMethodStub, 1, {
  {"varName", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::filterguard", NsfOFilterGuardMethodStub, 2, {
  {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::instvar", NsfOInstvarMethodStub, 1, {
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::mixinguard", NsfOMixinGuardMethodStub, 2, {
  {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"guard", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::noinit", NsfONoinitMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::requirenamespace", NsfORequireNamespaceMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::residualargs", NsfOResidualargsMethodStub, 1, {
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::uplevel", NsfOUplevelMethodStub, 1, {
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::upvar", NsfOUpvarMethodStub, 1, {
  {"args", 0, 1, ConvertToNothing, NULL,NULL,"allargs",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::volatile", NsfOVolatileMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::baseclass", NsfObjInfoBaseclassMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::children", NsfObjInfoChildrenMethodStub, 2, {
  {"-type", 0, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::class", NsfObjInfoClassMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::filterguard", NsfObjInfoFilterguardMethodStub, 1, {
  {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::filters", NsfObjInfoFiltersMethodStub, 2, {
  {"-guards", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::forward", NsfObjInfoForwardMethodStub, 2, {
  {"-definition", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"name", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::hasmixin", NsfObjInfoHasMixinMethodStub, 1, {
  {"class", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::hastype", NsfObjInfoHasTypeMethodStub, 1, {
  {"class", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::hasnamespace", NsfObjInfoHasnamespaceMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::lookupfilter", NsfObjInfoLookupFilterMethodStub, 1, {
  {"filter", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::lookupfilters", NsfObjInfoLookupFiltersMethodStub, 2, {
  {"-guards", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::lookupmethod", NsfObjInfoLookupMethodMethodStub, 1, {
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::lookupmethods", NsfObjInfoLookupMethodsMethodStub, 7, {
  {"-callprotection", NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-incontext", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-type", NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-nomixins", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-path", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"-source", NSF_ARG_IS_ENUMERATION, 1, ConvertToDefinitionsource, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::lookupmixins", NsfObjInfoLookupMixinsMethodStub, 2, {
  {"-guards", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::lookupslots", NsfObjInfoLookupSlotsMethodStub, 3, {
  {"-source", NSF_ARG_IS_ENUMERATION, 1, ConvertToDefinitionsource, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-type", 0, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::method", NsfObjInfoMethodMethodStub, 2, {
  {"subcmd", NSF_ARG_REQUIRED|NSF_ARG_IS_ENUMERATION, 1, ConvertToInfomethodsubcmd, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"name", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_Tclobj, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::methods", NsfObjInfoMethodsMethodStub, 4, {
  {"-callprotection", NSF_ARG_IS_ENUMERATION, 1, ConvertToCallprotection, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-type", NSF_ARG_IS_ENUMERATION, 1, ConvertToMethodtype, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL},
  {"-path", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::mixinguard", NsfObjInfoMixinguardMethodStub, 1, {
  {"mixin", NSF_ARG_REQUIRED, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::mixins", NsfObjInfoMixinsMethodStub, 2, {
  {"-guards", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, ConvertToObjpattern, NULL,NULL,"objpattern",NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::name", NsfObjInfoNameMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::parent", NsfObjInfoParentMethodStub, 0, {
  {NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::precedence", NsfObjInfoPrecedenceMethodStub, 2, {
  {"-intrinsic", 0, 0, Nsf_ConvertTo_Boolean, NULL,NULL,"switch",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::slotobjects", NsfObjInfoSlotobjectsMethodStub, 2, {
  {"-type", 0, 1, Nsf_ConvertTo_Class, NULL,NULL,"class",NULL,NULL,NULL,NULL,NULL},
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{"::nsf::methods::object::info::vars", NsfObjInfoVarsMethodStub, 1, {
  {"pattern", 0, 1, Nsf_ConvertTo_String, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}
},
{NULL, NULL, 0, {{NULL, 0, 0, NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}}}
};

