Cool. This allows us to model arrays and heaps. But when do you build these regions for malloc/new ? Or in general everything is a region and its size it initialized by some analysis when it sees new/malloc?