languages can handle only data types deemed compatible with those operations)
and memory safety (i.e., operations in those languages can write data only to
those memory locations that have explicitly been allocated for those operations,
once authorized, to write to).