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];