Special purpose heaps are created to store different classes of data to
which different rules apply. A library of functions is provided which is
designed to respect the different classes of rules that apply to the
different heaps, by storing data only on a heap that is designated for
use with the proper class of data, and by resisting the performance of
actions on data in a heap that is inconsistent with the rules that apply
to the heap. The use of plural heaps in this manner discourages
programmer error in which an operation is performed on data that is
inconsistent with the data, since the programmer would explicitly have to
copy data from one heap to the other in order to perform the action. In
one example, one heap is designated for the storage of secret data, and
another heap is designated for general-purpose (non-secret) data.