Thanks, Heinrich!
Reactive Banana's front page on Hackage [1] indicates that Reactive.Banana.Switch offers "no garbage collection for events that are created dynamically". Does that mean one has to collect the garbage oneself, or does it mean that garbage cannot be collected at all?
My eventual goal is to write a mindmap editor, ala Freeplane. There might never be more than fifty or so frames of text on display at any one time, but in a single session I can easily imagine drawing hundreds of thousands of them. (For that estimate I am assuming a single line of text in the model would require a new frame each time it is redisplayed; if instead a frame could persist invisibly and be redrawn later, most sessions would, I imagine, involve fewer than five thousand frames -- but even then it's not obvious to me that I could forego garbage collection.)
[1]
https://hackage.haskell.org/package/reactive-banana