------------------------------------------------------------------------
This directory contains the sample source code to accompany Chapter 6
(Programming with Modules) of the Maple Programming Guide.

This directory contains the following files.

	Interface.mpl		-- This file contains the source code
				-- for the Interface package. This is
				-- a package for manipulating Maple
				-- interfaces.
	PriorityQueue/		-- The files in this directory implement
				-- priority queue objects.
	RealDomain.mpl		-- This is the source code for the
				-- RealDomain package.
	ShapeObj.mpl		-- The ShapeObjects package is implemented
				-- in this file.
	coverage.mpl		-- This file implements the coverage
				   package.
	differentiate.mpl	-- The example differentiator is contained
				-- in this file.
	differentiate.tst	-- This file contains some simple tests
				-- for the differentiator. It also serves
				-- to illustrate how you can do coverage
				-- profiling of a procedure.
	graph/			-- The files in this directory are from
				-- the graph objects examples.
	record.mpl		-- This is a simple record constructor.
	QuotientField.mpl	-- Illustration of generic programming
	shapes/			-- The Shapes package is contained in
				-- the source code in this directory.

The Maple code contained in the source files is explained in Chapter 6
of the Programming Guide, but most files are extensively commented, and
it should be possible to understand them independently of the manual.

To load a file into your private Maple library, you can use the
command line version of Maple with the preprocessor option
`-D LOAD_REPOSITORY'. For instance, to load the file `Interface.mpl',
use the UNIX shell command

	maple -D LOAD_REPOSITORY Interface.mpl

or, in a Windows command shell,

	cmaple -D LOAD_REPOSITORY Interface.mpl

The shell script `mload.sh' is provided for your convenience. It is
similar to one used at WMI for Maple library development. On UNIX
systems, you can invoke it as

	./mload.sh Interface.mpl

to load the file `Interface.mpl' into your private Maple repository.
Alternatively, you can copy it to some directory searched by your shell 
for commands. For example, assuming that the directory $HOME/bin exists,
and is in your PATH environment variable, you could enter:

	cp mload.sh $HOME/bin/mload
	chmod +x $HOME/bin/mload

This allows you to use the script the same way as any other program. 
Depending on the shell you use, you may have to issue the command

	rehash

before your shell finds the new script. Once it has been installed
in this way, call it like any other command. For example,

	mload Interface.mpl

This script should also be usable by Windows users who have equipped
themselves with a POSIX shell.

------------------------------------------------------------------------
