Use a single pattern for naming builting arguments.
Add shared definitions and better type check for builtin arguments.

  The better type check is to cause an exception instead of a fatal
error due to null dereference if receiving an argument that was
explicitly released.