module  AddressBook
  export  Enter,   Delete,   Change,   LookUp, 
          PrintOut,   Load,   Save, 
          Initialize,    Finalize 


% Initialize address book to empty.
procedure  Initialize()

% Clear address book, % freeing
%  any space allocated for its elements
procedure Finalize()

procedure Enter(name, address : string,
          var success : boolean)
% Precondition: Name must not be in book.

procedure Delete(name : string)
% Precondition: name must be in book.

% Change address for this name.
% The name must already be in the book.
procedure Change(name, address : string)
% Precondition: name must be in book.

procedure LookUp(name : string,
          var address : string,
          var success : boolean)

% Print all names and addresses in book.
procedure PrintOut()

% Read contents of book from a file.
procedure Load()

% Save contents of book in a file.
procedure Save()