Not really sure how useful this is... even if it was practical to adapt datatypes at runtime, it would still be extremely painful. Surely just using portable types is vastly easier and straightforward.
Yes, using portable data types is much easier. But I thought about this when we had to make our code work with some legacy code (which we couldn't change) and the outputs were in non-portable data types.
(or am I missing something?)