A very thorough explanation! Love the usage of graphs to understand the relationship between two points in the code. Would you say this was made easier by the STG and more generally the graph-reduction paradigm?
I suppose we could have a tool which does such graphical representation automatically for STG, generated from Haskell but I was need to measure its volume in JavaScript form. That's why I was needed to reconstruct it back from JavaScript.