If we expose the expand and extract steps separately somehow as suggested by @dreid on IRC (although due to my own ignorance I'm not sure why this is useful but I could be easily convinced) then this language would be useful to explain some of the difference?