Type guard
= Type guard
An operation checking that a value has a requested runtime extension type and exposing the fields of that type. In <Oberon>, a pointer guard such as `p(RealTail)` permits a <pointer> to a base record to access the real-valued field of an appropriate record extension. Failure of the dynamic type check is a runtime error, so a <representation invariant> should establish that guarded values have the requested extension before the operation is used.