19.15.7 Non-strict Mapping

The map operator @ performs what we call a strict mapping. This means that the data integrity of the mapped data is checked for. Often this is what we want.

However, sometimes we have to work with incorrect or incomplete data. In these cases, we want to inspect that data and complete it using poke.

For this purpose poke provides an alternate map operator @! that behaves exactly like the normal operator, but inhibits the control of data integrity.

The attribute 'strict can be used to query whether a given value is strict or non-strict. Non-mapped values are strict by definition.