@abcdw
FWIW I once came up with this:

lists.gnu.org/archive/html/gui

My implementation used call/cc, but then someone redid it using delimited continuations.