Keywords: pame

# Unions

From time to time, you have been using the procedure `print` to display values on your screen. You must have noticed that it seems to be able to take a large variety of values of different modes and that it can process more than one value in one call. You may therefore be wondering how the parameter of `print` is specified. It cannot be a structure because a structure has a fixed number of fields, but if it is a row, how can a row have different modes for its elements? Although the elements of a row must each have the same mode, the explanation is that `print` takes one parameter which is a row of a united mode.

This very short chapter introduces the final mode constructor available in Algol 68. It shows the principles behind the construction and use of united modes. It does not and cannot show all the possible usages.

Subsections

- United mode declarations
  - Exercises
- United modes in procedures
  - Exercises
- Conformity clauses
  - Exercises
- Summary
  - Exercises