It is possible to define abstract types. An abstract type is a type exporting no implementation details. This is a way to guarantee that internal changes of the implementation can never disturb other modules. If access to components of an abstract type should occur from the outside, access procedures must be supplied for this purpose. VAR Variable declarations.
Memory space is supplied by the variable declarations for the variables.
Each variable is bound to a type by the declaration. Release of variables, and thus memory deallocation, is administered automatically by Oberon. The current status of a module is defined by the values of the variables. The visible part of this status is reported by System. State Modul for examples System.