| 111 | | The question is what stack would you "like" to see in this case? |
| | 113 | The question is what stack would you ''like'' to see in this case? |
| | 114 | |
| | 115 | One option is this: |
| | 116 | {{{ |
| | 117 | main -> d -> e -> f -> hd |
| | 118 | }}} |
| | 119 | |
| | 120 | Another option is this: |
| | 121 | {{{ |
| | 122 | main -> d -> hd |
| | 123 | }}} |
| | 124 | |
| | 125 | The difference between these two stacks is how we determine ''when'' `hd` is called. Is it in the context where `hd` is first mentioned by name (in the body of `f`), or is it when `hd` becomes fully saturated (in the body of `d`). Both contexts seem reasonable. Does it really matter which one is chosen? At the moment I can't say for sure. |
| | 126 | |
| | 127 | There are more possibilities, for instance, we treat CAFs as roots of the stack, thus dropping `main` and `d` from the first of the options above: |
| | 128 | {{{ |
| | 129 | e -> f -> hd |
| | 130 | }}} |
| | 131 | |
| | 132 | And so on. |
| | 133 | |
| | 134 | |