Create typedefs for the stacks.
Add call frames.
Use the mallocer and freeer everywhere, not just in init and destroy.

Oh, everywhere except 'strdup'.
Indent/dedent the output when calling a function.
Allocate one more byte for the strings, and close the strings with the \0.