generic data specification parameter elem using nat target slot := empty | full(. .elem : elem) ; variables slot : slot; end generic specification