                                   (* Chapter 13 - Program 7 *)
DEFINITION MODULE OpaqueType;

   EXPORT QUALIFIED BoxType, MakeBox, Volume, Area;

   TYPE BoxType; (* Opaque type, defined in implementation module *)


             (* This procedure creates and initializes a box *)
   PROCEDURE MakeBox(Length, Width, Height : CARDINAL) : BoxType;


             (* This procedure returns the volume of a box *)
   PROCEDURE Volume(Box : BoxType) : CARDINAL;


             (* This procedure returns the Area of a box *)
   PROCEDURE Area(Box : BoxType) : CARDINAL;

END OpaqueType.
