Most object should be on heap, using function `alloc`.
INT(1) is on stack and
result_of(1+2) is on stack. However, the returned reference(pointer) is already invalidated after return...
So, we should either deep-copy the return value, or put everything on heap (with