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