useDynLib(methods, .registration = TRUE, .fixes = "C_")

## The methods namespace is loaded very early in the startup sequence
## (if in R_DEFAULT_PACKAGES), so adding other namespaces here has the
## undesirable effect of loading them early too (e.g. onLoad hooks are
## likely to be not yet set).


exportPattern("^\\.__C__")
exportPattern("^\\.__M__")
exportPattern("^\\.__T__")

export(.S4methods)
export(.TraceWithMethods)
export(.untracedFunction)
export(.doTracePrint)
export(.valueClassTest)
## export("@<-")
export(Arith)
export(Compare)
export(Complex)
export(Logic)
export(Math)
export(Math2)
export(MethodAddCoerce)
export(MethodsList)
export(MethodsListSelect)
export(Ops)
export(Quote)
export(SignatureMethod)
export(S3Class)
export("S3Class<-")
export(S3Part)
export("S3Part<-")
export(Summary)
export(addNextMethod)
export(allGenerics)
export(allNames)
export(as, "as<-")
export(asMethodDefinition)
export(assignClassDef)
export(assignMethodsMetaData)
export(balanceMethodsList)
export("body<-")
export(cacheGenericsMetaData)
export(cacheMetaData)
export(cacheMethod)
export(callGeneric)
export(callNextMethod)
export(canCoerce)
export(checkAtAssignment)
export(checkSlotAssignment)
export(classMetaName)
export(classLabel)
export(className, .classEnv)
export(classesToAM)
export(coerce, "coerce<-")
export(completeClassDefinition)
export(completeExtends)
export(completeSubclasses)
export(conformMethod)
export(defaultDumpName)
export(defaultPrototype)
export(doPrimitiveMethod)
export(dumpMethod)
export(dumpMethods)
export(el, "el<-")# (now unused)
export(elNamed, "elNamed<-")
export(empty.dump)
export(emptyMethodsList)
export(evalOnLoad)
export(evalqOnLoad)
export(evalSource)
export(existsFunction)
export(existsMethod)
export(extends)
export(externalRefMethod)
export(finalDefaultMethod)
export(findClass)
export(findFunction)
export(findMethod)
export(findMethods)
export(findMethodSignatures)
export(findUnique)
export(fixPre1.8)
export(formalArgs)
export(functionBody, "functionBody<-")
export(generic.skeleton)
export(getAccess)
export(getAllMethods)
export(getAllSuperClasses)
export(getClass)
export(getClassDef)
export(getClassName)
export(getClassPackage)
export(getClasses)
export(getDataPart)
export(getExtends)
export(getFunction)
export(getGeneric)
export(getGenerics)
export(getGroup)
export(getGroupMembers)
export(getLoadActions)
export(getMethod)
export(getMethods)
export(getMethodsForDispatch)
export(getMethodsMetaData)
export(getPackageName)
export(getProperties)
export(getPrototype)
export(getSlots)
export(getSubclasses)
export(getValidity)
export(getVirtual)
export(hasArg)
export(hasLoadAction)
export(hasMethod)
export(hasMethods)
export(inheritedSlotNames)
export(initialize)
export(insertClassMethods)
export(insertMethod)
export(insertSource)
export(is)
export(isClass)
export(isClassDef)
export(isClassUnion)
export(isGeneric)
export(isGrammarSymbol)
export(isGroup)
export(isSealedClass)
export(isSealedMethod)
export(isVirtualClass)
export(isXS3Class)
export(languageEl)
export("languageEl<-")
export(linearizeMlist)
export(listFromMethods)
export(listFromMlist)
export(loadMethod)
export(makeClassRepresentation)
export(makeExtends)
export(makeGeneric)
export(makeMethodsList)
export(makePrototypeFromClassDef)
export(makeStandardGeneric)
export(matchSignature)
export(mergeMethods)
export(metaNameUndo)
export(methodSignatureMatrix)
export(methodsPackageMetaName)
export(method.skeleton)
export(missingArg)
export(mlistMetaName)
export(multipleClasses)
export(new)
export(newBasic)
export(newClassRepresentation)
export(selectSuperClasses, .selectSuperClasses)
export(newEmptyObject)
export(packageSlot)
export("packageSlot<-")
export(possibleExtends)
export(promptClass)
export(promptMethods)
export(prototype)
export(reconcilePropertiesAndPrototype)
export(rematchDefinition)
export(removeClass)
export(removeGeneric)
export(removeMethod)
export(removeMethods)
export(removeMethodsObject)
export(representation)
export(requireMethods)
export(resetClass)
export(resetGeneric)
export(sealClass)
export(selectMethod)
export(seemsS4Object)
export(setAs)
export(setClass)
export(setClassUnion)
export(setDataPart)
export(setGeneric)
export(setGroupGeneric)
export(setIs)
export(setLoadAction)
export(setLoadActions)
export(setMethod)
export(setOldClass, .OldClassesList)
export(setPackageName)
export(setPrimitiveMethods)
export(setReplaceMethod)
export(setValidity)
export(show)
export(showClass)
export(showDefault)
export(showExtends)
export(showMethods)
export(showMlist)
export(sigToEnv)
export(signature)
export(slot, "slot<-", ".hasSlot")
export(slotNames, ".slotNames")
export(slotsFromS3)
export(substituteDirect)
export(substituteFunctionArgs)
export(superClassDepth)
export(testInheritedMethods)
export(testVirtual)
export(traceOff)
export(traceOn)
export(tryNew)
export(isRematched)
export(unRematchDefinition)
export(validObject)
export(validSlotNames)
export(.isMethodDebugged)
export(.debugMethod)
export(.undebugMethod)

## the next 2 would not be needed if R_initMethods looked in the namespace, not globalenv
export(.ShortPrimitiveSkeletons)
export(.EmptyPrimitiveSkeletons)

## to allow "S4"-cbind/rbind (./R/cbind-rbind.R)
export(cbind2)
export(rbind2)
export(kronecker)

## implicit generic functionality

export(implicitGeneric)
export(setGenericImplicit)
export(prohibitGeneric)
export(registerImplicitGenerics)

## reference classes
export(setRefClass)
export(getRefClass)
export(initFieldArgs) # used in initialize methods--old version
export(initRefFields) # used in initialize methods
