If you're going to make the utility functions public, they'll need to be defined as `window.i18n.p = ...` in `lib/messageformat.include.js` as `MessageFormat` is not a global in the precompiled code. You'll also therefore need to know about `i18n` in `lib/messageformat.dev.js`, which is currently not a requirement. Or you'll need to switch from the current configurable namespace that defaults to `window.i18n` to a fixed `MessageFormat` global namespace.

I wouldn't do any of that, tbh. Unless you're planning on inlining everything back in to the output of `precompile()`, you'll still need a custom function for storing functions as strings in order to accommodate for different locales, and if you have that (`build()` in `bin/messageformat.js`), why not keep it as is, which already enables the use of the single-letter local functions?