Don, Thank you! I thought about this, but looking at package_instantiate_object as a model, I couldn't get through writing it myself.
This makes it much easier to work with both databases. Most of the database-specific queries are of the pl/sql pgplsql variety.
One difference I see is that package_exec_plsql accepts a list of lists, which package_instantiate_object accepts an ns_set of parameters.
I think the list format is easier to work with.