Private Enum and user defined types cannot be used as parameters or return types for public procedures, public data members, ...