# Standard interfaces

This section presents the interfaces required by every Modula-3 implementation. The versions included here have some minor changes and additions to the versions in [SPwM3] .

> `Text` provides operations on text strings.

> `Thread` provides synchronization primitives for multiple threads of control.

> `Word` provides operations on unsigned words.

> `Real`, `LongReal`, and `ExtendedReal` define the properties of the three floating-point types; for example, their bases and ranges.

> `RealFloat`, `LongRealFloat`, and `ExtendedFloat` provide numerical operations related to the floating-point representation; for example, extracting the exponent of a number.

> `FloatMode` provides operations for testing (and possibly setting) the behavior of the implementation in response to numeric conditions; for example, overflow.

This section also presents two related interfaces provided by SRC Modula-3 and recommended to other implementers, but not required:

> `Lex` provides for parsing numbers and other data from an input stream.

> `Fmt` provides for textual formatting of numbers and other data.

- The Text interface
- The Thread interface
- The Word interface
- Real, LongReal, and Extended
- RealFloat, LongRealFloat, and ExtendedFloat
- The FloatMode interface
- The Lex interface
- The Fmt interface