Original oberon report refinement:

Non-exported record types cannot be allocated (NEW) in other modules (using exported pointer type).
Support opaque data types.