portable type definitions for a free-standing environment
---------------------------------------------------------