Perhaps it wouldn't be as all-wonderful as I think, but as a "new" Haskell user, I am constantly switching back and forth between various definitions of things trying to compare documentation and files...
The purpose of "expansion" as I was explaining it is not to *permanently replace* what is in the text, but rather to *temporarily replace* it. I imagine it kind of like a "zoom in" for code. You could "zoom in" on one function, and seeing a new function that you don't recognize, "zoom in" again, and so on. Once done, you would hit "ESC" to make it all return as it was.