-- file : liste_gene.ads

generic

  type Typelem is private; 

package Liste_Gene is

  type Liste is private; 

  Liste_Vide: constant Liste;

  function Premier ( L : Liste ) return Typelem; 
  
  function Suivant ( L : Liste ) return Liste; 
  
  function Test_Si_Vide ( L : Liste ) return Boolean; 
  
  function Cons ( E : Typelem; L : Liste ) return Liste; 
  
  procedure Change_Elem (E : Typelem; L : in out Liste ); 
  
  procedure Change_Suivant (L : in out Liste; Suiv : Liste ); 
  
private

  type Maillon; 
  
  type Liste is access Maillon; 
  
  type Maillon is record 
        Elem    : Typelem;  
        Suivant : Liste;  
  end record;
      
  Liste_Vide: constant Liste := null;

end Liste_Gene;
