\HeaderA{InternalMethods}{Internal Generic Functions}{InternalMethods}
\aliasA{internal generic}{InternalMethods}{internal generic}
\aliasA{InternalGenerics}{InternalMethods}{InternalGenerics}
\keyword{methods}{InternalMethods}
\begin{Description}\relax
Many \R-internal functions are \emph{generic} and allow
methods to be written for.
\end{Description}
\begin{Details}\relax
The following primitive and internal functions are \emph{generic},
i.e., you can write \code{\LinkA{methods}{methods}} for them:

\code{\LinkA{[}{[}},
\code{\LinkA{[[}{[[}},
\code{\LinkA{\$}{.Rdol.}},
\code{\LinkA{[<\Rdash}{[<.Rdash.}},
\code{\LinkA{[[<\Rdash}{[[<.Rdash.}},
\code{\LinkA{\$<\Rdash}{.Rdol.<.Rdash.}},

\code{\LinkA{length}{length}},
\code{\LinkA{length<\Rdash}{length<.Rdash.}},

\code{\LinkA{dimnames<\Rdash}{dimnames<.Rdash.}},
\code{\LinkA{dimnames}{dimnames}},
\code{\LinkA{dim<\Rdash}{dim<.Rdash.}},
\code{\LinkA{dim}{dim}},

\code{\LinkA{c}{c}},
\code{\LinkA{unlist}{unlist}},

\code{\LinkA{as.character}{as.character}},
\code{\LinkA{as.vector}{as.vector}},
\code{\LinkA{is.array}{is.array}},
\code{\LinkA{is.atomic}{is.atomic}},
\code{\LinkA{is.call}{is.call}},
\code{\LinkA{is.character}{is.character}},
\code{\LinkA{is.complex}{is.complex}},
\code{\LinkA{is.double}{is.double}},
\code{\LinkA{is.environment}{is.environment}},
\code{\LinkA{is.function}{is.function}},
\code{\LinkA{is.integer}{is.integer}},
\code{\LinkA{is.language}{is.language}},
\code{\LinkA{is.logical}{is.logical}},
\code{\LinkA{is.list}{is.list}},
\code{\LinkA{is.matrix}{is.matrix}},
\code{\LinkA{is.na}{is.na}},
\code{\LinkA{is.nan}{is.nan}},
\code{\LinkA{is.null}{is.null}},
\code{\LinkA{is.numeric}{is.numeric}},
\code{\LinkA{is.object}{is.object}},
\code{\LinkA{is.pairlist}{is.pairlist}},
\code{\LinkA{is.recursive}{is.recursive}},
\code{\LinkA{is.single}{is.single}},
\code{\LinkA{is.symbol}{is.symbol}},
\code{\LinkA{rep}{rep}} and
\code{\LinkA{seq.int}{seq.int}}.

Note that most of the \LinkA{group generic}{group generic} functions are also
internal/primitive and allow methods to be written for them.
\end{Details}
\begin{SeeAlso}\relax
\code{\LinkA{methods}{methods}} for the methods of non-Internal generic functions.
\end{SeeAlso}

