\HeaderA{ns-dblcolon}{Double Colon and Triple Colon Operators}{ns.Rdash.dblcolon}
\aliasA{::}{ns-dblcolon}{::}
\aliasA{:::}{ns-dblcolon}{:::}
\keyword{programming}{ns-dblcolon}
\begin{Description}\relax
Accessing exported and internal variables in a name space.
\end{Description}
\begin{Usage}
\begin{verbatim}
pkg::name
pkg:::name
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{pkg}] package name symbol or literal character string.
\item[\code{name}] variable name symbol or literal character string.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
The expression \code{pkg::name} returns the value of the exported
variable \code{name} in package \code{pkg} if the package has a name
space.  The expression \code{pkg:::name} returns the value of the
internal variable \code{name} in package \code{pkg} if the package has
a name space.  The package will be loaded if it was not loaded already
before the call.  Assignment into name spaces is not supported.

Note that it is typically a design mistake to use \code{:::}
in your code since the corresponding object has probably been kept
namespace-internal for a good reason.  Consider contacting the package
maintainer if you feel the need to access the object for anything but
mere inspection.

If the package \code{pkg} does not have a name space but is on the
search path then \code{pkg::name} returns the value of \code{name} in
the package environment.
\end{Details}
\begin{SeeAlso}\relax
\code{\LinkA{get}{get}} to access an object masked by another of the same name.
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
base::log
base::"+"

## Beware --  use ':::' at your own risk! (see "Details")
stats:::coef.default
\end{ExampleCode}
\end{Examples}

