DEFINITION MODULE ListaPos;
FROM TadItem IMPORT ITEM;

TYPE LISTAPOS;

PROCEDURE Crear(): LISTAPOS;
PROCEDURE Destruir(VAR l: LISTAPOS);

PROCEDURE EsVacia(l: LISTAPOS): BOOLEAN;
PROCEDURE Longitud(l: LISTAPOS): CARDINAL;
(* (1 <= i <= Longitud(l)) *)
PROCEDURE Elemento(l: LISTAPOS;i: CARDINAL): ITEM;

(* 1 <= i <= Longitud(l) + 1 *)
PROCEDURE Insertar(VAR l: LISTAPOS;i: CARDINAL;x: ITEM);
(* 1 <= i <= Longitud(l) *)
PROCEDURE Cambiar(VAR l: LISTAPOS;x: ITEM;i: CARDINAL);
(* 1 <= i <= Longitud(l) *)
PROCEDURE Eliminar(VAR l: LISTAPOS;i: CARDINAL);

PROCEDURE Copiar(VAR l1:LISTAPOS; l2:LISTAPOS);

TYPE TIPO_ERROR = <<a definir>>;
				
PROCEDURE Error():  TIPO_ERROR;

END ListaPos.
