Consequences of IMPLEMENTATION.DATA_MEMORY:

    (1) Data structures should be engineered to use as
    little space as possible, and (2) Heap allocation failure may
    occur from time to time, if the platform supports that.

Consequences of IMPLEMENTATION.STACK_MEMORY:

    (1) Stack-allocated memory should be avoided in
    situations where it is not known that there is space for it, and
    (2) Recursive processing of data structures is generally
    difficult, unless a bound can be placed on the depth of those data
    structures.

Consequences of IMPLEMENTATION.CODE_MEMORY

    (1) Keeping code compact is important.

