Stephen knows this stuff better than I, but I know that we talked a lot to Richard about his experiences with full CPS conversion and I know that the notion of using CPS to express the intra-procedural flow was from him. At the time I was arguing for the advantages of CPS (over direct style) and I remember showing an example from Shiver's thesis where top-level procedures were transformed into continuations (because they always were called with the same continuation). I think that Stephen put contification into MLton in response to that. (Although it might have waited until he saw that this was going to be required for nested loops, as in matrix multiplication.)