DEFINITION MODULE SingleLinkedList;

TYPE 
  List ;

VAR
  result : BOOLEAN;


(*
PROCEDURE SearchItem ( item : ; compare : PROC ) : BOOLEAN;

PROCEDURE Traverse (l : List; toDo : PROC);
*)
PROCEDURE Empty (VAR l : List): BOOLEAN ;
(*
PROCEDURE RemoveItem (): BOOLEAN;

PROCEDURE AddItem (): BOOLEAN;
*)

PROCEDURE SetPos(l : List; pos : CARDINAL ) : BOOLEAN ;

PROCEDURE GetPosCurrentElement (l : List) : CARDINAL ;

PROCEDURE GetPosLastElement (l : List) : CARDINAL ;

PROCEDURE AddElementLast  (VAR l : List);

PROCEDURE RemoveElement (VAR l : List);

PROCEDURE DoEmptyList (VAR l : List);

PROCEDURE Free (VAR l : List);

PROCEDURE Init (VAR l : List; mode : BOOLEAN ; p : PROC);
  
END SingleLinkedList.
