with Ada.Text_IO; use Ada.Text_IO; package body listpkg is procedure init(l: in out List) is begin l := null; -- warning creates garbage end init; -- would be nice to have a delete list procedure makeList(first, last: Natural; l: In out List) is begin l := null; for i in reverse first .. last loop l := new Node'(i, l); end loop; end makeList; procedure putList(l: List) is begin put_line("putList called"); end putList; -- compare entire list, not just pointers l and r function equal(l, r: List) return Boolean is begin return False; end equal; procedure copy(dest: out List; source: In List) is begin dest := source; -- warning: shallow copy end copy; a, b: List; end listpkg;