The public API to this should be the `transmute()` method and this function should be private.