aboutsummaryrefslogtreecommitdiff
path: root/src/hyper/pages/expose.ht
diff options
context:
space:
mode:
Diffstat (limited to 'src/hyper/pages/expose.ht')
-rw-r--r--src/hyper/pages/expose.ht115
1 files changed, 115 insertions, 0 deletions
diff --git a/src/hyper/pages/expose.ht b/src/hyper/pages/expose.ht
new file mode 100644
index 00000000..bf55a2c9
--- /dev/null
+++ b/src/hyper/pages/expose.ht
@@ -0,0 +1,115 @@
+% Copyright The Numerical Algorithms Group Limited 1991.
+% Certain derivative-work portions Copyright (C) 1988 by Leslie Lamport.
+% All rights reserved
+
+\begin{page}{helpExpose}{Exposure}
+\beginscroll
+Exposure determines what part of the \Language{} library
+is available to you when using \Language{}.
+At any time during your interactive \Language{} session,
+each constructor is either {\em exposed} or {\em unexposed}.
+If a constructor is exposed, its operations are available to
+the interpreter and therefore to you.
+If a constructor is unexposed, the operations are not seen
+by the interpreter and thus not available to you.
+\par
+If you are a beginner, you may only want
+basic parts of the library exposed.
+If you are an expert, you may want to have all parts of the
+library exposed.
+If you have an application that requires
+only a segment of the library, you may want to arrange to expose
+only that segment for your use.
+\par
+\endscroll
+Additional Information:
+\beginmenu
+\menulink{What}{ExposureDef}\tab{8}What is an exposure group?
+\menulink{System}{ExposureSystem}\tab{8}What exposure groups are system defined?
+% \menulink{User}{ExposureUser}\tab{8}How can I define my own?
+\menulink{Details}{ExposureDetails}\tab{8}Some details on exposure
+\endmenu
+\end{page}
+
+\begin{page}{ExposureSystem}{System Defined Exposure Groups}
+\beginscroll
+Exposure is defined by {\em groups}.
+Groups have names.
+Seven exposure groups are system-defined:\beginmenu
+\item\tab{3}{\em current}\tab{12}The currently active exposure group
+\item\tab{3}{\em basic}\tab{12}The default value of {\em current}
+\item\tab{3}{\em category}\tab{13}Category constructors not in {\em basic}
+\item\tab{3}{\em domain}\tab{13}Domain constructors not in {\em basic}
+\item\tab{3}{\em package}\tab{13}Package constructors not in {\em basic}
+\item\tab{3}{\em default}\tab{13}Default constructors not in {\em basic}
+\item\tab{3}{\em hidden}\tab{13}All constructors not in {\em basic}
+\item\tab{3}{\em naglink}\tab{13}All constructors used in the AXIOM NAG Link
+\endmenu
+\par
+When you first use \Language{}, the {\em current} exposure group is
+set to {\em basic} and {\em naglink}. Using \HyperName{} or the system command
+{\em expose}, you may
+change the current exposure group by
+adding or dropping constructors or by setting {\em current}
+to an exposure group you have created.
+\endscroll
+Additional Information:
+\beginmenu
+\menulink{What}{ExposureDef}\tab{10}What is an exposure group?
+%\menulink{User}{ExposureUser}\tab{10}How you can define your own exposure group
+\endmenu
+\end{page}
+
+\begin{page}{ExposureDef}{What is an Exposure Group?}
+\beginscroll
+\par
+An exposure group is a list of constructors to be exposed.
+Those constructors on the list are exposed;
+those not on the list are not exposed.
+The library contains 4 kinds of constructors intuitively described as follows:
+\beginmenu
+\item\menuitemstyle{}{\em domain}\tab{10}Describes computational objects and functions defined on these objects
+\item\menuitemstyle{}{\em package}\tab{10}Describes functions which will work over a variety of domains
+\item\menuitemstyle{}{\em category}\tab{10}Names a set of operations
+\item\menuitemstyle{}{\em default}\tab{10}Provides default functions for a cateogry
+\endmenu
+
+An exposure group is defined by three lists:
+\beginmenu
+\item\menuitemstyle{}{\em groups}\tab{13}A list of other (more basic) groups
+\item\menuitemstyle{}{\em additions}\tab{13}A list of explicit constructors to be included
+\item\menuitemstyle{}{\em subtractions}\tab{13}A list of explicit constructors to be dropped
+\endmenu
+You can define your own exposure groups: give them names and define the
+three above lists to be anything you like.
+Using \HyperName{}, you can conveniently edit your exposure groups,
+install them as the {\em current} exposure, and so on.
+\endscroll
+\end{page}
+
+\begin{page}{ExposureDetails}{Details on Exposure}
+\beginscroll
+Exposure is generally defined by the set of domain and package constructors
+you want to have available.
+Category and default constructors are generally implied.
+A category constructor is exposed if mentioned by {\em any} other constructor
+(including another category).
+A default constructor is exposed if its corresponding category constructor is exposed.
+\par
+If you explicitly add a domain or package
+constructor, its name will be put in an {\em Additions} list.
+The system will also add automatically to the {\em Additions} list
+any category explicity exported by that domain or package.
+If that category has a corresponding default constructor, that
+default constructor will also be added as well.
+\par
+If you like, you can explicitly drop a constructor.
+Any such name is added to the {\em Subtractions} list.
+The system will drop this name from the {\em Additions} list if it appears.
+\par
+If the package or domain takes arguments from an unexported
+domain or declares that its arguments can come from a domain
+which is a member of an unexported category, these constructors
+will {\em not} be added.
+\endscroll
+\end{page}