--excerpt from parse_opts.ads package parse_opts is [...] type hook_t is access procedure (Param: string_list.clist := null); -- Has to go here procedure put_help (Param: parse_opts.string_list.clist := null) is begin put_line (parse_opts.command_name); -- do stuff end put_help; [...] procedure add_arg (short: character; long: string; param_count: natural := 0; hook: hook_t := null); [...] ---------- test.adb with parse_opts; procedure test is use ada.text_io, ada.integer_text_io; begin parse_opts.add_arg ('h', "help", 0, put_help'access); parse_opts.process; -- irrelevant for the error end test;