create edition allows_one_plsql_object as child of itself_with_differing_code; comment on edition allows_one_plsql_object is 'so you can release changes with no dowmtime!'; Releasing changes to server side PL/SQL in 24x7, always up databases can be a big challenge. Ensuring the release worked correctly can be impossible without renaming the objects in the new version (or other more complicated solutions), making this one of the few valid arguments for not using stored procedure in your database. Editioning resolves this by allowing you to release, test and (possibly) rollback changes without affecting the live version! :)
As always, you can find a good write up of how edition based redefintion works with examples on oracle-base.