In gex there is a lot of passing around of state which gets awkward in the form of overly complicated function signatures and lifetime semantics.
This feels unfortunate as most of these things (the current view, the minibuffer, the status, etc) should only ever have one instance anyway. As gex runs basically single-threaded, I think there would be very little cost to just having global access to these state via a static variable or similar.
In gex there is a lot of passing around of state which gets awkward in the form of overly complicated function signatures and lifetime semantics.
This feels unfortunate as most of these things (the current view, the minibuffer, the status, etc) should only ever have one instance anyway. As gex runs basically single-threaded, I think there would be very little cost to just having global access to these state via a static variable or similar.