No, since they're valid within the scope of the wrapping function. When used directly, `compile()` returns a function that's coming from a scope where `p` & co. are valid; when precompiled into output JavaScript, the functions are included from `lib/messageformat.include.js`.

The only way it breaks is if you use an external wrapper to the library that calls `precompile()`, and tries to parse the results without the utility functions. But if you're doing that, it should break really easily and obviously, and hence be fixable.

Actually, in the precompiled output, the only global we end up with is `i18n`, even `MessageFormat` is scoped only within the wrapping function. As its only member is the `locale` array, we could consider getting rid of that as well, and use something like `var locale = { 'en': ... };` instead, but those are currently hard-coded into `locale/*.js`...