suppose we color functions like so green uses fixed storage, any variable storage must be passed in calls green functions yellow makes one call to TMP_ALLOC and calls green functions or calls yellow functions orange makes two calls to TMP_ALLOC and calls green functions or makes one call to TMP_ALLOC and calls yellow functions or calls orange functions ...