How our program calls the graph, why each call returns, and what is kept between calls
click a step for its explanation