package_spec ::= [PRAGMA SERIALLY_REUSABLE;] { collection_type_definition | record_type_definition | subtype_definition | collection_declaration | constant_declaration | exception_declaration | object_declaration | record_declaration | variable_declaration | cursor_spec | function_spec | procedure_spec | call spec | PRAGMA RESTRICT_REFERENCES } [ { collection_type_definition | record_type_definition | subtype_definition | collection_declaration | constant_declaration | exception_declaration | object_declaration | record_declaration | variable_declaration | cursor_spec | function_spec | procedure_spec | call spec | PRAGMA RESTRICT_REFERENCES }]... END [package_name];